diff --git a/.github/workflows/sidequery-pypi.yml b/.github/workflows/sidequery-pypi.yml new file mode 100644 index 0000000000..dd0608ed26 --- /dev/null +++ b/.github/workflows/sidequery-pypi.yml @@ -0,0 +1,57 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +name: Publish Sidequery PyIceberg + +on: + push: + tags: + - sidequery-pyiceberg-v* + workflow_dispatch: + inputs: + version: + description: Distribution version + required: true + default: 0.12.0.post1 + type: string + +permissions: + contents: read + +jobs: + build: + uses: ./.github/workflows/pypi-build-artifacts.yml + with: + VERSION: ${{ inputs.version || '0.12.0.post1' }} + + publish: + needs: build + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/sidequery-pyiceberg + permissions: + id-token: write + steps: + - name: Download release artifacts + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + with: + name: pypi-release-candidate-${{ inputs.version || '0.12.0.post1' }} + path: dist + + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2 diff --git a/README.md b/README.md index b94bb7bbe4..dce1a78365 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,11 @@ # Iceberg Python +> [!NOTE] +> This branch builds the `sidequery-pyiceberg` distribution maintained by Sidequery. It keeps the +> `pyiceberg` import package while adding Sidequery's equality-delete read and write support; it is +> not an Apache PyIceberg release. + PyIceberg is a Python library for programmatic access to Iceberg table metadata as well as to table data in Iceberg format. It is a Python implementation of the [Iceberg table spec](https://iceberg.apache.org/spec/). The documentation is available at [https://py.iceberg.apache.org/](https://py.iceberg.apache.org/). diff --git a/pyiceberg/__init__.py b/pyiceberg/__init__.py index 999fe262fe..28fdae65bc 100644 --- a/pyiceberg/__init__.py +++ b/pyiceberg/__init__.py @@ -15,4 +15,4 @@ # specific language governing permissions and limitations # under the License. -__version__ = "0.12.0" +__version__ = "0.12.0.post1" diff --git a/pyproject.toml b/pyproject.toml index 9f5ea5bcb9..d50c8bdc30 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,10 +15,11 @@ # specific language governing permissions and limitations # under the License. [project] -name = "pyiceberg" -version = "0.12.0" -description = "Apache Iceberg is an open table format for huge analytic datasets" +name = "sidequery-pyiceberg" +version = "0.12.0.post1" +description = "Sidequery's PyIceberg distribution with equality-delete read and write support" authors = [{ name = "Apache Software Foundation", email = "dev@iceberg.apache.org" }] +maintainers = [{ name = "Sidequery", email = "hello@sidequery.com" }] requires-python = ">=3.10.0,<4.0.0" readme = "README.md" license = "Apache-2.0" @@ -48,7 +49,7 @@ dependencies = [ [project.urls] Homepage = "https://py.iceberg.apache.org/" -Repository = "https://github.com/apache/iceberg-python" +Repository = "https://github.com/sidequery/iceberg-python" [project.scripts] pyiceberg = "pyiceberg.cli.console:run" diff --git a/tests/test_version.py b/tests/test_version.py index dcaa3f0735..f9e3335754 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -21,7 +21,7 @@ def test_version_format() -> None: from importlib import metadata - installed_version = metadata.version("pyiceberg") + installed_version = metadata.version("sidequery-pyiceberg") assert __version__ == installed_version, ( f"The installed version ({installed_version}) does not match the current codebase version ({__version__})." diff --git a/uv.lock b/uv.lock index ef85837d77..de34a78d27 100644 --- a/uv.lock +++ b/uv.lock @@ -4867,246 +4867,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, ] -[[package]] -name = "pyiceberg" -version = "0.12.0" -source = { editable = "." } -dependencies = [ - { name = "cachetools" }, - { name = "click" }, - { name = "fsspec" }, - { name = "mmh3" }, - { name = "pydantic" }, - { name = "pyparsing" }, - { name = "pyroaring" }, - { name = "requests" }, - { name = "rich" }, - { name = "strictyaml" }, - { name = "tenacity" }, - { name = "zstandard" }, -] - -[package.optional-dependencies] -adlfs = [ - { name = "adlfs" }, -] -bigquery = [ - { name = "google-cloud-bigquery" }, -] -bodo = [ - { name = "bodo" }, -] -daft = [ - { name = "daft" }, -] -datafusion = [ - { name = "datafusion" }, -] -duckdb = [ - { name = "duckdb" }, - { name = "pyarrow" }, -] -dynamodb = [ - { name = "boto3" }, -] -entra-auth = [ - { name = "azure-identity" }, -] -gcp-auth = [ - { name = "google-auth" }, -] -gcsfs = [ - { name = "gcsfs" }, -] -geoarrow = [ - { name = "geoarrow-pyarrow" }, -] -glue = [ - { name = "boto3" }, -] -hf = [ - { name = "huggingface-hub" }, -] -hive = [ - { name = "thrift" }, -] -hive-kerberos = [ - { name = "kerberos" }, - { name = "thrift" }, - { name = "thrift-sasl" }, -] -pandas = [ - { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "pandas", version = "3.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "pyarrow" }, -] -polars = [ - { name = "polars" }, -] -pyarrow = [ - { name = "pyarrow" }, -] -pyiceberg-core = [ - { name = "pyiceberg-core" }, -] -ray = [ - { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "pandas", version = "3.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "pyarrow" }, - { name = "ray" }, -] -rest-sigv4 = [ - { name = "boto3" }, -] -s3fs = [ - { name = "s3fs" }, -] -snappy = [ - { name = "python-snappy" }, -] -sql-postgres = [ - { name = "psycopg2-binary" }, - { name = "sqlalchemy" }, -] -sql-sqlite = [ - { name = "sqlalchemy" }, -] - -[package.dev-dependencies] -dev = [ - { name = "coverage", extra = ["toml"] }, - { name = "cython" }, - { name = "deptry" }, - { name = "docutils" }, - { name = "fastavro" }, - { name = "google-cloud-bigquery" }, - { name = "ipykernel" }, - { name = "moto", extra = ["server"] }, - { name = "mypy-boto3-dynamodb" }, - { name = "mypy-boto3-glue" }, - { name = "nbformat" }, - { name = "papermill" }, - { name = "prek" }, - { name = "protobuf" }, - { name = "pyarrow-stubs" }, - { name = "pyspark", extra = ["connect"] }, - { name = "pytest" }, - { name = "pytest-checkdocs" }, - { name = "pytest-lazy-fixtures" }, - { name = "pytest-mock" }, - { name = "requests-mock" }, - { name = "setuptools" }, - { name = "sqlalchemy" }, - { name = "typing-extensions" }, -] -docs = [ - { name = "griffe" }, - { name = "jinja2" }, - { name = "mkdocs" }, - { name = "mkdocs-autorefs" }, - { name = "mkdocs-gen-files" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-section-index" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, -] -notebook = [ - { name = "jupyterlab" }, -] - -[package.metadata] -requires-dist = [ - { name = "adlfs", marker = "extra == 'adlfs'", specifier = ">=2024.7.0" }, - { name = "azure-identity", marker = "extra == 'entra-auth'", specifier = ">=1.25.1" }, - { name = "bodo", marker = "extra == 'bodo'", specifier = ">=2025.7.4" }, - { name = "boto3", marker = "extra == 'dynamodb'", specifier = ">=1.24.59" }, - { name = "boto3", marker = "extra == 'glue'", specifier = ">=1.24.59" }, - { name = "boto3", marker = "extra == 'rest-sigv4'", specifier = ">=1.24.59" }, - { name = "cachetools", specifier = ">=5.5" }, - { name = "click", specifier = ">=7.1.1" }, - { name = "daft", marker = "extra == 'daft'", specifier = ">=0.7.10" }, - { name = "datafusion", marker = "extra == 'datafusion'", specifier = ">=53,<54" }, - { name = "duckdb", marker = "extra == 'duckdb'", specifier = ">=0.5.0" }, - { name = "fsspec", specifier = ">=2023.1.0" }, - { name = "gcsfs", marker = "extra == 'gcsfs'", specifier = ">=2023.1.0" }, - { name = "geoarrow-pyarrow", marker = "extra == 'geoarrow'", specifier = ">=0.2.0" }, - { name = "google-auth", marker = "extra == 'gcp-auth'", specifier = ">=2.4.0" }, - { name = "google-cloud-bigquery", marker = "extra == 'bigquery'", specifier = ">=3.33.0,<4" }, - { name = "huggingface-hub", marker = "extra == 'hf'", specifier = ">=0.24.0" }, - { name = "kerberos", marker = "extra == 'hive-kerberos'", specifier = ">=1.3.1" }, - { name = "mmh3", specifier = ">=4.0.0" }, - { name = "pandas", marker = "extra == 'pandas'", specifier = ">=1.0.0" }, - { name = "pandas", marker = "extra == 'ray'", specifier = ">=1.0.0" }, - { name = "polars", marker = "extra == 'polars'", specifier = ">=1.21.0" }, - { name = "psycopg2-binary", marker = "extra == 'sql-postgres'", specifier = ">=2.9.6" }, - { name = "pyarrow", marker = "extra == 'duckdb'", specifier = ">=18.0.0" }, - { name = "pyarrow", marker = "extra == 'pandas'", specifier = ">=18.0.0" }, - { name = "pyarrow", marker = "extra == 'pyarrow'", specifier = ">=18.0.0" }, - { name = "pyarrow", marker = "extra == 'ray'", specifier = ">=18.0.0" }, - { name = "pydantic", specifier = ">=2.0,!=2.4.0,!=2.4.1,!=2.12.0,!=2.12.1,<3.0" }, - { name = "pyiceberg-core", marker = "extra == 'pyiceberg-core'", specifier = ">=0.10.1,<0.11.0" }, - { name = "pyparsing", specifier = ">=3.1.0" }, - { name = "pyroaring", specifier = ">=1.0.0" }, - { name = "python-snappy", marker = "extra == 'snappy'", specifier = ">=0.6.0" }, - { name = "ray", marker = "extra == 'ray'", specifier = ">=2.10.0" }, - { name = "requests", specifier = ">=2.20.0" }, - { name = "rich", specifier = ">=10.11.0" }, - { name = "s3fs", marker = "extra == 's3fs'", specifier = ">=2023.1.0" }, - { name = "sqlalchemy", marker = "extra == 'sql-postgres'", specifier = ">=2.0.18,<3" }, - { name = "sqlalchemy", marker = "extra == 'sql-sqlite'", specifier = ">=2.0.18,<3" }, - { name = "strictyaml", specifier = ">=1.7.0" }, - { name = "tenacity", specifier = ">=8.2.3" }, - { name = "thrift", marker = "extra == 'hive'", specifier = ">=0.13.0" }, - { name = "thrift", marker = "extra == 'hive-kerberos'", specifier = ">=0.13.0" }, - { name = "thrift-sasl", marker = "extra == 'hive-kerberos'", specifier = ">=0.4.3" }, - { name = "zstandard", specifier = ">=0.13.0" }, -] -provides-extras = ["pyarrow", "pandas", "duckdb", "ray", "bodo", "daft", "polars", "snappy", "hive", "hive-kerberos", "s3fs", "glue", "adlfs", "dynamodb", "bigquery", "sql-postgres", "sql-sqlite", "gcsfs", "rest-sigv4", "hf", "pyiceberg-core", "datafusion", "gcp-auth", "entra-auth", "geoarrow"] - -[package.metadata.requires-dev] -dev = [ - { name = "coverage", extras = ["toml"], specifier = ">=7.4.2" }, - { name = "cython", specifier = ">=3.0.0" }, - { name = "deptry", specifier = ">=0.14" }, - { name = "docutils", specifier = "!=0.21.post1" }, - { name = "fastavro", specifier = "==1.12.2" }, - { name = "google-cloud-bigquery", specifier = ">=3.33.0,<4" }, - { name = "ipykernel", specifier = ">=6.29.0" }, - { name = "moto", extras = ["server"], specifier = ">=5.0.2" }, - { name = "mypy-boto3-dynamodb", specifier = ">=1.28.18" }, - { name = "mypy-boto3-glue", specifier = ">=1.28.18" }, - { name = "nbformat", specifier = ">=5.10.0" }, - { name = "papermill", specifier = ">=2.6.0" }, - { name = "prek", specifier = ">=0.2.1" }, - { name = "protobuf", specifier = "==7.35.1" }, - { name = "pyarrow-stubs", specifier = ">=20.0.0.20251107" }, - { name = "pyspark", extras = ["connect"], specifier = "==4.0.1" }, - { name = "pytest", specifier = "==9.1.1" }, - { name = "pytest-checkdocs", specifier = "==2.14.0" }, - { name = "pytest-lazy-fixtures", specifier = "==1.4.0" }, - { name = "pytest-mock", specifier = "==3.15.1" }, - { name = "requests-mock", specifier = "==1.12.1" }, - { name = "setuptools", specifier = ">=83.0.0" }, - { name = "sqlalchemy", specifier = ">=2.0.18,<3" }, - { name = "typing-extensions", specifier = "==4.16.0" }, -] -docs = [ - { name = "griffe", specifier = "==2.1.0" }, - { name = "jinja2", specifier = "==3.1.6" }, - { name = "mkdocs", specifier = "==1.6.1" }, - { name = "mkdocs-autorefs", specifier = "==1.4.4" }, - { name = "mkdocs-gen-files", specifier = "==0.6.1" }, - { name = "mkdocs-literate-nav", specifier = "==0.6.3" }, - { name = "mkdocs-material", specifier = "==9.7.7" }, - { name = "mkdocs-material-extensions", specifier = "==1.3.1" }, - { name = "mkdocs-section-index", specifier = "==0.3.12" }, - { name = "mkdocstrings", specifier = "==1.0.6" }, - { name = "mkdocstrings-python", specifier = "==2.0.5" }, -] -notebook = [{ name = "jupyterlab", specifier = ">=4.0.0" }] - [[package]] name = "pyiceberg-core" version = "0.10.1" @@ -6187,6 +5947,246 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5d/40/e1e72872c6354b306daef1703549e8e83b4d43cfea356311bf722a043752/setuptools-83.0.0-py3-none-any.whl", hash = "sha256:29b23c360f22f414dc7336bb39178cc7bcbf6021ed2733cde173f09dba19abb3", size = 1008090, upload-time = "2026-07-04T15:31:20.885Z" }, ] +[[package]] +name = "sidequery-pyiceberg" +version = "0.12.0.post1" +source = { editable = "." } +dependencies = [ + { name = "cachetools" }, + { name = "click" }, + { name = "fsspec" }, + { name = "mmh3" }, + { name = "pydantic" }, + { name = "pyparsing" }, + { name = "pyroaring" }, + { name = "requests" }, + { name = "rich" }, + { name = "strictyaml" }, + { name = "tenacity" }, + { name = "zstandard" }, +] + +[package.optional-dependencies] +adlfs = [ + { name = "adlfs" }, +] +bigquery = [ + { name = "google-cloud-bigquery" }, +] +bodo = [ + { name = "bodo" }, +] +daft = [ + { name = "daft" }, +] +datafusion = [ + { name = "datafusion" }, +] +duckdb = [ + { name = "duckdb" }, + { name = "pyarrow" }, +] +dynamodb = [ + { name = "boto3" }, +] +entra-auth = [ + { name = "azure-identity" }, +] +gcp-auth = [ + { name = "google-auth" }, +] +gcsfs = [ + { name = "gcsfs" }, +] +geoarrow = [ + { name = "geoarrow-pyarrow" }, +] +glue = [ + { name = "boto3" }, +] +hf = [ + { name = "huggingface-hub" }, +] +hive = [ + { name = "thrift" }, +] +hive-kerberos = [ + { name = "kerberos" }, + { name = "thrift" }, + { name = "thrift-sasl" }, +] +pandas = [ + { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pandas", version = "3.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pyarrow" }, +] +polars = [ + { name = "polars" }, +] +pyarrow = [ + { name = "pyarrow" }, +] +pyiceberg-core = [ + { name = "pyiceberg-core" }, +] +ray = [ + { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pandas", version = "3.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pyarrow" }, + { name = "ray" }, +] +rest-sigv4 = [ + { name = "boto3" }, +] +s3fs = [ + { name = "s3fs" }, +] +snappy = [ + { name = "python-snappy" }, +] +sql-postgres = [ + { name = "psycopg2-binary" }, + { name = "sqlalchemy" }, +] +sql-sqlite = [ + { name = "sqlalchemy" }, +] + +[package.dev-dependencies] +dev = [ + { name = "coverage", extra = ["toml"] }, + { name = "cython" }, + { name = "deptry" }, + { name = "docutils" }, + { name = "fastavro" }, + { name = "google-cloud-bigquery" }, + { name = "ipykernel" }, + { name = "moto", extra = ["server"] }, + { name = "mypy-boto3-dynamodb" }, + { name = "mypy-boto3-glue" }, + { name = "nbformat" }, + { name = "papermill" }, + { name = "prek" }, + { name = "protobuf" }, + { name = "pyarrow-stubs" }, + { name = "pyspark", extra = ["connect"] }, + { name = "pytest" }, + { name = "pytest-checkdocs" }, + { name = "pytest-lazy-fixtures" }, + { name = "pytest-mock" }, + { name = "requests-mock" }, + { name = "setuptools" }, + { name = "sqlalchemy" }, + { name = "typing-extensions" }, +] +docs = [ + { name = "griffe" }, + { name = "jinja2" }, + { name = "mkdocs" }, + { name = "mkdocs-autorefs" }, + { name = "mkdocs-gen-files" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-section-index" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, +] +notebook = [ + { name = "jupyterlab" }, +] + +[package.metadata] +requires-dist = [ + { name = "adlfs", marker = "extra == 'adlfs'", specifier = ">=2024.7.0" }, + { name = "azure-identity", marker = "extra == 'entra-auth'", specifier = ">=1.25.1" }, + { name = "bodo", marker = "extra == 'bodo'", specifier = ">=2025.7.4" }, + { name = "boto3", marker = "extra == 'dynamodb'", specifier = ">=1.24.59" }, + { name = "boto3", marker = "extra == 'glue'", specifier = ">=1.24.59" }, + { name = "boto3", marker = "extra == 'rest-sigv4'", specifier = ">=1.24.59" }, + { name = "cachetools", specifier = ">=5.5" }, + { name = "click", specifier = ">=7.1.1" }, + { name = "daft", marker = "extra == 'daft'", specifier = ">=0.7.10" }, + { name = "datafusion", marker = "extra == 'datafusion'", specifier = ">=53,<54" }, + { name = "duckdb", marker = "extra == 'duckdb'", specifier = ">=0.5.0" }, + { name = "fsspec", specifier = ">=2023.1.0" }, + { name = "gcsfs", marker = "extra == 'gcsfs'", specifier = ">=2023.1.0" }, + { name = "geoarrow-pyarrow", marker = "extra == 'geoarrow'", specifier = ">=0.2.0" }, + { name = "google-auth", marker = "extra == 'gcp-auth'", specifier = ">=2.4.0" }, + { name = "google-cloud-bigquery", marker = "extra == 'bigquery'", specifier = ">=3.33.0,<4" }, + { name = "huggingface-hub", marker = "extra == 'hf'", specifier = ">=0.24.0" }, + { name = "kerberos", marker = "extra == 'hive-kerberos'", specifier = ">=1.3.1" }, + { name = "mmh3", specifier = ">=4.0.0" }, + { name = "pandas", marker = "extra == 'pandas'", specifier = ">=1.0.0" }, + { name = "pandas", marker = "extra == 'ray'", specifier = ">=1.0.0" }, + { name = "polars", marker = "extra == 'polars'", specifier = ">=1.21.0" }, + { name = "psycopg2-binary", marker = "extra == 'sql-postgres'", specifier = ">=2.9.6" }, + { name = "pyarrow", marker = "extra == 'duckdb'", specifier = ">=18.0.0" }, + { name = "pyarrow", marker = "extra == 'pandas'", specifier = ">=18.0.0" }, + { name = "pyarrow", marker = "extra == 'pyarrow'", specifier = ">=18.0.0" }, + { name = "pyarrow", marker = "extra == 'ray'", specifier = ">=18.0.0" }, + { name = "pydantic", specifier = ">=2.0,!=2.4.0,!=2.4.1,!=2.12.0,!=2.12.1,<3.0" }, + { name = "pyiceberg-core", marker = "extra == 'pyiceberg-core'", specifier = ">=0.10.1,<0.11.0" }, + { name = "pyparsing", specifier = ">=3.1.0" }, + { name = "pyroaring", specifier = ">=1.0.0" }, + { name = "python-snappy", marker = "extra == 'snappy'", specifier = ">=0.6.0" }, + { name = "ray", marker = "extra == 'ray'", specifier = ">=2.10.0" }, + { name = "requests", specifier = ">=2.20.0" }, + { name = "rich", specifier = ">=10.11.0" }, + { name = "s3fs", marker = "extra == 's3fs'", specifier = ">=2023.1.0" }, + { name = "sqlalchemy", marker = "extra == 'sql-postgres'", specifier = ">=2.0.18,<3" }, + { name = "sqlalchemy", marker = "extra == 'sql-sqlite'", specifier = ">=2.0.18,<3" }, + { name = "strictyaml", specifier = ">=1.7.0" }, + { name = "tenacity", specifier = ">=8.2.3" }, + { name = "thrift", marker = "extra == 'hive'", specifier = ">=0.13.0" }, + { name = "thrift", marker = "extra == 'hive-kerberos'", specifier = ">=0.13.0" }, + { name = "thrift-sasl", marker = "extra == 'hive-kerberos'", specifier = ">=0.4.3" }, + { name = "zstandard", specifier = ">=0.13.0" }, +] +provides-extras = ["pyarrow", "pandas", "duckdb", "ray", "bodo", "daft", "polars", "snappy", "hive", "hive-kerberos", "s3fs", "glue", "adlfs", "dynamodb", "bigquery", "sql-postgres", "sql-sqlite", "gcsfs", "rest-sigv4", "hf", "pyiceberg-core", "datafusion", "gcp-auth", "entra-auth", "geoarrow"] + +[package.metadata.requires-dev] +dev = [ + { name = "coverage", extras = ["toml"], specifier = ">=7.4.2" }, + { name = "cython", specifier = ">=3.0.0" }, + { name = "deptry", specifier = ">=0.14" }, + { name = "docutils", specifier = "!=0.21.post1" }, + { name = "fastavro", specifier = "==1.12.2" }, + { name = "google-cloud-bigquery", specifier = ">=3.33.0,<4" }, + { name = "ipykernel", specifier = ">=6.29.0" }, + { name = "moto", extras = ["server"], specifier = ">=5.0.2" }, + { name = "mypy-boto3-dynamodb", specifier = ">=1.28.18" }, + { name = "mypy-boto3-glue", specifier = ">=1.28.18" }, + { name = "nbformat", specifier = ">=5.10.0" }, + { name = "papermill", specifier = ">=2.6.0" }, + { name = "prek", specifier = ">=0.2.1" }, + { name = "protobuf", specifier = "==7.35.1" }, + { name = "pyarrow-stubs", specifier = ">=20.0.0.20251107" }, + { name = "pyspark", extras = ["connect"], specifier = "==4.0.1" }, + { name = "pytest", specifier = "==9.1.1" }, + { name = "pytest-checkdocs", specifier = "==2.14.0" }, + { name = "pytest-lazy-fixtures", specifier = "==1.4.0" }, + { name = "pytest-mock", specifier = "==3.15.1" }, + { name = "requests-mock", specifier = "==1.12.1" }, + { name = "setuptools", specifier = ">=83.0.0" }, + { name = "sqlalchemy", specifier = ">=2.0.18,<3" }, + { name = "typing-extensions", specifier = "==4.16.0" }, +] +docs = [ + { name = "griffe", specifier = "==2.1.0" }, + { name = "jinja2", specifier = "==3.1.6" }, + { name = "mkdocs", specifier = "==1.6.1" }, + { name = "mkdocs-autorefs", specifier = "==1.4.4" }, + { name = "mkdocs-gen-files", specifier = "==0.6.1" }, + { name = "mkdocs-literate-nav", specifier = "==0.6.3" }, + { name = "mkdocs-material", specifier = "==9.7.7" }, + { name = "mkdocs-material-extensions", specifier = "==1.3.1" }, + { name = "mkdocs-section-index", specifier = "==0.3.12" }, + { name = "mkdocstrings", specifier = "==1.0.6" }, + { name = "mkdocstrings-python", specifier = "==2.0.5" }, +] +notebook = [{ name = "jupyterlab", specifier = ">=4.0.0" }] + [[package]] name = "six" version = "1.17.0"