From c079b8399757d65b157713a63b2b12820298f26b Mon Sep 17 00:00:00 2001 From: Ben Darwin Date: Thu, 7 Nov 2024 14:29:23 -0500 Subject: [PATCH] python312Packages.pandera: init at 0.20.4 --- .../python-modules/pandera/default.nix | 126 ++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 128 insertions(+) create mode 100644 pkgs/development/python-modules/pandera/default.nix diff --git a/pkgs/development/python-modules/pandera/default.nix b/pkgs/development/python-modules/pandera/default.nix new file mode 100644 index 0000000000000..bccacdc23e3a6 --- /dev/null +++ b/pkgs/development/python-modules/pandera/default.nix @@ -0,0 +1,126 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + multimethod, + numpy, + packaging, + pandas, + pydantic, + typeguard, + typing-inspect, + wrapt, + # test + joblib, + pyarrow, + pytestCheckHook, + pytest-asyncio, + # optional dependencies + black, + dask, + fastapi, + geopandas, + hypothesis, + pandas-stubs, + polars, + pyyaml, + scipy, + shapely, +}: + +buildPythonPackage rec { + pname = "pandera"; + version = "0.20.4"; + pyproject = true; + + src = fetchFromGitHub { + owner = "unionai-oss"; + repo = "pandera"; + rev = "refs/tags/v${version}"; + hash = "sha256-VetLfZlBWok7Mr1jxlHHjDH/D5xEsPFWQtX/hrvobgQ="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + multimethod + numpy + packaging + pandas + pydantic + typeguard + typing-inspect + wrapt + ]; + + optional-dependencies = + let + dask-dataframe = [ dask ] ++ dask.optional-dependencies.dataframe; + extras = { + strategies = [ hypothesis ]; + hypotheses = [ scipy ]; + io = [ + pyyaml + black + #frictionless # not in nixpkgs + ]; + # pyspark expression does not define optional-dependencies.connect: + #pyspark = [ pyspark ] ++ pyspark.optional-dependencies.connect; + # modin not in nixpkgs: + #modin = [ + # modin + # ray + # dask-dataframe + #]; + #modin-ray = [ + # modin + # ray + #]; + #modin-dask = [ + # modin + # dask-dataframe + #]; + dask = [ dask-dataframe ]; + mypy = [ pandas-stubs ]; + fastapi = [ fastapi ]; + geopandas = [ + geopandas + shapely + ]; + polars = [ polars ]; + }; + in + extras // { all = lib.concatLists (lib.attrValues extras); }; + + nativeCheckInputs = [ + pytestCheckHook + pytest-asyncio + joblib + pyarrow + ] ++ optional-dependencies.all; + + disabledTestPaths = [ + "tests/fastapi/test_app.py" # tries to access network + "tests/core/test_docs_setting_column_widths.py" # tests doc generation, requires sphinx + "tests/modin" # requires modin, not in nixpkgs + "tests/mypy/test_static_type_checking.py" # some typing failures + "tests/pyspark" # requires spark + ]; + + pythonImportsCheck = [ + "pandera" + "pandera.api" + "pandera.config" + "pandera.dtypes" + "pandera.engines" + ]; + + meta = { + description = "Light-weight, flexible, and expressive statistical data testing library"; + homepage = "https://pandera.readthedocs.io"; + changelog = "https://github.com/unionai-oss/pandera/releases/tag/v${version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ bcdarwin ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e31ff8139b6a0..82d9d10a0f2d3 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9734,6 +9734,8 @@ self: super: with self; { pandas-datareader = callPackage ../development/python-modules/pandas-datareader { }; + pandera = callPackage ../development/python-modules/pandera { }; + pandoc-attributes = callPackage ../development/python-modules/pandoc-attributes { }; pandoc-latex-environment = callPackage ../development/python-modules/pandoc-latex-environment { };