diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a0869a0..5aecadf 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -46,11 +46,10 @@ jobs: runs-on: "3.10" - name: CPython 3.11 runs-on: "3.11" - # Following are disabled because of https://github.com/ethereum/eth-tester/issues/276 - # - name: CPython 3.12 - # runs-on: "3.12" - # Waaaay to soon for 3.13 - # - name: CPython 3.13-dev + - name: CPython 3.12 + runs-on: "3.12" + # Not yet working, lets revisit later + # - name: CPython 3.13 # runs-on: "3.13-dev" steps: - uses: actions/checkout@v4 diff --git a/pyproject.toml b/pyproject.toml index ab06667..2f233ea 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,6 +29,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + # "Programming Language :: Python :: 3.13", ] keywords = [ "ethereum", @@ -48,18 +49,19 @@ Tracker = "https://github.com/BoboTiG/py-eip712-structs-ng/issues" [project.optional-dependencies] tests = [ "eth-tester==0.12.0b1", - "mypy", + "mypy==1.10.1", "py-evm==0.10.1b1", "py-solc-x==2.0.3", - "pytest", - "pytest-cov", - "requests", - "ruff", + "pytest==8.2.2", + "pytest-cov==5.0.0", + "requests==2.32.3", + "ruff==0.5.1", + "setuptools==70.2.0", "web3>=6.3.0,<7", ] dev = [ - "build", - "twine", + "build==1.2.1", + "twine==5.1.1", ] [tool.hatch.version] diff --git a/src/eip712_structs/struct.py b/src/eip712_structs/struct.py index f5fd4a6..0a76b3d 100644 --- a/src/eip712_structs/struct.py +++ b/src/eip712_structs/struct.py @@ -5,7 +5,7 @@ import operator import re from collections import OrderedDict, defaultdict -from collections.abc import Mapping +from collections.abc import MutableMapping from typing import Any, NamedTuple from eth_utils.crypto import keccak @@ -18,7 +18,7 @@ class OrderedAttributesMeta(type): """Metaclass to ensure struct attribute order is preserved.""" @classmethod - def __prepare__(cls, name: str, bases: tuple[type, ...], /, **kwargs: Any) -> Mapping[str, object]: + def __prepare__(cls, name: str, bases: tuple[type, ...], /, **kwargs: Any) -> MutableMapping[str, object]: return OrderedDict() diff --git a/src/tests/integration/contract_sources/_compile_contracts.py b/src/tests/integration/contract_sources/_compile_contracts.py index 9920aae..e8d61ac 100644 --- a/src/tests/integration/contract_sources/_compile_contracts.py +++ b/src/tests/integration/contract_sources/_compile_contracts.py @@ -2,6 +2,7 @@ Copied from web3.py/web3/_utils/contract_sources + custom changes (like optimizations to bypass contract code size over limit) """ + import argparse import contextlib import os