1{
2 lib,
3 asn1crypto,
4 buildPythonPackage,
5 certifi,
6 cffi,
7 charset-normalizer,
8 cython,
9 fetchPypi,
10 filelock,
11 idna,
12 keyring,
13 oscrypto,
14 packaging,
15 pandas,
16 platformdirs,
17 pyarrow,
18 pycryptodomex,
19 pyjwt,
20 pyopenssl,
21 pythonOlder,
22 pythonRelaxDepsHook,
23 pytz,
24 requests,
25 setuptools,
26 sortedcontainers,
27 tomlkit,
28 typing-extensions,
29 wheel,
30}:
31
32buildPythonPackage rec {
33 pname = "snowflake-connector-python";
34 version = "3.8.1";
35 pyproject = true;
36
37 disabled = pythonOlder "3.8";
38
39 src = fetchPypi {
40 inherit pname version;
41 hash = "sha256-m8zhoNniEs7s9F7c6gLRjiBalfiMwEcK2kqLrLVCR9U=";
42 };
43
44 build-system = [
45 cython
46 setuptools
47 wheel
48 ];
49
50 nativeBuildInputs = [ pythonRelaxDepsHook ];
51
52 dependencies = [
53 asn1crypto
54 certifi
55 cffi
56 charset-normalizer
57 filelock
58 idna
59 oscrypto
60 packaging
61 platformdirs
62 pycryptodomex
63 pyjwt
64 pyopenssl
65 pytz
66 requests
67 sortedcontainers
68 tomlkit
69 typing-extensions
70 ];
71
72 passthru.optional-dependencies = {
73 pandas = [
74 pandas
75 pyarrow
76 ];
77 secure-local-storage = [ keyring ];
78 };
79
80 # Tests require encrypted secrets, see
81 # https://github.com/snowflakedb/snowflake-connector-python/tree/master/.github/workflows/parameters
82 doCheck = false;
83
84 pythonImportsCheck = [
85 "snowflake"
86 "snowflake.connector"
87 ];
88
89 meta = with lib; {
90 description = "Snowflake Connector for Python";
91 homepage = "https://github.com/snowflakedb/snowflake-connector-python";
92 changelog = "https://github.com/snowflakedb/snowflake-connector-python/blob/v${version}/DESCRIPTION.md";
93 license = licenses.asl20;
94 maintainers = with maintainers; [ ];
95 };
96}