python312Packages.snowflake-connector-python: refactor

This commit is contained in:
Fabian Affolter 2024-04-05 10:26:36 +02:00
parent c15c6ddb10
commit 4d9010c2a5
1 changed files with 14 additions and 27 deletions

View File

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