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