summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornatsukium <tomoya.otabi@gmail.com>2023-10-31 18:36:34 +0900
committerMartin Weinelt <hexa@darmstadt.ccc.de>2023-12-20 20:15:25 +0100
commitffb2e65e054b989c55a83f79af0ed4b912e22e14 (patch)
tree0c3f56158a8bc045e9a17c7a4e3864d6548f1383
parent2155a449cced1cbe8cf1c617d9dd961b0ccf78b1 (diff)
python311Packages.pydantic: 1.10.12 -> 2.3.0
Diff: https://github.com/pydantic/pydantic/compare/refs/tags/v1.10.12...v2.3.0 Changelog: https://github.com/pydantic/pydantic/blob/v2.3.0/HISTORY.md 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.
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix110
1 files changed, 30 insertions, 80 deletions
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index 84de5894f501..1370f5865d87 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -1,127 +1,77 @@
{ lib
-, stdenv
, buildPythonPackage
-, autoflake
-, cython
-, devtools
-, email-validator
, fetchFromGitHub
-, 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
+, hatchling
+, hatch-fancy-pypi-readme
, libxcrypt
+, annotated-types
+, pydantic-core
+, typing-extensions
+, email-validator
+, dirty-equals
+, faker
+, pytestCheckHook
+, pytest-mock
}:
buildPythonPackage rec {
pname = "pydantic";
- version = "1.10.12";
- format = "setuptools";
-
- outputs = [
- "out"
- ] ++ lib.optionals withDocs [
- "doc"
- ];
+ version = "2.3.0";
+ pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "pydantic";
- repo = pname;
+ repo = "pydantic";
rev = "refs/tags/v${version}";
- hash = "sha256-3XnbPGU90wLCPEryFAOky6Iy73Dvgzzh+GbOKW8hZ4U=";
+ hash = "sha256-toqrWg8bYzc3UmvG/YmXawfmT8nqaA9fxy24k1cdj+M=";
};
- postPatch = ''
- sed -i '/flake8/ d' Makefile
-
- # Disable strict docs build due warnings being treated as errors
- substituteInPlace mkdocs.yml \
- --replace "strict: true" "strict: false"
- '';
-
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
+ hatch-fancy-pypi-readme
+ hatchling
];
propagatedBuildInputs = [
- devtools
- pyupgrade
+ annotated-types
+ pydantic-core
typing-extensions
];
passthru.optional-dependencies = {
- dotenv = [
- python-dotenv
- ];
email = [
email-validator
];
};
nativeCheckInputs = [
+ dirty-equals
+ faker
pytest-mock
pytestCheckHook
] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
- pytestFlagsArray = [
- # https://github.com/pydantic/pydantic/issues/4817
- "-W" "ignore::pytest.PytestReturnNotNoneWarning"
- ];
-
preCheck = ''
export HOME=$(mktemp -d)
+ substituteInPlace pyproject.toml \
+ --replace "'--benchmark-columns', 'min,mean,stddev,outliers,rounds,iterations'," "" \
+ --replace "'--benchmark-group-by', 'group'," "" \
+ --replace "'--benchmark-warmup', 'on'," "" \
+ --replace "'--benchmark-disable'," ""
'';
- # Must include current directory into PYTHONPATH, since documentation
- # building process expects "import pydantic" to work.
- preBuild = lib.optionalString withDocs ''
- PYTHONPATH=$PWD:$PYTHONPATH make docs
- '';
+ disabledTestPaths = [
+ "tests/benchmarks"
- # 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;
+ # avoid cyclic dependency
+ "tests/test_docs.py"
+ ];
pythonImportsCheck = [ "pydantic" ];