diff options
Diffstat (limited to 'pkgs/development/python-modules/ibis-framework/default.nix')
-rw-r--r-- | pkgs/development/python-modules/ibis-framework/default.nix | 237 |
1 files changed, 153 insertions, 84 deletions
diff --git a/pkgs/development/python-modules/ibis-framework/default.nix b/pkgs/development/python-modules/ibis-framework/default.nix index c6d68d83dbff2..596bba56f0ae4 100644 --- a/pkgs/development/python-modules/ibis-framework/default.nix +++ b/pkgs/development/python-modules/ibis-framework/default.nix @@ -1,79 +1,86 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, pythonOlder -, pytestCheckHook -, atpublic -, bidict -, black -, clickhouse-connect -, dask -, datafusion -, db-dtypes -, duckdb -, duckdb-engine -, filelock -, geoalchemy2 -, geopandas -, google-cloud-bigquery -, google-cloud-bigquery-storage -, graphviz -, hypothesis -, multipledispatch -, numpy -, oracledb -, packaging -, pandas -, parsy -, pins -, poetry-core -, poetry-dynamic-versioning -, polars -, psycopg2 -, pyarrow -, pyarrow-hotfix -, pydata-google-auth -, pydruid -, pymysql -, pyodbc -, pyspark -, pytest-benchmark -, pytest-httpserver -, pytest-mock -, pytest-randomly -, pytest-snapshot -, pytest-xdist -, python-dateutil -, pytz -, regex -, rich -, shapely -, snowflake-connector-python -, snowflake-sqlalchemy -, sqlalchemy -, sqlalchemy-views -, sqlglot -, sqlite -, toolz -, trino-python-client -, typing-extensions +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pythonOlder, + pytestCheckHook, + atpublic, + bidict, + black, + clickhouse-connect, + dask, + datafusion, + db-dtypes, + duckdb, + duckdb-engine, + filelock, + geoalchemy2, + geopandas, + google-cloud-bigquery, + google-cloud-bigquery-storage, + graphviz, + hypothesis, + multipledispatch, + numpy, + oracledb, + packaging, + pandas, + parsy, + pins, + poetry-core, + poetry-dynamic-versioning, + polars, + psycopg2, + pyarrow, + pyarrow-hotfix, + pydata-google-auth, + pydruid, + pymysql, + pyodbc, + pyspark, + pytest-benchmark, + pytest-httpserver, + pytest-mock, + pytest-randomly, + pytest-snapshot, + pytest-timeout, + pytest-xdist, + python-dateutil, + pytz, + regex, + rich, + 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"; - # https://github.com/ibis-project/ibis/blob/8.0.0/nix/overlay.nix#L20-L26 - rev = "2c6a4bb5d5d525058d8d5b2312a9fee5dafc5476"; - hash = "sha256-Lq503bqh9ESZJSk6yVq/uZwkAubzmSmoTBZSsqMm0DY="; + # https://github.com/ibis-project/ibis/blob/9.0.0/nix/overlay.nix#L20-L26 + rev = "1922bd4617546b877e66e78bb2b87abeb510cf8e"; + hash = "sha256-l5d7r/6Voy6N2pXq3IivLX3N0tNfKKwsbZXRexzc8Z8="; }; in buildPythonPackage rec { pname = "ibis-framework"; - version = "8.0.0"; + version = "9.0.0"; pyproject = true; disabled = pythonOlder "3.9"; @@ -83,7 +90,7 @@ buildPythonPackage rec { repo = "ibis"; owner = "ibis-project"; rev = "refs/tags/${version}"; - hash = "sha256-KcNZslqmSbu8uPYKpkyvd7d8Fsf0nQt80y0auXsI8fs="; + hash = "sha256-ebTYCBL1zm2Rmwg998x2kYvKhyQDk8Di1pcx5lR37xo="; }; nativeBuildInputs = [ @@ -120,6 +127,7 @@ buildPythonPackage rec { pytest-mock pytest-randomly pytest-snapshot + pytest-timeout pytest-xdist ] ++ lib.concatMap (name: passthru.optional-dependencies.${name}) testBackends; @@ -133,8 +141,11 @@ buildPythonPackage rec { # breakage from sqlalchemy2 truediv changes "test_tpc_h17" # tries to download duckdb extensions - "test_register_sqlite" + "test_attach_sqlite" + "test_connect_extensions" + "test_load_extension" "test_read_sqlite" + "test_register_sqlite" # duckdb does not respect sample_size=2 (reads 3 lines of csv). "test_csv_reregister_schema" # duckdb fails with: @@ -170,30 +181,88 @@ buildPythonPackage rec { rm -r "$IBIS_TEST_DATA_DIRECTORY" ''; - pythonImportsCheck = [ - "ibis" - ] ++ map (backend: "ibis.backends.${backend}") testBackends; + pythonImportsCheck = [ "ibis" ] ++ map (backend: "ibis.backends.${backend}") testBackends; passthru = { optional-dependencies = { - bigquery = [ db-dtypes google-cloud-bigquery google-cloud-bigquery-storage pydata-google-auth ]; - clickhouse = [ clickhouse-connect sqlalchemy ]; - dask = [ dask regex ]; + bigquery = [ + db-dtypes + google-cloud-bigquery + google-cloud-bigquery-storage + pydata-google-auth + ]; + clickhouse = [ + clickhouse-connect + sqlalchemy + ]; + dask = [ + dask + regex + ]; datafusion = [ datafusion ]; - druid = [ pydruid sqlalchemy ]; - duckdb = [ duckdb duckdb-engine sqlalchemy sqlalchemy-views ]; + druid = [ + pydruid + sqlalchemy + ]; + duckdb = [ + duckdb + duckdb-engine + sqlalchemy + sqlalchemy-views + ]; flink = [ ]; - geospatial = [ geoalchemy2 geopandas shapely ]; - mssql = [ sqlalchemy pyodbc sqlalchemy-views ]; - mysql = [ sqlalchemy pymysql sqlalchemy-views ]; - oracle = [ sqlalchemy oracledb packaging sqlalchemy-views ]; + geospatial = [ + geoalchemy2 + geopandas + shapely + ]; + mssql = [ + sqlalchemy + pyodbc + sqlalchemy-views + ]; + mysql = [ + sqlalchemy + pymysql + sqlalchemy-views + ]; + oracle = [ + sqlalchemy + oracledb + packaging + sqlalchemy-views + ]; pandas = [ regex ]; - polars = [ polars packaging ]; - postgres = [ psycopg2 sqlalchemy sqlalchemy-views ]; - pyspark = [ pyspark sqlalchemy packaging ]; - snowflake = [ snowflake-connector-python snowflake-sqlalchemy sqlalchemy-views packaging ]; - sqlite = [ regex sqlalchemy sqlalchemy-views ]; - trino = [ trino-python-client sqlalchemy sqlalchemy-views ]; + polars = [ + polars + packaging + ]; + postgres = [ + psycopg2 + sqlalchemy + sqlalchemy-views + ]; + pyspark = [ + pyspark + sqlalchemy + packaging + ]; + snowflake = [ + snowflake-connector-python + snowflake-sqlalchemy + sqlalchemy-views + packaging + ]; + sqlite = [ + regex + sqlalchemy + sqlalchemy-views + ]; + trino = [ + trino-python-client + sqlalchemy + sqlalchemy-views + ]; visualization = [ graphviz ]; decompiler = [ black ]; examples = [ pins ] ++ pins.optional-dependencies.gcs; |