eth-keys
Advanced tools
| from pathlib import ( | ||
| Path, | ||
| ) | ||
| import subprocess | ||
| from tempfile import ( | ||
| TemporaryDirectory, | ||
| ) | ||
| import venv | ||
| def create_venv(parent_path: Path) -> Path: | ||
| venv_path = parent_path / "package-smoke-test" | ||
| venv.create(venv_path, with_pip=True) | ||
| subprocess.run( | ||
| [venv_path / "bin" / "pip", "install", "-U", "pip", "setuptools"], check=True | ||
| ) | ||
| return venv_path | ||
| def find_wheel(project_path: Path) -> Path: | ||
| wheels = list(project_path.glob("dist/*.whl")) | ||
| if len(wheels) != 1: | ||
| raise Exception( | ||
| f"Expected one wheel. Instead found: {wheels} " | ||
| f"in project {project_path.absolute()}" | ||
| ) | ||
| return wheels[0] | ||
| def install_wheel(venv_path: Path, wheel_path: Path) -> None: | ||
| subprocess.run( | ||
| [venv_path / "bin" / "pip", "install", f"{wheel_path}"], | ||
| check=True, | ||
| ) | ||
| def test_install_local_wheel() -> None: | ||
| with TemporaryDirectory() as tmpdir: | ||
| venv_path = create_venv(Path(tmpdir)) | ||
| wheel_path = find_wheel(Path(".")) | ||
| install_wheel(venv_path, wheel_path) | ||
| print("Installed", wheel_path.absolute(), "to", venv_path) | ||
| print(f"Activate with `source {venv_path}/bin/activate`") | ||
| input("Press enter when the test has completed. The directory will be deleted.") | ||
| if __name__ == "__main__": | ||
| test_install_local_wheel() |
@@ -1,4 +0,4 @@ | ||
| Metadata-Version: 2.1 | ||
| Metadata-Version: 2.2 | ||
| Name: eth-keys | ||
| Version: 0.6.0 | ||
| Version: 0.6.1 | ||
| Summary: eth-keys: Common API for Ethereum key operations | ||
@@ -20,2 +20,3 @@ Home-page: https://github.com/ethereum/eth-keys | ||
| Classifier: Programming Language :: Python :: 3.12 | ||
| Classifier: Programming Language :: Python :: 3.13 | ||
| Requires-Python: >=3.8, <4 | ||
@@ -31,4 +32,5 @@ Description-Content-Type: text/markdown | ||
| Requires-Dist: build>=0.9.0; extra == "dev" | ||
| Requires-Dist: bumpversion>=0.5.3; extra == "dev" | ||
| Requires-Dist: bump_my_version>=0.19.0; extra == "dev" | ||
| Requires-Dist: ipython; extra == "dev" | ||
| Requires-Dist: mypy==1.10.0; extra == "dev" | ||
| Requires-Dist: pre-commit>=3.4.0; extra == "dev" | ||
@@ -38,3 +40,3 @@ Requires-Dist: tox>=4.0.0; extra == "dev" | ||
| Requires-Dist: wheel; extra == "dev" | ||
| Requires-Dist: towncrier<22,>=21; extra == "dev" | ||
| Requires-Dist: towncrier<25,>=24; extra == "dev" | ||
| Requires-Dist: pytest>=7.0.0; extra == "dev" | ||
@@ -47,3 +49,3 @@ Requires-Dist: asn1tools>=0.146.2; extra == "dev" | ||
| Provides-Extra: docs | ||
| Requires-Dist: towncrier<22,>=21; extra == "docs" | ||
| Requires-Dist: towncrier<25,>=24; extra == "docs" | ||
| Provides-Extra: test | ||
@@ -56,2 +58,14 @@ Requires-Dist: pytest>=7.0.0; extra == "test" | ||
| Requires-Dist: eth-hash[pysha3]; extra == "test" | ||
| Dynamic: author | ||
| Dynamic: author-email | ||
| Dynamic: classifier | ||
| Dynamic: description | ||
| Dynamic: description-content-type | ||
| Dynamic: home-page | ||
| Dynamic: keywords | ||
| Dynamic: license | ||
| Dynamic: provides-extra | ||
| Dynamic: requires-dist | ||
| Dynamic: requires-python | ||
| Dynamic: summary | ||
@@ -71,3 +85,3 @@ # eth-keys | ||
| ## Quickstart | ||
| ## Installation | ||
@@ -74,0 +88,0 @@ ```sh |
@@ -10,4 +10,5 @@ eth-utils>=2 | ||
| build>=0.9.0 | ||
| bumpversion>=0.5.3 | ||
| bump_my_version>=0.19.0 | ||
| ipython | ||
| mypy==1.10.0 | ||
| pre-commit>=3.4.0 | ||
@@ -17,3 +18,3 @@ tox>=4.0.0 | ||
| wheel | ||
| towncrier<22,>=21 | ||
| towncrier<25,>=24 | ||
| pytest>=7.0.0 | ||
@@ -27,3 +28,3 @@ asn1tools>=0.146.2 | ||
| [docs] | ||
| towncrier<22,>=21 | ||
| towncrier<25,>=24 | ||
@@ -30,0 +31,0 @@ [test] |
@@ -34,2 +34,3 @@ LICENSE | ||
| eth_keys/utils/padding.py | ||
| scripts/release/test_package.py | ||
| tests/conftest.py | ||
@@ -36,0 +37,0 @@ tests/backends/conftest.py |
+1
-1
| The MIT License (MIT) | ||
| Copyright (c) 2017-2023 The Ethereum Foundation | ||
| Copyright (c) 2017-2025 The Ethereum Foundation | ||
@@ -5,0 +5,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy |
+1
-0
| include LICENSE | ||
| include README.md | ||
| recursive-include scripts * | ||
| recursive-include tests * | ||
@@ -5,0 +6,0 @@ |
+20
-6
@@ -1,4 +0,4 @@ | ||
| Metadata-Version: 2.1 | ||
| Metadata-Version: 2.2 | ||
| Name: eth-keys | ||
| Version: 0.6.0 | ||
| Version: 0.6.1 | ||
| Summary: eth-keys: Common API for Ethereum key operations | ||
@@ -20,2 +20,3 @@ Home-page: https://github.com/ethereum/eth-keys | ||
| Classifier: Programming Language :: Python :: 3.12 | ||
| Classifier: Programming Language :: Python :: 3.13 | ||
| Requires-Python: >=3.8, <4 | ||
@@ -31,4 +32,5 @@ Description-Content-Type: text/markdown | ||
| Requires-Dist: build>=0.9.0; extra == "dev" | ||
| Requires-Dist: bumpversion>=0.5.3; extra == "dev" | ||
| Requires-Dist: bump_my_version>=0.19.0; extra == "dev" | ||
| Requires-Dist: ipython; extra == "dev" | ||
| Requires-Dist: mypy==1.10.0; extra == "dev" | ||
| Requires-Dist: pre-commit>=3.4.0; extra == "dev" | ||
@@ -38,3 +40,3 @@ Requires-Dist: tox>=4.0.0; extra == "dev" | ||
| Requires-Dist: wheel; extra == "dev" | ||
| Requires-Dist: towncrier<22,>=21; extra == "dev" | ||
| Requires-Dist: towncrier<25,>=24; extra == "dev" | ||
| Requires-Dist: pytest>=7.0.0; extra == "dev" | ||
@@ -47,3 +49,3 @@ Requires-Dist: asn1tools>=0.146.2; extra == "dev" | ||
| Provides-Extra: docs | ||
| Requires-Dist: towncrier<22,>=21; extra == "docs" | ||
| Requires-Dist: towncrier<25,>=24; extra == "docs" | ||
| Provides-Extra: test | ||
@@ -56,2 +58,14 @@ Requires-Dist: pytest>=7.0.0; extra == "test" | ||
| Requires-Dist: eth-hash[pysha3]; extra == "test" | ||
| Dynamic: author | ||
| Dynamic: author-email | ||
| Dynamic: classifier | ||
| Dynamic: description | ||
| Dynamic: description-content-type | ||
| Dynamic: home-page | ||
| Dynamic: keywords | ||
| Dynamic: license | ||
| Dynamic: provides-extra | ||
| Dynamic: requires-dist | ||
| Dynamic: requires-python | ||
| Dynamic: summary | ||
@@ -71,3 +85,3 @@ # eth-keys | ||
| ## Quickstart | ||
| ## Installation | ||
@@ -74,0 +88,0 @@ ```sh |
+44
-0
@@ -10,2 +10,3 @@ [tool.autoflake] | ||
| force_sort_within_sections = true | ||
| force_to_top = "pytest" | ||
| honor_noqa = true | ||
@@ -126,1 +127,44 @@ known_first_party = "eth_keys" | ||
| showcontent = true | ||
| [tool.bumpversion] | ||
| current_version = "0.6.1" | ||
| parse = """ | ||
| (?P<major>\\d+) | ||
| \\.(?P<minor>\\d+) | ||
| \\.(?P<patch>\\d+) | ||
| (- | ||
| (?P<stage>[^.]*) | ||
| \\.(?P<devnum>\\d+) | ||
| )? | ||
| """ | ||
| serialize = [ | ||
| "{major}.{minor}.{patch}-{stage}.{devnum}", | ||
| "{major}.{minor}.{patch}", | ||
| ] | ||
| search = "{current_version}" | ||
| replace = "{new_version}" | ||
| regex = false | ||
| ignore_missing_version = false | ||
| tag = true | ||
| sign_tags = true | ||
| tag_name = "v{new_version}" | ||
| tag_message = "Bump version: {current_version} → {new_version}" | ||
| allow_dirty = false | ||
| commit = true | ||
| message = "Bump version: {current_version} → {new_version}" | ||
| [tool.bumpversion.parts.stage] | ||
| optional_value = "stable" | ||
| first_value = "stable" | ||
| values = [ | ||
| "alpha", | ||
| "beta", | ||
| "stable", | ||
| ] | ||
| [tool.bumpversion.part.devnum] | ||
| [[tool.bumpversion.files]] | ||
| filename = "setup.py" | ||
| search = "version=\"{current_version}\"" | ||
| replace = "version=\"{new_version}\"" |
+1
-1
@@ -14,3 +14,3 @@ # eth-keys | ||
| ## Quickstart | ||
| ## Installation | ||
@@ -17,0 +17,0 @@ ```sh |
+6
-4
@@ -13,4 +13,5 @@ #!/usr/bin/env python | ||
| "build>=0.9.0", | ||
| "bumpversion>=0.5.3", | ||
| "bump_my_version>=0.19.0", | ||
| "ipython", | ||
| "mypy==1.10.0", | ||
| "pre-commit>=3.4.0", | ||
@@ -22,3 +23,3 @@ "tox>=4.0.0", | ||
| "docs": [ | ||
| "towncrier>=21,<22", | ||
| "towncrier>=24,<25", | ||
| ], | ||
@@ -50,3 +51,3 @@ "test": [ | ||
| # *IMPORTANT*: Don't manually change the version here. Use `make bump`, as described in readme | ||
| version="0.6.0", | ||
| version="0.6.1", | ||
| description="""eth-keys: Common API for Ethereum key operations""", | ||
@@ -69,3 +70,3 @@ long_description=long_description, | ||
| keywords="ethereum", | ||
| packages=find_packages(exclude=["tests", "tests.*"]), | ||
| packages=find_packages(exclude=["scripts", "scripts.*", "tests", "tests.*"]), | ||
| package_data={"eth_keys": ["py.typed"]}, | ||
@@ -83,3 +84,4 @@ classifiers=[ | ||
| "Programming Language :: Python :: 3.12", | ||
| "Programming Language :: Python :: 3.13", | ||
| ], | ||
| ) |
@@ -0,3 +1,3 @@ | ||
| import pytest | ||
| import os | ||
| import pytest | ||
@@ -4,0 +4,0 @@ from eth_utils import ( |
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
119517
2.7%47
2.17%2011
2.03%