From 77bdf08b37debcf67b8b51ce0d3eeb86cf35cfae Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sun, 6 Sep 2026 09:34:48 +0000 Subject: [PATCH] python3Packages.pyiceberg: 0.11.1 -> 0.12.0 Diff: https://github.com/apache/iceberg-python/compare/pyiceberg-0.11.1...pyiceberg-0.12.0 Changelog: https://github.com/apache/iceberg-python/releases/tag/pyiceberg-0.12.0 --- .../python-modules/pyiceberg/default.nix | 58 ++++++++----------- 1 file changed, 23 insertions(+), 35 deletions(-) diff --git a/pkgs/development/python-modules/pyiceberg/default.nix b/pkgs/development/python-modules/pyiceberg/default.nix index 48a61de54ec9..13fe57bde598 100644 --- a/pkgs/development/python-modules/pyiceberg/default.nix +++ b/pkgs/development/python-modules/pyiceberg/default.nix @@ -32,6 +32,7 @@ azure-identity, google-auth, gcsfs, + geoarrow-pyarrow, huggingface-hub, thrift, kerberos, @@ -51,16 +52,15 @@ moto, pyspark, pytestCheckHook, - pytest-lazy-fixture, + pytest-lazy-fixtures, pytest-mock, pytest-timeout, requests-mock, - pythonAtLeast, }: buildPythonPackage (finalAttrs: { pname = "pyiceberg"; - version = "0.11.1"; + version = "0.12.0"; pyproject = true; __structuredAttrs = true; @@ -68,7 +68,7 @@ buildPythonPackage (finalAttrs: { owner = "apache"; repo = "iceberg-python"; tag = "pyiceberg-${finalAttrs.version}"; - hash = "sha256-MjBvLJOnjtpIwBMkI+81S6aipye+PnbrC8T317Qj6rY="; + hash = "sha256-rH+lURcsMqU+Dz4AdofngxLVhJzZIp4LMru1yyvyItI="; }; build-system = [ @@ -79,13 +79,6 @@ buildPythonPackage (finalAttrs: { # Prevents the cython build to fail silently env.CIBUILDWHEEL = "1"; - pythonRelaxDeps = [ - # cachetools<7.0,>=5.5 not satisfied by version 7.1.4 - "cachetools" - # rich<15.0.0,>=10.11.0 not satisfied by version 15.0.0 - "rich" - ]; - dependencies = [ cachetools click @@ -133,6 +126,9 @@ buildPythonPackage (finalAttrs: { gcsfs = [ gcsfs ]; + geoarrow = [ + geoarrow-pyarrow + ]; glue = [ boto3 ]; @@ -156,7 +152,6 @@ buildPythonPackage (finalAttrs: { ]; pyarrow = [ pyarrow - pyiceberg-core ]; pyiceberg-core = [ pyiceberg-core @@ -198,7 +193,7 @@ buildPythonPackage (finalAttrs: { fastavro moto pyspark - pytest-lazy-fixture + pytest-lazy-fixtures pytest-mock pytest-timeout pytestCheckHook @@ -207,20 +202,15 @@ buildPythonPackage (finalAttrs: { ++ finalAttrs.passthru.optional-dependencies.adlfs ++ finalAttrs.passthru.optional-dependencies.bigquery ++ finalAttrs.passthru.optional-dependencies.entra-auth + ++ finalAttrs.passthru.optional-dependencies.geoarrow ++ finalAttrs.passthru.optional-dependencies.hive ++ finalAttrs.passthru.optional-dependencies.pandas ++ finalAttrs.passthru.optional-dependencies.pyarrow + ++ finalAttrs.passthru.optional-dependencies.pyiceberg-core ++ finalAttrs.passthru.optional-dependencies.s3fs ++ finalAttrs.passthru.optional-dependencies.sql-sqlite ++ moto.optional-dependencies.server; - pytestFlags = [ - # ResourceWarning: unclosed database in - "-Wignore::ResourceWarning" - # Using `@model_validator` with mode='after' on a classmethod is deprecated - "-Wignore::pydantic.warnings.PydanticDeprecatedSince212" - ]; - preCheck = '' rm -rf pyiceberg ''; @@ -231,12 +221,17 @@ buildPythonPackage (finalAttrs: { # - requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8181): Max retries exceeded with url: /v1/config # - thrift.transport.TTransport.TTransportException: Could not connect to any of [('127.0.0.1', 9083)] "tests/integration" + + # ModuleNotFoundError: No module named 'nbformat' + "tests/notebooks" + + # Segfaults: `pyiceberg-core` bundles `datafusion-ffi` 53.x, whose ABI is + # incompatible with the packaged `datafusion` 54.x + # https://github.com/apache/datafusion/issues/17374 + "tests/table/test_datafusion.py" ]; disabledTests = [ - # assert "Expected '<=' | '<>' | '<' | '>=' | '>' | '==' | '=' | '!=', found '.'" in str(exc_info.value) - "test_quoted_column_with_dots" - # AssertionError: assert 'grant_type=c...scope=catalog' == 'grant_type=c...scope=catalog' "test_auth_header" @@ -247,12 +242,10 @@ buildPythonPackage (finalAttrs: { "test_token_with_optional_oauth_params" "test_token_with_custom_scope" - # AttributeError: 'SessionContext' object has no attribute 'register_table_provider' - "test_datafusion_register_pyiceberg_tabl" - # ModuleNotFoundError: No module named 'puresasl' "test_create_hive_client_with_kerberos" "test_create_hive_client_with_kerberos_using_context_manager" + "test_kerberized_client_uses_fresh_transport_on_reuse" # botocore.exceptions.EndpointConnectionError: Could not connect to the endpoint URL "test_checking_if_a_file_exists" @@ -294,12 +287,12 @@ buildPythonPackage (finalAttrs: { "test_getting_length_of_file_gcs" # Timing sensitive - # AssertionError: assert 8 == 5 + # AssertionError: assert 8 == 5 "test_hive_wait_for_lock" - # Schema comparison faildue to `string` becoming `large_string` - "test_read_map " - "test_projection_maps_of_structs" + # Memory usage sensitive + # AssertionError: Peak memory ratio (5.7x) exceeds 3.0x + "test_add_files_dup_check_memory_growth" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # ImportError: The pyarrow installation is not built with support for 'GcsFileSystem' @@ -317,11 +310,6 @@ buildPythonPackage (finalAttrs: { "test_inspect_partition_for_nested_field" "test_inspect_partitions_respects_partition_evolution" "test_partition_column_projection_with_schema_evolution" - ] - ++ lib.optionals (pythonAtLeast "3.13") [ - # AssertionError: - # assert "Incompatible with StructProtocol: " in "Unable to initialize struct: " - "test_read_not_struct_type" ]; __darwinAllowLocalNetworking = true;