python310Packages.ibis-framework: 4.1.0 -> 5.1.0

This commit is contained in:
Phillip Cloud 2023-04-14 07:26:15 -04:00
parent d0f57e6196
commit 34eac2362b
No known key found for this signature in database
GPG key ID: D908212070FD785E

View file

@ -5,18 +5,23 @@
, pythonOlder
, pytestCheckHook
, atpublic
, click
, bidict
, black
, clickhouse-cityhash
, clickhouse-driver
, dask
, datafusion
, db-dtypes
, duckdb
, duckdb-engine
, filelock
, geoalchemy2
, geopandas
, google-cloud-bigquery
, google-cloud-bigquery-storage
, graphviz-nox
, hypothesis
, importlib-resources
, lz4
, multipledispatch
, numpy
@ -24,83 +29,100 @@
, pandas
, parsy
, poetry-core
, poetry-dynamic-versioning
, polars
, pooch
, psycopg2
, pyarrow
, pydantic
, pydata-google-auth
, pydruid
, pymysql
, pyspark
, pytest-benchmark
, pytest-httpserver
, pytest-mock
, pytest-randomly
, pytest-snapshot
, pytest-xdist
, python
, python-dateutil
, pytz
, regex
, rich
, rsync
, shapely
, snowflake-connector-python
, snowflake-sqlalchemy
, sqlalchemy
, sqlalchemy-views
, sqlglot
, sqlite
, toolz
, trino-python-client
, typing-extensions
}:
let
testBackends = [
"datafusion"
"duckdb"
"pandas"
"sqlite"
];
testBackends = [ "datafusion" "duckdb" "pandas" "sqlite" ];
ibisTestingData = fetchFromGitHub {
name = "ibis-testing-data";
owner = "ibis-project";
repo = "testing-data";
rev = "3c39abfdb4b284140ff481e8f9fbb128b35f157a";
hash = "sha256-BZWi4kEumZemQeYoAtlUSw922p+R6opSWp/bmX0DjAo=";
rev = "8a59df99c01fa217259554929543e71c3bbb1761";
hash = "sha256-NbgEe0w/qf9hCr9rRfIpyaH9pv25I8x0ykY7EJxDOuk=";
};
in
buildPythonPackage rec {
pname = "ibis-framework";
version = "4.1.0";
version = "5.1.0";
format = "pyproject";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
name = "ibis-source";
repo = "ibis";
owner = "ibis-project";
rev = "refs/tags/${version}";
hash = "sha256-ipnMymf+BOpG9iGWO47no47m4nLIBbqLdbzlevuxeBw=";
hash = "sha256-u3BBGdhWajZ5WtoBvNxmx76+orfHY6LX3IWAq/x2/9A=";
};
patches = [
# fixes a small bug in the datafusion backend to reorder predicates
(fetchpatch {
name = "fix-datafusion-compilation.patch";
url = "https://github.com/ibis-project/ibis/commit/009230421b2bc1f86591e8b850d37a489e8e4f06.patch";
hash = "sha256-5NHkgc8d2bkOMpbY1vme1XgNfyHSr0f7BrR3JTTjjPI=";
})
];
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
atpublic
bidict
multipledispatch
numpy
packaging
pandas
parsy
poetry-dynamic-versioning
pydantic
pooch
python-dateutil
pytz
regex
rich
sqlglot
toolz
];
typing-extensions
] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ]
++ pooch.optional-dependencies.progress
++ pooch.optional-dependencies.xxhash;
nativeCheckInputs = [
pytestCheckHook
click
filelock
hypothesis
pytest-benchmark
pytest-httpserver
pytest-mock
pytest-randomly
pytest-snapshot
@ -112,15 +134,13 @@ buildPythonPackage rec {
"--dist=loadgroup"
"-m"
"'${lib.concatStringsSep " or " testBackends} or core'"
# these will be fixed in ibis-framework 5.0.0
"--deselect=ibis/backends/tests/test_string.py::test_string"
"--deselect=ibis/backends/tests/test_register.py::test_csv_reregister_schema"
"--deselect=ibis/backends/tests/test_client.py::test_list_databases"
# sqlalchemy2 breakage
"--deselect=ibis/tests/sql/test_sqlalchemy.py::test_tpc_h17"
# tries to download duckdb extensions
"--deselect=ibis/backends/duckdb/tests/test_register.py::test_register_sqlite"
"--deselect=ibis/backends/duckdb/tests/test_register.py::test_read_sqlite"
];
# remove when sqlalchemy backend no longer uses deprecated methods
SQLALCHEMY_SILENCE_UBER_WARNING = 1;
# patch out tests that check formatting with black
postPatch = ''
find ibis/tests -type f -name '*.py' -exec sed -i \
@ -131,8 +151,8 @@ buildPythonPackage rec {
preCheck = ''
set -eo pipefail
export IBIS_TEST_DATA_DIRECTORY
IBIS_TEST_DATA_DIRECTORY="ci/ibis-testing-data"
HOME="$TMPDIR"
export IBIS_TEST_DATA_DIRECTORY="ci/ibis-testing-data"
mkdir -p "$IBIS_TEST_DATA_DIRECTORY"
@ -150,23 +170,30 @@ buildPythonPackage rec {
passthru = {
optional-dependencies = {
clickhouse = [ clickhouse-cityhash clickhouse-driver lz4 sqlglot ];
dask = [ dask pyarrow ];
bigquery = [ db-dtypes google-cloud-bigquery google-cloud-bigquery-storage pydata-google-auth ];
clickhouse = [ clickhouse-cityhash clickhouse-driver lz4 sqlalchemy ];
dask = [ dask pyarrow regex ];
datafusion = [ datafusion ];
duckdb = [ duckdb duckdb-engine pyarrow sqlalchemy sqlglot ];
druid = [ pydruid sqlalchemy ];
duckdb = [ duckdb duckdb-engine packaging pyarrow sqlalchemy sqlalchemy-views ];
geospatial = [ geoalchemy2 geopandas shapely ];
mysql = [ sqlalchemy pymysql sqlglot ];
pandas = [ ];
postgres = [ psycopg2 sqlalchemy sqlglot ];
pyspark = [ pyarrow pyspark ];
sqlite = [ sqlalchemy sqlite sqlglot ];
mysql = [ sqlalchemy pymysql sqlalchemy-views ];
pandas = [ regex ];
polars = [ polars pyarrow ];
postgres = [ psycopg2 sqlalchemy sqlalchemy-views ];
pyspark = [ pyarrow pyspark sqlalchemy ];
snowflake = [ snowflake-connector-python snowflake-sqlalchemy sqlalchemy-views ];
sqlite = [ regex sqlalchemy sqlite sqlalchemy-views ];
trino = [ trino-python-client sqlalchemy sqlalchemy-views ];
visualization = [ graphviz-nox ];
decompiler = [ black ];
};
};
meta = with lib; {
description = "Productivity-centric Python Big Data Framework";
homepage = "https://github.com/ibis-project/ibis";
changelog = "https://github.com/ibis-project/ibis/blob/${version}/docs/release_notes.md";
license = licenses.asl20;
maintainers = with maintainers; [ costrouc cpcloud ];
};