From 77d93f8f48ac0708f309efd8d56445ee215d6e84 Mon Sep 17 00:00:00 2001 From: mbork-ipor Date: Sat, 19 Sep 2026 08:07:01 +0200 Subject: [PATCH] feat!: allow eth-utils 6.x and require Python >=3.10 eth-utils 6.0.0 requires at least Python 3.10, and Python 3.9 reached its EOL in October 2025 anyway. The lock file was regenerated with poetry 1.4.1 to keep the diff minimal. --- .github/workflows/ci.yml | 4 ++-- .pre-commit-config.yaml | 2 +- poetry.lock | 21 +++++++++++---------- pyproject.toml | 5 ++--- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aa24e474..c04210f0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,9 @@ jobs: strategy: matrix: # https://devguide.python.org/versions/ - # 3.9: lower bound = lowest Python non-EOL version + # 3.10: lower bound = lowest Python non-EOL version # 3.13: upper bound = latest Python stable version - python-version: ['3.9', '3.13'] + python-version: ['3.10', '3.13'] steps: - uses: actions/checkout@v4 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 527798f0..d4ab881c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,7 +10,7 @@ repos: rev: v3.19.1 hooks: - id: pyupgrade - args: [--py39-plus] + args: [--py310-plus] exclude: hyperliquid/utils/types.py$ - repo: https://github.com/PyCQA/isort rev: 6.0.0 diff --git a/poetry.lock b/poetry.lock index 53507ef3..2d569bca 100644 --- a/poetry.lock +++ b/poetry.lock @@ -950,26 +950,27 @@ test = ["pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)"] [[package]] name = "eth-utils" -version = "5.2.0" +version = "6.0.0" description = "eth-utils: Common utility functions for python code that interacts with Ethereum" category = "main" optional = false -python-versions = "<4,>=3.8" +python-versions = "<4,>=3.10" files = [ - {file = "eth_utils-5.2.0-py3-none-any.whl", hash = "sha256:4d43eeb6720e89a042ad5b28d4b2111630ae764f444b85cbafb708d7f076da10"}, - {file = "eth_utils-5.2.0.tar.gz", hash = "sha256:17e474eb654df6e18f20797b22c6caabb77415a996b3ba0f3cc8df3437463134"}, + {file = "eth_utils-6.0.0-py3-none-any.whl", hash = "sha256:63cf48ee32c45541cb5748751909a8345c470432fb6f0fed4bd7c53fd6400469"}, + {file = "eth_utils-6.0.0.tar.gz", hash = "sha256:eb54b2f82dd300d3142c49a89da195e823f5e5284d43203593f87c67bad92a96"}, ] [package.dependencies] cytoolz = {version = ">=0.10.1", markers = "implementation_name == \"cpython\""} eth-hash = ">=0.3.1" eth-typing = ">=5.0.0" +pydantic = ">=2.0.0,<3" toolz = {version = ">0.8.2", markers = "implementation_name == \"pypy\""} [package.extras] -dev = ["build (>=0.9.0)", "bump-my-version (>=0.19.0)", "eth-hash[pycryptodome]", "hypothesis (>=4.43.0)", "ipython", "mypy (==1.10.0)", "pre-commit (>=3.4.0)", "pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)", "sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx-rtd-theme (>=1.0.0)", "towncrier (>=24,<25)", "tox (>=4.0.0)", "twine", "wheel"] -docs = ["sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx-rtd-theme (>=1.0.0)", "towncrier (>=24,<25)"] -test = ["hypothesis (>=4.43.0)", "mypy (==1.10.0)", "pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)"] +dev = ["build (>=0.9.0)", "bump_my_version (>=0.19.0)", "eth-hash[pycryptodome]", "hypothesis (>=4.43.0)", "ipython", "mypy (==1.18.2)", "mypy (==1.18.2)", "pre-commit (>=3.4.0)", "pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)", "sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx_rtd_theme (>=1.0.0)", "towncrier (>=24,<25)", "tox (>=4.0.0)", "twine", "wheel (>=0.38.1)"] +docs = ["sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx_rtd_theme (>=1.0.0)", "towncrier (>=24,<25)"] +test = ["hypothesis (>=4.43.0)", "mypy (==1.18.2)", "pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)"] [[package]] name = "exceptiongroup" @@ -2755,7 +2756,7 @@ files = [ [package.dependencies] PyYAML = "*" urllib3 = [ - {version = "<2", markers = "python_version < \"3.10\" or platform_python_implementation == \"PyPy\""}, + {version = "<2", markers = "platform_python_implementation == \"PyPy\""}, {version = "*", markers = "platform_python_implementation != \"PyPy\" and python_version >= \"3.10\""}, ] wrapt = "*" @@ -2990,5 +2991,5 @@ propcache = ">=0.2.0" [metadata] lock-version = "2.0" -python-versions = "^3.9" -content-hash = "2c609b4f0c3982166fd23ca35e7e9a4ba3afcedd03f2e9599c607fe3a29ccda5" +python-versions = "^3.10" +content-hash = "ba813710fae0094f51d2763ebbed74e2071f3a0dc5ff3a7b2f10e2fc588fec59" diff --git a/pyproject.toml b/pyproject.toml index 30656a81..460ed7f9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,6 @@ classifiers = [ #! Update me "Topic :: Software Development :: Libraries :: Python Modules", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -39,8 +38,8 @@ classifiers = [ #! Update me "hyperliquid-python-sdk" = "hyperliquid.__main__:app" [tool.poetry.dependencies] -python = "^3.9" -eth-utils = ">=2.1.0,<6.0.0" +python = "^3.10" +eth-utils = ">=2.1.0,<7.0.0" eth-account = ">=0.10.0,<0.14.0" websocket-client = "^1.5.1" requests = "^2.31.0"