1{
2 lib,
3 boto3,
4 botocore,
5 buildPythonPackage,
6 fastparquet,
7 fetchPypi,
8 fsspec,
9 hatchling,
10 pandas,
11 pyarrow,
12 pythonOlder,
13 sqlalchemy,
14 tenacity,
15}:
16
17buildPythonPackage rec {
18 pname = "pyathena";
19 version = "3.8.2";
20 pyproject = true;
21
22 disabled = pythonOlder "3.8";
23
24 src = fetchPypi {
25 inherit pname version;
26 hash = "sha256-uVYnhxQJy6BvSZ/7JbKZPtE+uJkOtEZrd3uTokfZ3f8=";
27 };
28
29 nativeBuildInputs = [ hatchling ];
30
31 propagatedBuildInputs = [
32 boto3
33 botocore
34 fsspec
35 tenacity
36 ];
37
38 passthru.optional-dependencies = {
39 pandas = [ pandas ];
40 sqlalchemy = [ sqlalchemy ];
41 arrow = [ pyarrow ];
42 fastparquet = [ fastparquet ];
43 };
44
45 # Nearly all tests depend on a working AWS Athena instance,
46 # therefore deactivating them.
47 # https://github.com/laughingman7743/PyAthena/#testing
48 doCheck = false;
49
50 pythonImportsCheck = [ "pyathena" ];
51
52 meta = with lib; {
53 description = "Python DB API 2.0 (PEP 249) client for Amazon Athena";
54 homepage = "https://github.com/laughingman7743/PyAthena/";
55 changelog = "https://github.com/laughingman7743/PyAthena/releases/tag/v${version}";
56 license = licenses.mit;
57 maintainers = with maintainers; [ turion ];
58 };
59}