1{
2 backoff,
3 sparqlwrapper,
4 boto3,
5 buildPythonPackage,
6 fetchFromGitHub,
7 gremlinpython,
8 jsonpath-ng,
9 lib,
10 moto,
11 openpyxl,
12 opensearch-py,
13 pandas,
14 pg8000,
15 poetry-core,
16 progressbar2,
17 pyarrow,
18 pymysql,
19 pyodbc,
20 pyparsing,
21 pytestCheckHook,
22 pythonOlder,
23 pythonRelaxDepsHook,
24 redshift-connector,
25 requests-aws4auth,
26}:
27
28buildPythonPackage rec {
29 pname = "awswrangler";
30 version = "3.7.3";
31 pyproject = true;
32
33 disabled = pythonOlder "3.8";
34
35 src = fetchFromGitHub {
36 owner = "aws";
37 repo = "aws-sdk-pandas";
38 rev = "refs/tags/${version}";
39 hash = "sha256-gm6ieteW+NcY+AOLcMZLUPcSi2Z/Mo27rzd1i9imp5I=";
40 };
41
42 pythonRelaxDeps = [ "packaging" ];
43
44 build-system = [ poetry-core ];
45
46 nativeBuildInputs = [ pythonRelaxDepsHook ];
47
48 dependencies = [
49 boto3
50 gremlinpython
51 jsonpath-ng
52 openpyxl
53 opensearch-py
54 pandas
55 pg8000
56 progressbar2
57 pyarrow
58 pymysql
59 redshift-connector
60 requests-aws4auth
61 ];
62
63 passthru.optional-dependencies = {
64 sqlserver = [ pyodbc ];
65 sparql = [ sparqlwrapper ];
66 };
67
68 nativeCheckInputs = [
69 moto
70 pyparsing
71 pytestCheckHook
72 ];
73
74 pythonImportsCheck = [ "awswrangler" ];
75
76 pytestFlagsArray = [
77 # Subset of tests that run in upstream CI (many others require credentials)
78 # https://github.com/aws/aws-sdk-pandas/blob/20fec775515e9e256e8cee5aee12966516608840/.github/workflows/minimal-tests.yml#L36-L43
79 "tests/unit/test_metadata.py"
80 "tests/unit/test_session.py"
81 "tests/unit/test_utils.py"
82 "tests/unit/test_moto.py"
83 ];
84
85 meta = with lib; {
86 description = "Pandas on AWS";
87 homepage = "https://github.com/aws/aws-sdk-pandas";
88 changelog = "https://github.com/aws/aws-sdk-pandas/releases/tag/${version}";
89 license = licenses.asl20;
90 maintainers = with maintainers; [ mcwitt ];
91 };
92}