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