diff options
author | Martin Weinelt <hexa@darmstadt.ccc.de> | 2023-09-15 14:06:46 +0200 |
---|---|---|
committer | Martin Weinelt <hexa@darmstadt.ccc.de> | 2023-09-27 15:33:57 +0200 |
commit | 5f0c1366f3d52ba720346f02224e9aed9119a6d6 (patch) | |
tree | b1496871b0f5614aebe66220668369a1c824cfac /pkgs/development/python-modules/pydantic | |
parent | f614178bafde34825631c49272dfb41214a68377 (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.nix | 122 |
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"; |