diff --git a/pkgs/development/interpreters/python/cpython/docs/3.14-html.nix b/pkgs/development/interpreters/python/cpython/docs/3.14-html.nix
new file mode 100644
index 000000000000..ce89782f261f
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/docs/3.14-html.nix
@@ -0,0 +1,26 @@
+# This file was generated and will be overwritten by ./generate.sh
+
+{
+ stdenv,
+ fetchurl,
+ lib,
+}:
+
+stdenv.mkDerivation {
+ pname = "python314-docs-html";
+ version = "3.14";
+
+ src = fetchurl {
+ url = "https://docs.python.org/3.14/archives/python-3.14-docs-html.tar.bz2";
+ sha256 = "0igikxq71zqyps8swfib4rwfi81vgvi4fdc6j4sz3x1981nh4j3v";
+ };
+ installPhase = ''
+ mkdir -p $out/share/doc/python314
+ cp -R ./ $out/share/doc/python314/html
+ '';
+ meta = {
+ maintainers = with lib.maintainers; [
+ panicgh
+ ];
+ };
+}
diff --git a/pkgs/development/interpreters/python/cpython/docs/3.14-pdf-a4.nix b/pkgs/development/interpreters/python/cpython/docs/3.14-pdf-a4.nix
new file mode 100644
index 000000000000..5b55b8f3fd04
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/docs/3.14-pdf-a4.nix
@@ -0,0 +1,26 @@
+# This file was generated and will be overwritten by ./generate.sh
+
+{
+ stdenv,
+ fetchurl,
+ lib,
+}:
+
+stdenv.mkDerivation {
+ pname = "python314-docs-pdf-a4";
+ version = "3.14";
+
+ src = fetchurl {
+ url = "https://docs.python.org/3.14/archives/python-3.14-docs-pdf-a4.tar.bz2";
+ sha256 = "0nb69h3wz2vixf80alh9x8fafz3ipq2hdrxccj8vp8vvrcqna75y";
+ };
+ installPhase = ''
+ mkdir -p $out/share/doc/python314
+ cp -R ./ $out/share/doc/python314/pdf-a4
+ '';
+ meta = {
+ maintainers = with lib.maintainers; [
+ panicgh
+ ];
+ };
+}
diff --git a/pkgs/development/interpreters/python/cpython/docs/3.14-texinfo.nix b/pkgs/development/interpreters/python/cpython/docs/3.14-texinfo.nix
new file mode 100644
index 000000000000..53b3070d51c1
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/docs/3.14-texinfo.nix
@@ -0,0 +1,26 @@
+# This file was generated and will be overwritten by ./generate.sh
+
+{
+ stdenv,
+ fetchurl,
+ lib,
+}:
+
+stdenv.mkDerivation {
+ pname = "python314-docs-texinfo";
+ version = "3.14";
+
+ src = fetchurl {
+ url = "https://docs.python.org/3.14/archives/python-3.14-docs-texinfo.tar.bz2";
+ sha256 = "0r89zg2dzh90iv3qff9rx0ckfsds8hin5z53ai31cchxhglg4b8s";
+ };
+ installPhase = ''
+ mkdir -p $out/share/info
+ cp ./python.info $out/share/info
+ '';
+ meta = {
+ maintainers = with lib.maintainers; [
+ panicgh
+ ];
+ };
+}
diff --git a/pkgs/development/interpreters/python/cpython/docs/3.14-text.nix b/pkgs/development/interpreters/python/cpython/docs/3.14-text.nix
new file mode 100644
index 000000000000..201325e4760c
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/docs/3.14-text.nix
@@ -0,0 +1,26 @@
+# This file was generated and will be overwritten by ./generate.sh
+
+{
+ stdenv,
+ fetchurl,
+ lib,
+}:
+
+stdenv.mkDerivation {
+ pname = "python314-docs-text";
+ version = "3.14";
+
+ src = fetchurl {
+ url = "https://docs.python.org/3.14/archives/python-3.14-docs-text.tar.bz2";
+ sha256 = "1w8zl9pymsfviiw7iqz86liwnvfh1093syk3vkpvsdmvsa9acwyf";
+ };
+ installPhase = ''
+ mkdir -p $out/share/doc/python314
+ cp -R ./ $out/share/doc/python314/text
+ '';
+ meta = {
+ maintainers = with lib.maintainers; [
+ panicgh
+ ];
+ };
+}
diff --git a/pkgs/development/interpreters/python/cpython/docs/default.nix b/pkgs/development/interpreters/python/cpython/docs/default.nix
index d5cc62a92120..341b30774b68 100644
--- a/pkgs/development/interpreters/python/cpython/docs/default.nix
+++ b/pkgs/development/interpreters/python/cpython/docs/default.nix
@@ -11,12 +11,18 @@ let
python310 = import ./3.10-html.nix {
inherit stdenv fetchurl lib;
};
+ python314 = import ./3.14-html.nix {
+ inherit stdenv fetchurl lib;
+ };
};
pdf_a4 = {
recurseForDerivations = true;
python310 = import ./3.10-pdf-a4.nix {
inherit stdenv fetchurl lib;
};
+ python314 = import ./3.14-pdf-a4.nix {
+ inherit stdenv fetchurl lib;
+ };
};
pdf_letter = {
recurseForDerivations = true;
@@ -29,12 +35,18 @@ let
python310 = import ./3.10-text.nix {
inherit stdenv fetchurl lib;
};
+ python314 = import ./3.14-text.nix {
+ inherit stdenv fetchurl lib;
+ };
};
texinfo = {
recurseForDerivations = true;
python310 = import ./3.10-texinfo.nix {
inherit stdenv fetchurl lib;
};
+ python314 = import ./3.14-texinfo.nix {
+ inherit stdenv fetchurl lib;
+ };
};
};
in
diff --git a/pkgs/development/interpreters/python/cpython/docs/generate.sh b/pkgs/development/interpreters/python/cpython/docs/generate.sh
index 46db4d87d7f6..fcc9d7b0b715 100755
--- a/pkgs/development/interpreters/python/cpython/docs/generate.sh
+++ b/pkgs/development/interpreters/python/cpython/docs/generate.sh
@@ -2,25 +2,29 @@
cd -- "$(dirname -- "${BASH_SOURCE[0]}")"
-TYPES="html pdf-a4 pdf-letter text texinfo"
-URL=http://www.python.org/ftp/python/doc/VERSION/python-VERSION-docs-TYPE.tar.bz2
-VERSIONS=$(for major in 2 3; do curl https://docs.python.org/$major/archives/ 2>/dev/null | perl -l -n -e'//dev/null | perl -l -n -e'/default.nix <>default.nix <>default.nix <> default.nix
+ echo " };" >> default.nix
done
-echo "}; in pythonDocs" >> default.nix
+cat >>default.nix <