diff --git a/pkgs/development/python-modules/awswrangler/default.nix b/pkgs/development/python-modules/awswrangler/default.nix new file mode 100644 index 000000000000..54de986d4c35 --- /dev/null +++ b/pkgs/development/python-modules/awswrangler/default.nix @@ -0,0 +1,88 @@ +{ backoff +, SPARQLWrapper +, boto3 +, buildPythonPackage +, fetchFromGitHub +, gremlinpython +, jsonpath-ng +, lib +, moto +, openpyxl +, opensearch-py +, pandas +, pg8000 +, poetry-core +, progressbar2 +, pyarrow +, pymysql +, pyodbc +, pytestCheckHook +, pythonOlder +, pythonRelaxDepsHook +, redshift-connector +, requests-aws4auth +}: + +buildPythonPackage rec { + pname = "awswrangler"; + version = "2.19.0"; + format = "pyproject"; + + disabled = pythonOlder "3.7.1"; + + src = fetchFromGitHub { + owner = "aws"; + repo = "aws-sdk-pandas"; + rev = "refs/tags/${version}"; + hash = "sha256-xUEytEgr/djfnoOowLxAZmbPkMS+vU0fuPY7JxZXEe0="; + }; + + nativeBuildInputs = [ poetry-core pythonRelaxDepsHook ]; + + propagatedBuildInputs = [ + backoff + boto3 + gremlinpython + jsonpath-ng + openpyxl + opensearch-py + pandas + pg8000 + progressbar2 + pyarrow + pymysql + redshift-connector + requests-aws4auth + ]; + + pythonRelaxDeps = [ + "gremlinpython" + "numpy" + "pandas" + "pg8000" + ]; + + nativeCheckInputs = [ moto pytestCheckHook ]; + + pytestFlagsArray = [ + # Subset of tests that run in upstream CI (many others require credentials) + # https://github.com/aws/aws-sdk-pandas/blob/2b7c62ac0762b1303149bb3c03979791479ba4f9/.github/workflows/minimal-tests.yml + "tests/test_metadata.py" + "tests/test_session.py" + "tests/test_utils.py" + "tests/test_moto.py" + ]; + + passthru.optional-dependencies = { + sqlserver = [ pyodbc ]; + sparql = [ SPARQLWrapper ]; + }; + + meta = { + description = "Pandas on AWS"; + homepage = "https://github.com/aws/aws-sdk-pandas"; + changelog = "https://github.com/aws/aws-sdk-pandas/releases/tag/${version}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ mcwitt ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5c43be1920a1..0b17b2bd163a 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -853,6 +853,8 @@ self: super: with self; { awslambdaric = callPackage ../development/python-modules/awslambdaric { }; + awswrangler = callPackage ../development/python-modules/awswrangler { }; + axis = callPackage ../development/python-modules/axis { }; azure-appconfiguration = callPackage ../development/python-modules/azure-appconfiguration { };