about summary refs log tree commit diff
path: root/pkgs/development/python-modules/pydantic
diff options
context:
space:
mode:
authorMartin Weinelt <hexa@darmstadt.ccc.de>2023-09-15 14:06:46 +0200
committerMartin Weinelt <hexa@darmstadt.ccc.de>2023-09-27 15:33:57 +0200
commit5f0c1366f3d52ba720346f02224e9aed9119a6d6 (patch)
treeb1496871b0f5614aebe66220668369a1c824cfac /pkgs/development/python-modules/pydantic
parentf614178bafde34825631c49272dfb41214a68377 (diff)
python3Packages.pydantic: 1.10.9 -> 2.3.0
Drops the documentation build, because it is an ever growing, ever
changing set of dependencies, that we need to package up, hidnering the
upgrade effort.
Diffstat (limited to 'pkgs/development/python-modules/pydantic')
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix122
1 files changed, 39 insertions, 83 deletions
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index ea4943a06506b..fd8341db58989 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -1,46 +1,37 @@
 { lib
-, stdenv
 , buildPythonPackage
-, autoflake
-, cython
-, devtools
-, email-validator
 , fetchFromGitHub
-, fetchpatch
-, pytest-mock
-, pytestCheckHook
-, python-dotenv
-, pythonAtLeast
 , pythonOlder
-, pyupgrade
-, typing-extensions
-# dependencies for building documentation.
-# docs fail to build in Darwin sandbox: https://github.com/samuelcolvin/pydantic/issues/4245
-, withDocs ? (stdenv.hostPlatform == stdenv.buildPlatform && !stdenv.isDarwin && pythonAtLeast "3.10")
-, ansi2html
-, markdown-include
-, mike
-, mkdocs
-, mkdocs-exclude
-, mkdocs-material
-, mdx-truly-sane-lists
-, sqlalchemy
-, ujson
-, orjson
-, hypothesis
+
+# build-system
+, cython
+, hatchling
+, hatch-fancy-pypi-readme
+
+# build
 , libxcrypt
+
+# dependencies
+, typing-extensions
+, annotated-types
+, pydantic-core
+
+# optional-dependencies
+, email-validator
+
+# tests
+, dirty-equals
+, faker
+, pytestCheckHook
+, pytest-benchmark
+, pytest-examples
+, pytest-mock
 }:
 
 buildPythonPackage rec {
   pname = "pydantic";
-  version = "1.10.9";
-  format = "setuptools";
-
-  outputs = [
-    "out"
-  ] ++ lib.optionals withDocs [
-    "doc"
-  ];
+  version = "2.3.0";
+  format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
@@ -48,89 +39,54 @@ buildPythonPackage rec {
     owner = "pydantic";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-POqMxBJUFFS1TnO9h5W7jYwFlukBOng0zbtq4kzmMB4=";
+    hash = "sha256-toqrWg8bYzc3UmvG/YmXawfmT8nqaA9fxy24k1cdj+M=";
   };
 
-  patches = [
-    # Fixes racy doctests build failures on really fast machines
-    # FIXME: remove after next release
-    (fetchpatch {
-      url = "https://github.com/pydantic/pydantic/pull/6103/commits/f05014a30340e608155683aaca17d275f93a0380.diff";
-      hash = "sha256-sr47hpl37SSFFbK+/h3hGlF6Pl6L8XPKDU0lZZV7Vzs=";
-    })
-  ];
-
-  postPatch = ''
-    sed -i '/flake8/ d' Makefile
-  '';
-
   buildInputs = lib.optionals (pythonOlder "3.9") [
     libxcrypt
   ];
 
   nativeBuildInputs = [
     cython
-  ] ++ lib.optionals withDocs [
-    # dependencies for building documentation
-    autoflake
-    ansi2html
-    markdown-include
-    mdx-truly-sane-lists
-    mike
-    mkdocs
-    mkdocs-exclude
-    mkdocs-material
-    sqlalchemy
-    ujson
-    orjson
-    hypothesis
+    hatchling
+    hatch-fancy-pypi-readme
   ];
 
   propagatedBuildInputs = [
-    devtools
-    pyupgrade
+    annotated-types
     typing-extensions
+    pydantic-core
   ];
 
   passthru.optional-dependencies = {
-    dotenv = [
-      python-dotenv
-    ];
     email = [
       email-validator
     ];
   };
 
+  pythonImportsCheck = [
+    "pydantic"
+  ];
+
   nativeCheckInputs = [
+    dirty-equals
+    faker
+    pytest-benchmark
+    pytest-examples
     pytest-mock
     pytestCheckHook
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   pytestFlagsArray = [
-    # https://github.com/pydantic/pydantic/issues/4817
-    "-W" "ignore::pytest.PytestReturnNotNoneWarning"
+    "--benchmark-disable"
   ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
 
-  # Must include current directory into PYTHONPATH, since documentation
-  # building process expects "import pydantic" to work.
-  preBuild = lib.optionalString withDocs ''
-    PYTHONPATH=$PWD:$PYTHONPATH make docs
-  '';
-
-  # Layout documentation in same way as "sphinxHook" does.
-  postInstall = lib.optionalString withDocs ''
-    mkdir -p $out/share/doc/$name
-    mv ./site $out/share/doc/$name/html
-  '';
-
   enableParallelBuilding = true;
 
-  pythonImportsCheck = [ "pydantic" ];
-
   meta = with lib; {
     description = "Data validation and settings management using Python type hinting";
     homepage = "https://github.com/pydantic/pydantic";