python312Packages.snowflake-connector-python: refactor

This commit is contained in:
Fabian Affolter 2024-04-05 10:26:36 +02:00
parent c15c6ddb10
commit 4d9010c2a5

View File

@ -1,21 +1,24 @@
{ lib { lib
, asn1crypto , asn1crypto
, buildPythonPackage , buildPythonPackage
, pythonRelaxDepsHook
, certifi , certifi
, cffi , cffi
, charset-normalizer , charset-normalizer
, cython
, fetchPypi , fetchPypi
, filelock , filelock
, idna , idna
, keyring , keyring
, oscrypto , oscrypto
, packaging , packaging
, pandas
, platformdirs , platformdirs
, pyarrow
, pycryptodomex , pycryptodomex
, pyjwt , pyjwt
, pyopenssl , pyopenssl
, pythonOlder , pythonOlder
, pythonRelaxDepsHook
, pytz , pytz
, requests , requests
, setuptools , setuptools
@ -28,43 +31,26 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "snowflake-connector-python"; pname = "snowflake-connector-python";
version = "3.8.0"; version = "3.8.0";
format = "pyproject"; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.8";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-tbXoXQK0NIofLWxn30gpqjOHlnsBM9K3+jHRkNBgnDE="; hash = "sha256-tbXoXQK0NIofLWxn30gpqjOHlnsBM9K3+jHRkNBgnDE=";
}; };
# snowflake-connector-python requires arrow 10.0.1, which we don't have in build-system = [
# nixpkgs, so we cannot build the C extensions that use it. thus, patch out cython
# cython and pyarrow from the build dependencies
#
# keep an eye on following issue for improvements to this situation:
#
# https://github.com/snowflakedb/snowflake-connector-python/issues/1144
#
postPatch = ''
substituteInPlace pyproject.toml \
--replace '"cython",' "" \
--replace '"pyarrow>=10.0.1,<10.1.0",' ""
'';
nativeBuildInputs = [
pythonRelaxDepsHook
setuptools setuptools
wheel wheel
]; ];
pythonRelaxDeps = [ nativeBuildInputs = [
"pyOpenSSL" pythonRelaxDepsHook
"charset-normalizer"
"cryptography"
"platformdirs"
]; ];
propagatedBuildInputs = [ dependencies = [
asn1crypto asn1crypto
certifi certifi
cffi cffi
@ -85,6 +71,7 @@ buildPythonPackage rec {
]; ];
passthru.optional-dependencies = { passthru.optional-dependencies = {
pandas = [ pandas pyarrow ];
secure-local-storage = [ keyring ]; secure-local-storage = [ keyring ];
}; };
@ -98,10 +85,10 @@ buildPythonPackage rec {
]; ];
meta = with lib; { meta = with lib; {
changelog = "https://github.com/snowflakedb/snowflake-connector-python/blob/v${version}/DESCRIPTION.md";
description = "Snowflake Connector for Python"; description = "Snowflake Connector for Python";
homepage = "https://github.com/snowflakedb/snowflake-connector-python"; homepage = "https://github.com/snowflakedb/snowflake-connector-python";
changelog = "https://github.com/snowflakedb/snowflake-connector-python/blob/v${version}/DESCRIPTION.md";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
}; };
} }