This is an automated email from the ASF dual-hosted git repository.
kevinjqliu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-python.git
The following commit(s) were added to refs/heads/main by this push:
new 1bef2a41 Remove Python 3.9 support (#2554)
1bef2a41 is described below
commit 1bef2a41477741ba2e7edeb99a7bcecad56fa950
Author: Aniket <[email protected]>
AuthorDate: Mon Oct 20 21:38:16 2025 +0530
Remove Python 3.9 support (#2554)
#2534
Removed python 3.9 support.
Please let me know if my approach or fix needs any improvements . I’m
open to feedback and happy to make changes based on suggestions.
Thankyou !
---------
Co-authored-by: Kevin Liu <[email protected]>
---
.github/workflows/pypi-build-artifacts.yml | 3 +-
.github/workflows/python-ci.yml | 4 +-
.github/workflows/svn-build-artifacts.yml | 3 +-
mkdocs/docs/contributing.md | 2 -
poetry.lock | 245 ++---------------------------
pyproject.toml | 3 +-
6 files changed, 19 insertions(+), 241 deletions(-)
diff --git a/.github/workflows/pypi-build-artifacts.yml
b/.github/workflows/pypi-build-artifacts.yml
index dafdb52d..65de2a78 100644
--- a/.github/workflows/pypi-build-artifacts.yml
+++ b/.github/workflows/pypi-build-artifacts.yml
@@ -42,7 +42,6 @@ jobs:
- uses: actions/setup-python@v6
with:
python-version: |
- 3.9
3.10
3.11
3.12
@@ -69,7 +68,7 @@ jobs:
env:
# Ignore 32 bit architectures
CIBW_ARCHS: "auto64"
- CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9,<3.13"
+ CIBW_PROJECT_REQUIRES_PYTHON: ">=3.10"
CIBW_TEST_REQUIRES: "pytest==7.4.2 moto==5.0.1"
CIBW_TEST_COMMAND: "pytest {project}/tests/avro/test_decoder.py"
# Ignore tests for pypy since not all dependencies are compiled for
it
diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml
index 6a2b144f..c8e19c64 100644
--- a/.github/workflows/python-ci.yml
+++ b/.github/workflows/python-ci.yml
@@ -47,7 +47,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- python: ['3.9', '3.10', '3.11', '3.12']
+ python: ['3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v5
@@ -71,7 +71,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- python: ['3.9', '3.10', '3.11', '3.12']
+ python: ['3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v5
diff --git a/.github/workflows/svn-build-artifacts.yml
b/.github/workflows/svn-build-artifacts.yml
index 2f1a89cc..116c6538 100644
--- a/.github/workflows/svn-build-artifacts.yml
+++ b/.github/workflows/svn-build-artifacts.yml
@@ -42,7 +42,6 @@ jobs:
- uses: actions/setup-python@v6
with:
python-version: |
- 3.9
3.10
3.11
3.12
@@ -64,7 +63,7 @@ jobs:
env:
# Ignore 32 bit architectures
CIBW_ARCHS: "auto64"
- CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9,<3.13"
+ CIBW_PROJECT_REQUIRES_PYTHON: ">=3.10"
CIBW_TEST_REQUIRES: "pytest==7.4.2 moto==5.0.1"
CIBW_TEST_COMMAND: "pytest {project}/tests/avro/test_decoder.py"
# Ignore tests for pypy since not all dependencies are compiled for
it
diff --git a/mkdocs/docs/contributing.md b/mkdocs/docs/contributing.md
index d4277091..2115244e 100644
--- a/mkdocs/docs/contributing.md
+++ b/mkdocs/docs/contributing.md
@@ -234,8 +234,6 @@ Deprecated in 0.1.0, will be removed in 0.2.0. The
old_property is deprecated. P
For the type annotation the types from the `Typing` package are used.
-PyIceberg offers support from Python 3.9 onwards, we can't use the [type hints
from the standard collections](https://peps.python.org/pep-0585/).
-
### Third party libraries
PyIceberg naturally integrates into the rich Python ecosystem, however it is
important to be hesitant adding third party packages. Adding a lot of packages
makes the library heavyweight, and causes incompatibilities with other projects
if they use a different version of the library. Also, big libraries such as
`s3fs`, `adlfs`, `pyarrow`, `thrift` should be optional to avoid downloading
everything, while not being sure if is actually being used.
diff --git a/poetry.lock b/poetry.lock
index 2f0bfd7c..5c4ba738 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -222,9 +222,6 @@ files = [
{file = "aioitertools-0.12.0.tar.gz", hash =
"sha256:c2a9055b4fbb7705f561b9d86053e8af5d10cc845d22c32008c43490b2d8dd6b"},
]
-[package.dependencies]
-typing_extensions = {version = ">=4.0", markers = "python_version < \"3.10\""}
-
[package.extras]
dev = ["attribution (==1.8.0)", "black (==24.8.0)", "build (>=1.2)", "coverage
(==7.6.1)", "flake8 (==7.1.1)", "flit (==3.9.0)", "mypy (==1.11.2)", "ufmt
(==2.7.1)", "usort (==1.0.8.post1)"]
docs = ["sphinx (==8.0.2)", "sphinx-mdinclude (==0.6.2)"]
@@ -289,7 +286,7 @@ description = "Timeout context manager for asyncio programs"
optional = true
python-versions = ">=3.8"
groups = ["main"]
-markers = "(extra == \"s3fs\" or extra == \"adlfs\" or extra == \"gcsfs\") and
python_version <= \"3.10\""
+markers = "(extra == \"s3fs\" or extra == \"adlfs\" or extra == \"gcsfs\") and
python_version == \"3.10\""
files = [
{file = "async_timeout-5.0.1-py3-none-any.whl", hash =
"sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"},
{file = "async_timeout-5.0.1.tar.gz", hash =
"sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"},
@@ -584,10 +581,7 @@ markers = {main = "extra == \"glue\" or extra ==
\"dynamodb\" or extra == \"rest
[package.dependencies]
jmespath = ">=0.7.1,<2.0.0"
python-dateutil = ">=2.1,<3.0.0"
-urllib3 = [
- {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >=
\"3.10\""},
- {version = ">=1.25.4,<1.27", markers = "python_version < \"3.10\""},
-]
+urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version
>= \"3.10\""}
[package.extras]
crt = ["awscrt (==0.27.6)"]
@@ -613,7 +607,6 @@ tomli = {version = ">=1.1.0", markers = "python_version <
\"3.11\""}
virtualenv = [
{version = ">=20.17", optional = true, markers = "extra == \"virtualenv\"
and python_version >= \"3.10\" and python_version < \"3.14\""},
{version = ">=20.31", optional = true, markers = "extra == \"virtualenv\"
and python_version >= \"3.14\""},
- {version = ">=20.11", optional = true, markers = "extra == \"virtualenv\"
and python_version < \"3.10\""},
]
[package.extras]
@@ -1556,7 +1549,7 @@ description = "Backport of PEP 654 (exception groups)"
optional = false
python-versions = ">=3.7"
groups = ["dev"]
-markers = "python_version <= \"3.10\""
+markers = "python_version == \"3.10\""
files = [
{file = "exceptiongroup-1.3.0-py3-none-any.whl", hash =
"sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"},
{file = "exceptiongroup-1.3.0.tar.gz", hash =
"sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"},
@@ -1658,7 +1651,6 @@ files = [
[package.dependencies]
blinker = ">=1.9.0"
click = ">=8.1.3"
-importlib-metadata = {version = ">=3.6.0", markers = "python_version <
\"3.10\""}
itsdangerous = ">=2.2.0"
jinja2 = ">=3.1.2"
markupsafe = ">=2.1.1"
@@ -2172,9 +2164,6 @@ files = [
{file = "graphql_core-3.2.6.tar.gz", hash =
"sha256:c08eec22f9e40f0bd61d805907e3b3b1b9a320bc606e23dc145eebca07c8fbab"},
]
-[package.dependencies]
-typing-extensions = {version = ">=4,<5", markers = "python_version < \"3.10\""}
-
[[package]]
name = "greenlet"
version = "3.2.4"
@@ -2463,12 +2452,12 @@ version = "8.7.0"
description = "Read metadata from Python packages"
optional = false
python-versions = ">=3.9"
-groups = ["dev", "docs"]
+groups = ["dev"]
+markers = "python_version == \"3.10\" and python_full_version < \"3.10.2\""
files = [
{file = "importlib_metadata-8.7.0-py3-none-any.whl", hash =
"sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd"},
{file = "importlib_metadata-8.7.0.tar.gz", hash =
"sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000"},
]
-markers = {dev = "python_full_version < \"3.10.2\"", docs = "python_version <
\"3.10\""}
[package.dependencies]
zipp = ">=3.20"
@@ -2778,38 +2767,6 @@ files = [
{file = "lazy_object_proxy-1.12.0.tar.gz", hash =
"sha256:1f5a462d92fd0cfb82f1fab28b51bfb209fabbe6aabf7f0d51472c0c124c0c61"},
]
-[[package]]
-name = "llvmlite"
-version = "0.43.0"
-description = "lightweight wrapper around basic LLVM functionality"
-optional = true
-python-versions = ">=3.9"
-groups = ["main"]
-markers = "python_version < \"3.10\" and extra == \"bodo\""
-files = [
- {file = "llvmlite-0.43.0-cp310-cp310-macosx_10_9_x86_64.whl", hash =
"sha256:a289af9a1687c6cf463478f0fa8e8aa3b6fb813317b0d70bf1ed0759eab6f761"},
- {file = "llvmlite-0.43.0-cp310-cp310-macosx_11_0_arm64.whl", hash =
"sha256:6d4fd101f571a31acb1559ae1af30f30b1dc4b3186669f92ad780e17c81e91bc"},
- {file =
"llvmlite-0.43.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:7d434ec7e2ce3cc8f452d1cd9a28591745de022f931d67be688a737320dfcead"},
- {file =
"llvmlite-0.43.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:6912a87782acdff6eb8bf01675ed01d60ca1f2551f8176a300a886f09e836a6a"},
- {file = "llvmlite-0.43.0-cp310-cp310-win_amd64.whl", hash =
"sha256:14f0e4bf2fd2d9a75a3534111e8ebeb08eda2f33e9bdd6dfa13282afacdde0ed"},
- {file = "llvmlite-0.43.0-cp311-cp311-macosx_10_9_x86_64.whl", hash =
"sha256:3e8d0618cb9bfe40ac38a9633f2493d4d4e9fcc2f438d39a4e854f39cc0f5f98"},
- {file = "llvmlite-0.43.0-cp311-cp311-macosx_11_0_arm64.whl", hash =
"sha256:e0a9a1a39d4bf3517f2af9d23d479b4175ead205c592ceeb8b89af48a327ea57"},
- {file =
"llvmlite-0.43.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:c1da416ab53e4f7f3bc8d4eeba36d801cc1894b9fbfbf2022b29b6bad34a7df2"},
- {file =
"llvmlite-0.43.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:977525a1e5f4059316b183fb4fd34fa858c9eade31f165427a3977c95e3ee749"},
- {file = "llvmlite-0.43.0-cp311-cp311-win_amd64.whl", hash =
"sha256:d5bd550001d26450bd90777736c69d68c487d17bf371438f975229b2b8241a91"},
- {file = "llvmlite-0.43.0-cp312-cp312-macosx_10_9_x86_64.whl", hash =
"sha256:f99b600aa7f65235a5a05d0b9a9f31150c390f31261f2a0ba678e26823ec38f7"},
- {file = "llvmlite-0.43.0-cp312-cp312-macosx_11_0_arm64.whl", hash =
"sha256:35d80d61d0cda2d767f72de99450766250560399edc309da16937b93d3b676e7"},
- {file =
"llvmlite-0.43.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:eccce86bba940bae0d8d48ed925f21dbb813519169246e2ab292b5092aba121f"},
- {file =
"llvmlite-0.43.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:df6509e1507ca0760787a199d19439cc887bfd82226f5af746d6977bd9f66844"},
- {file = "llvmlite-0.43.0-cp312-cp312-win_amd64.whl", hash =
"sha256:7a2872ee80dcf6b5dbdc838763d26554c2a18aa833d31a2635bff16aafefb9c9"},
- {file = "llvmlite-0.43.0-cp39-cp39-macosx_10_9_x86_64.whl", hash =
"sha256:9cd2a7376f7b3367019b664c21f0c61766219faa3b03731113ead75107f3b66c"},
- {file = "llvmlite-0.43.0-cp39-cp39-macosx_11_0_arm64.whl", hash =
"sha256:18e9953c748b105668487b7c81a3e97b046d8abf95c4ddc0cd3c94f4e4651ae8"},
- {file =
"llvmlite-0.43.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:74937acd22dc11b33946b67dca7680e6d103d6e90eeaaaf932603bec6fe7b03a"},
- {file =
"llvmlite-0.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:bc9efc739cc6ed760f795806f67889923f7274276f0eb45092a1473e40d9b867"},
- {file = "llvmlite-0.43.0-cp39-cp39-win_amd64.whl", hash =
"sha256:47e147cdda9037f94b399bf03bfd8a6b6b1f2f90be94a454e3386f006455a9b4"},
- {file = "llvmlite-0.43.0.tar.gz", hash =
"sha256:ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5"},
-]
-
[[package]]
name = "llvmlite"
version = "0.44.0"
@@ -2817,7 +2774,7 @@ description = "lightweight wrapper around basic LLVM
functionality"
optional = true
python-versions = ">=3.10"
groups = ["main"]
-markers = "python_version >= \"3.10\" and extra == \"bodo\""
+markers = "extra == \"bodo\""
files = [
{file = "llvmlite-0.44.0-cp310-cp310-macosx_10_14_x86_64.whl", hash =
"sha256:9fbadbfba8422123bab5535b293da1cf72f9f478a65645ecd73e781f962ca614"},
{file = "llvmlite-0.44.0-cp310-cp310-macosx_11_0_arm64.whl", hash =
"sha256:cccf8eb28f24840f2689fb1a45f9c0f7e582dd24e088dcf96e424834af11f791"},
@@ -2854,39 +2811,10 @@ files = [
{file = "markdown-3.9.tar.gz", hash =
"sha256:d2900fe1782bd33bdbbd56859defef70c2e78fc46668f8eb9df3128138f2cb6a"},
]
-[package.dependencies]
-importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""}
-
[package.extras]
docs = ["mdx_gh_links (>=0.2)", "mkdocs (>=1.6)", "mkdocs-gen-files",
"mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index",
"mkdocstrings[python]"]
testing = ["coverage", "pyyaml"]
-[[package]]
-name = "markdown-it-py"
-version = "3.0.0"
-description = "Python port of markdown-it. Markdown parsing, done right!"
-optional = false
-python-versions = ">=3.8"
-groups = ["main"]
-markers = "python_version < \"3.10\""
-files = [
- {file = "markdown-it-py-3.0.0.tar.gz", hash =
"sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"},
- {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash =
"sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"},
-]
-
-[package.dependencies]
-mdurl = ">=0.1,<1.0"
-
-[package.extras]
-benchmarking = ["psutil", "pytest", "pytest-benchmark"]
-code-style = ["pre-commit (>=3.0,<4.0)"]
-compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe
(>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"]
-linkify = ["linkify-it-py (>=1,<3)"]
-plugins = ["mdit-py-plugins"]
-profiling = ["gprof2dot"]
-rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx",
"sphinx-copybutton", "sphinx-design", "sphinx_book_theme"]
-testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"]
-
[[package]]
name = "markdown-it-py"
version = "4.0.0"
@@ -2894,7 +2822,6 @@ description = "Python port of markdown-it. Markdown
parsing, done right!"
optional = false
python-versions = ">=3.10"
groups = ["main"]
-markers = "python_version >= \"3.10\""
files = [
{file = "markdown_it_py-4.0.0-py3-none-any.whl", hash =
"sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147"},
{file = "markdown_it_py-4.0.0.tar.gz", hash =
"sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3"},
@@ -3051,7 +2978,6 @@ files = [
click = ">=7.0"
colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""}
ghp-import = ">=1.0"
-importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""}
jinja2 = ">=2.11.1"
markdown = ">=3.3.6"
markupsafe = ">=2.0.1"
@@ -3112,7 +3038,6 @@ files = [
]
[package.dependencies]
-importlib-metadata = {version = ">=4.3", markers = "python_version < \"3.10\""}
mergedeep = ">=1.3.4"
platformdirs = ">=2.2.0"
pyyaml = ">=5.1"
@@ -3202,7 +3127,6 @@ files = [
]
[package.dependencies]
-importlib-metadata = {version = ">=4.6", markers = "python_version < \"3.10\""}
Jinja2 = ">=2.11.1"
Markdown = ">=3.6"
MarkupSafe = ">=1.1"
@@ -3766,26 +3690,6 @@ files = [
fast = ["fastnumbers (>=2.0.0)"]
icu = ["PyICU (>=1.0.0)"]
-[[package]]
-name = "networkx"
-version = "3.2.1"
-description = "Python package for creating and manipulating graphs and
networks"
-optional = false
-python-versions = ">=3.9"
-groups = ["dev"]
-markers = "python_version < \"3.10\""
-files = [
- {file = "networkx-3.2.1-py3-none-any.whl", hash =
"sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2"},
- {file = "networkx-3.2.1.tar.gz", hash =
"sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6"},
-]
-
-[package.extras]
-default = ["matplotlib (>=3.5)", "numpy (>=1.22)", "pandas (>=1.4)", "scipy
(>=1.9,!=1.11.0,!=1.11.1)"]
-developer = ["changelist (==0.4)", "mypy (>=1.1)", "pre-commit (>=3.2)",
"rtoml"]
-doc = ["nb2plots (>=0.7)", "nbconvert (<7.9)", "numpydoc (>=1.6)", "pillow
(>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery
(>=0.14)", "texext (>=0.6.7)"]
-extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.11)", "sympy
(>=1.10)"]
-test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"]
-
[[package]]
name = "networkx"
version = "3.4.2"
@@ -3829,42 +3733,6 @@ extra = ["lxml (>=4.6)", "pydot (>=3.0.1)", "pygraphviz
(>=1.14)", "sympy (>=1.1
test = ["pytest (>=7.2)", "pytest-cov (>=4.0)", "pytest-xdist (>=3.0)"]
test-extras = ["pytest-mpl", "pytest-randomly"]
-[[package]]
-name = "numba"
-version = "0.60.0"
-description = "compiling Python code using LLVM"
-optional = true
-python-versions = ">=3.9"
-groups = ["main"]
-markers = "python_version < \"3.10\" and extra == \"bodo\""
-files = [
- {file = "numba-0.60.0-cp310-cp310-macosx_10_9_x86_64.whl", hash =
"sha256:5d761de835cd38fb400d2c26bb103a2726f548dc30368853121d66201672e651"},
- {file = "numba-0.60.0-cp310-cp310-macosx_11_0_arm64.whl", hash =
"sha256:159e618ef213fba758837f9837fb402bbe65326e60ba0633dbe6c7f274d42c1b"},
- {file =
"numba-0.60.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
hash =
"sha256:1527dc578b95c7c4ff248792ec33d097ba6bef9eda466c948b68dfc995c25781"},
- {file =
"numba-0.60.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash
= "sha256:fe0b28abb8d70f8160798f4de9d486143200f34458d34c4a214114e445d7124e"},
- {file = "numba-0.60.0-cp310-cp310-win_amd64.whl", hash =
"sha256:19407ced081d7e2e4b8d8c36aa57b7452e0283871c296e12d798852bc7d7f198"},
- {file = "numba-0.60.0-cp311-cp311-macosx_10_9_x86_64.whl", hash =
"sha256:a17b70fc9e380ee29c42717e8cc0bfaa5556c416d94f9aa96ba13acb41bdece8"},
- {file = "numba-0.60.0-cp311-cp311-macosx_11_0_arm64.whl", hash =
"sha256:3fb02b344a2a80efa6f677aa5c40cd5dd452e1b35f8d1c2af0dfd9ada9978e4b"},
- {file =
"numba-0.60.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
hash =
"sha256:5f4fde652ea604ea3c86508a3fb31556a6157b2c76c8b51b1d45eb40c8598703"},
- {file =
"numba-0.60.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash
= "sha256:4142d7ac0210cc86432b818338a2bc368dc773a2f5cf1e32ff7c5b378bd63ee8"},
- {file = "numba-0.60.0-cp311-cp311-win_amd64.whl", hash =
"sha256:cac02c041e9b5bc8cf8f2034ff6f0dbafccd1ae9590dc146b3a02a45e53af4e2"},
- {file = "numba-0.60.0-cp312-cp312-macosx_10_9_x86_64.whl", hash =
"sha256:d7da4098db31182fc5ffe4bc42c6f24cd7d1cb8a14b59fd755bfee32e34b8404"},
- {file = "numba-0.60.0-cp312-cp312-macosx_11_0_arm64.whl", hash =
"sha256:38d6ea4c1f56417076ecf8fc327c831ae793282e0ff51080c5094cb726507b1c"},
- {file =
"numba-0.60.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
hash =
"sha256:62908d29fb6a3229c242e981ca27e32a6e606cc253fc9e8faeb0e48760de241e"},
- {file =
"numba-0.60.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash
= "sha256:0ebaa91538e996f708f1ab30ef4d3ddc344b64b5227b67a57aa74f401bb68b9d"},
- {file = "numba-0.60.0-cp312-cp312-win_amd64.whl", hash =
"sha256:f75262e8fe7fa96db1dca93d53a194a38c46da28b112b8a4aca168f0df860347"},
- {file = "numba-0.60.0-cp39-cp39-macosx_10_9_x86_64.whl", hash =
"sha256:01ef4cd7d83abe087d644eaa3d95831b777aa21d441a23703d649e06b8e06b74"},
- {file = "numba-0.60.0-cp39-cp39-macosx_11_0_arm64.whl", hash =
"sha256:819a3dfd4630d95fd574036f99e47212a1af41cbcb019bf8afac63ff56834449"},
- {file =
"numba-0.60.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash
= "sha256:0b983bd6ad82fe868493012487f34eae8bf7dd94654951404114f23c3466d34b"},
- {file =
"numba-0.60.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash =
"sha256:c151748cd269ddeab66334bd754817ffc0cabd9433acb0f551697e5151917d25"},
- {file = "numba-0.60.0-cp39-cp39-win_amd64.whl", hash =
"sha256:3031547a015710140e8c87226b4cfe927cac199835e5bf7d4fe5cb64e814e3ab"},
- {file = "numba-0.60.0.tar.gz", hash =
"sha256:5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16"},
-]
-
-[package.dependencies]
-llvmlite = "==0.43.*"
-numpy = ">=1.22,<2.1"
-
[[package]]
name = "numba"
version = "0.61.2"
@@ -3872,7 +3740,7 @@ description = "compiling Python code using LLVM"
optional = true
python-versions = ">=3.10"
groups = ["main"]
-markers = "python_version >= \"3.10\" and extra == \"bodo\""
+markers = "extra == \"bodo\""
files = [
{file = "numba-0.61.2-cp310-cp310-macosx_10_14_x86_64.whl", hash =
"sha256:cf9f9fc00d6eca0c23fc840817ce9f439b9f03c8f03d6246c0e7f0cb15b7162a"},
{file = "numba-0.61.2-cp310-cp310-macosx_11_0_arm64.whl", hash =
"sha256:ea0247617edcb5dd61f6106a56255baab031acc4257bddaeddb3a1003b4ca3fd"},
@@ -3955,73 +3823,7 @@ files = [
{file = "numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash =
"sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385"},
{file = "numpy-2.0.2.tar.gz", hash =
"sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78"},
]
-markers = {main = "python_version < \"3.10\" and (extra == \"pandas\" or extra
== \"ray\" or extra == \"bodo\")", dev = "python_version < \"3.10\""}
-
-[[package]]
-name = "numpy"
-version = "2.2.6"
-description = "Fundamental package for array computing in Python"
-optional = false
-python-versions = ">=3.10"
-groups = ["main", "dev"]
-files = [
- {file = "numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash =
"sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb"},
- {file = "numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash =
"sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90"},
- {file = "numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash =
"sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163"},
- {file = "numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash =
"sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf"},
- {file =
"numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83"},
- {file =
"numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash
= "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915"},
- {file = "numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash =
"sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680"},
- {file = "numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash =
"sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289"},
- {file = "numpy-2.2.6-cp310-cp310-win32.whl", hash =
"sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d"},
- {file = "numpy-2.2.6-cp310-cp310-win_amd64.whl", hash =
"sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3"},
- {file = "numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash =
"sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae"},
- {file = "numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash =
"sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a"},
- {file = "numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash =
"sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42"},
- {file = "numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash =
"sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491"},
- {file =
"numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a"},
- {file =
"numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash
= "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf"},
- {file = "numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash =
"sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1"},
- {file = "numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash =
"sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab"},
- {file = "numpy-2.2.6-cp311-cp311-win32.whl", hash =
"sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47"},
- {file = "numpy-2.2.6-cp311-cp311-win_amd64.whl", hash =
"sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303"},
- {file = "numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash =
"sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff"},
- {file = "numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash =
"sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c"},
- {file = "numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash =
"sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3"},
- {file = "numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash =
"sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282"},
- {file =
"numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87"},
- {file =
"numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash
= "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249"},
- {file = "numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash =
"sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49"},
- {file = "numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash =
"sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de"},
- {file = "numpy-2.2.6-cp312-cp312-win32.whl", hash =
"sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4"},
- {file = "numpy-2.2.6-cp312-cp312-win_amd64.whl", hash =
"sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2"},
- {file = "numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash =
"sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84"},
- {file = "numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash =
"sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b"},
- {file = "numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash =
"sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d"},
- {file = "numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash =
"sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566"},
- {file =
"numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f"},
- {file =
"numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash
= "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f"},
- {file = "numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash =
"sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868"},
- {file = "numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash =
"sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d"},
- {file = "numpy-2.2.6-cp313-cp313-win32.whl", hash =
"sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd"},
- {file = "numpy-2.2.6-cp313-cp313-win_amd64.whl", hash =
"sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c"},
- {file = "numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash =
"sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6"},
- {file = "numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash =
"sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda"},
- {file = "numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash =
"sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40"},
- {file = "numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash =
"sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8"},
- {file =
"numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f"},
- {file =
"numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash
= "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa"},
- {file = "numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash =
"sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571"},
- {file = "numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash =
"sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1"},
- {file = "numpy-2.2.6-cp313-cp313t-win32.whl", hash =
"sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff"},
- {file = "numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash =
"sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06"},
- {file = "numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash =
"sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d"},
- {file = "numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash =
"sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db"},
- {file =
"numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543"},
- {file = "numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash =
"sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00"},
- {file = "numpy-2.2.6.tar.gz", hash =
"sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd"},
-]
-markers = {main = "python_version >= \"3.10\" and (extra == \"pandas\" or
extra == \"ray\" or extra == \"bodo\")", dev = "python_version >= \"3.10\""}
+markers = {main = "extra == \"pandas\" or extra == \"ray\" or extra ==
\"bodo\""}
[[package]]
name = "oauthlib"
@@ -6332,7 +6134,7 @@ description = "A lil' TOML parser"
optional = false
python-versions = ">=3.8"
groups = ["dev"]
-markers = "python_version <= \"3.10\""
+markers = "python_version == \"3.10\""
files = [
{file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash =
"sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"},
{file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash =
"sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"},
@@ -6402,7 +6204,7 @@ files = [
{file = "typing_extensions-4.15.0-py3-none-any.whl", hash =
"sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"},
{file = "typing_extensions-4.15.0.tar.gz", hash =
"sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"},
]
-markers = {docs = "python_version <= \"3.10\""}
+markers = {docs = "python_version == \"3.10\""}
[[package]]
name = "typing-inspection"
@@ -6432,24 +6234,6 @@ files = [
]
markers = {main = "extra == \"pandas\" or extra == \"ray\" or extra ==
\"bodo\""}
-[[package]]
-name = "urllib3"
-version = "1.26.20"
-description = "HTTP library with thread-safe connection pooling, file post,
and more."
-optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
-groups = ["main", "dev", "docs"]
-markers = "python_version < \"3.10\""
-files = [
- {file = "urllib3-1.26.20-py2.py3-none-any.whl", hash =
"sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e"},
- {file = "urllib3-1.26.20.tar.gz", hash =
"sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32"},
-]
-
-[package.extras]
-brotli = ["brotli (==1.0.9) ; os_name != \"nt\" and python_version < \"3\" and
platform_python_implementation == \"CPython\"", "brotli (>=1.0.9) ;
python_version >= \"3\" and platform_python_implementation == \"CPython\"",
"brotlicffi (>=0.8.0) ; (os_name != \"nt\" or python_version >= \"3\") and
platform_python_implementation != \"CPython\"", "brotlipy (>=0.6.0) ; os_name
== \"nt\" and python_version < \"3\""]
-secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress ;
python_version == \"2.7\"", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"]
-socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
-
[[package]]
name = "urllib3"
version = "2.5.0"
@@ -6457,7 +6241,6 @@ description = "HTTP library with thread-safe connection
pooling, file post, and
optional = false
python-versions = ">=3.9"
groups = ["main", "dev", "docs"]
-markers = "python_version >= \"3.10\""
files = [
{file = "urllib3-2.5.0-py3-none-any.whl", hash =
"sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"},
{file = "urllib3-2.5.0.tar.gz", hash =
"sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"},
@@ -6811,12 +6594,12 @@ version = "3.23.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
optional = false
python-versions = ">=3.9"
-groups = ["dev", "docs"]
+groups = ["dev"]
+markers = "python_version == \"3.10\" and python_full_version < \"3.10.2\""
files = [
{file = "zipp-3.23.0-py3-none-any.whl", hash =
"sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e"},
{file = "zipp-3.23.0.tar.gz", hash =
"sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166"},
]
-markers = {dev = "python_full_version < \"3.10.2\"", docs = "python_version <
\"3.10\""}
[package.extras]
check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform !=
\"cygwin\""]
@@ -6967,5 +6750,5 @@ zstandard = ["zstandard"]
[metadata]
lock-version = "2.1"
-python-versions = "^3.9.2, !=3.9.7"
-content-hash =
"82566699e4304f7db0d26a6bb13276b6996d68f46f5db72350e22fe78c1135bc"
+python-versions = ">=3.10,<4"
+content-hash =
"07a420dce6d58ab65b43cf9cdc303b1f07b49877be6df886b03154fbaf835b4f"
diff --git a/pyproject.toml b/pyproject.toml
index 8dcc56f2..5b1292b0 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -26,7 +26,6 @@ license = "Apache License 2.0"
classifiers = [
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
- "Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
@@ -50,7 +49,7 @@ include = [
]
[tool.poetry.dependencies]
-python = "^3.9.2, !=3.9.7"
+python = ">=3.10,<4"
mmh3 = ">=4.0.0,<6.0.0"
requests = ">=2.20.0,<3.0.0"
click = ">=7.1.1,<9.0.0"