python3.pkgs.ibis-framework: 9.1.0 -> 9.5.0

This commit is contained in:
Phillip Cloud
2024-09-30 12:05:16 -04:00
parent 8a1008f801
commit cdaee3882f
@@ -5,20 +5,19 @@
pythonOlder,
pytestCheckHook,
atpublic,
bidict,
black,
clickhouse-connect,
dask,
datafusion,
db-dtypes,
duckdb,
fetchpatch,
filelock,
geopandas,
google-cloud-bigquery,
google-cloud-bigquery-storage,
graphviz,
hypothesis,
multipledispatch,
numpy,
oracledb,
packaging,
@@ -57,25 +56,24 @@
}:
let
testBackends = [
"datafusion"
"duckdb"
"pandas"
"sqlite"
"datafusion"
];
ibisTestingData = fetchFromGitHub {
name = "ibis-testing-data";
owner = "ibis-project";
repo = "testing-data";
# https://github.com/ibis-project/ibis/blob/9.1.0/nix/overlay.nix#L20-L26
rev = "6737d1cb5951cabaccd095a3ae62a93dbd11ecb9";
hash = "sha256-MoVTZPWh4KVlrICYACrgfeLdl/fqoa1iweNg3zUtdrs=";
# https://github.com/ibis-project/ibis/blob/9.5.0/nix/overlay.nix#L20-L26
rev = "b26bd40cf29004372319df620c4bbe41420bb6f8";
sha256 = "sha256-1fenQNQB+Q0pbb0cbK2S/UIwZDE4PXXG15MH3aVbyLU=";
};
in
buildPythonPackage rec {
pname = "ibis-framework";
version = "9.1.0";
version = "9.5.0";
pyproject = true;
disabled = pythonOlder "3.10";
@@ -85,9 +83,18 @@ buildPythonPackage rec {
repo = "ibis";
owner = "ibis-project";
rev = "refs/tags/${version}";
hash = "sha256-GmzmXzYMs7K7B//is3ZoD4muPAkb0tM56zFBbsA+NEo=";
hash = "sha256-6ebw/E3jZFMHKqC5ZY//2Ke0NrklyoGp5JGKBfDxy40=";
};
patches = [
# remove after the 10.0 release
(fetchpatch {
name = "ibis-framework-duckdb-1.1.1.patch";
url = "https://github.com/ibis-project/ibis/commit/a54eceabac1d6592e9f6ab0ca7749e37a748c2ad.patch";
hash = "sha256-j5BPYVqnEF9GQV5N3/VhFUCdsEwAIOQC0KfZ5LNBSRg=";
})
];
nativeBuildInputs = [
poetry-core
poetry-dynamic-versioning
@@ -98,16 +105,9 @@ buildPythonPackage rec {
propagatedBuildInputs = [
atpublic
bidict
multipledispatch
numpy
pandas
parsy
pyarrow
pyarrow-hotfix
python-dateutil
pytz
rich
sqlglot
toolz
typing-extensions
@@ -124,13 +124,17 @@ buildPythonPackage rec {
pytest-randomly
pytest-snapshot
pytest-timeout
# this dependency is still needed due to use of strict markers and
# `pytest.mark.xdist_group` in the ibis codebase
pytest-xdist
] ++ lib.concatMap (name: optional-dependencies.${name}) testBackends;
dontUsePytestXdist = true;
pytestFlagsArray = [
"--dist=loadgroup"
"-m"
"'${lib.concatStringsSep " or " testBackends} or core'"
# tpcds and tpch are slow, so disable them
"'not tpcds and not tpch and (${lib.concatStringsSep " or " testBackends} or core)'"
];
disabledTests = [
@@ -142,6 +146,7 @@ buildPythonPackage rec {
"test_register_sqlite"
# requires network connection
"test_s3_403_fallback"
"test_hugging_face"
# requires pytest 8.2+
"test_roundtrip_delta"
];
@@ -172,44 +177,131 @@ buildPythonPackage rec {
db-dtypes
google-cloud-bigquery
google-cloud-bigquery-storage
pyarrow
pyarrow-hotfix
pydata-google-auth
numpy
pandas
rich
];
clickhouse = [ clickhouse-connect ];
dask = [
dask
regex
packaging
clickhouse = [
clickhouse-connect
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
datafusion = [
datafusion
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
druid = [
pydruid
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
duckdb = [
duckdb
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
flink = [
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
datafusion = [ datafusion ];
druid = [ pydruid ];
duckdb = [ duckdb ];
flink = [ ];
geospatial = [
geopandas
shapely
];
mssql = [ pyodbc ];
mysql = [ pymysql ];
mssql = [
pyodbc
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
mysql = [
pymysql
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
oracle = [
oracledb
packaging
];
pandas = [
regex
packaging
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
polars = [
polars
packaging
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
postgres = [
psycopg2
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
postgres = [ psycopg2 ];
pyspark = [
pyspark
packaging
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
snowflake = [
snowflake-connector-python
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
sqlite = [
regex
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
trino = [
trino-python-client
pyarrow
pyarrow-hotfix
numpy
pandas
rich
];
snowflake = [ snowflake-connector-python ];
sqlite = [ regex ];
trino = [ trino-python-client ];
visualization = [ graphviz ];
decompiler = [ black ];
examples = [ pins ] ++ pins.optional-dependencies.gcs;