Metadata-Version: 2.4 Name: eth-utils Version: 5.3.1 Summary: eth-utils: Common utility functions for python code that interacts with Ethereum Home-page: https://github.com/ethereum/eth-utils Author: The Ethereum Foundation Author-email: snakecharmers@ethereum.org License: MIT Keywords: ethereum Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Natural Language :: English Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: 3.13 Requires-Python: >=3.8, <4 Description-Content-Type: text/markdown License-File: LICENSE Requires-Dist: eth-hash>=0.3.1 Requires-Dist: eth-typing>=5.0.0 Requires-Dist: toolz>0.8.2; implementation_name == "pypy" Requires-Dist: cytoolz>=0.10.1; implementation_name == "cpython" Requires-Dist: pydantic<3,>=2.0.0 Provides-Extra: dev Requires-Dist: build>=0.9.0; extra == "dev" Requires-Dist: bump_my_version>=0.19.0; extra == "dev" Requires-Dist: eth-hash[pycryptodome]; extra == "dev" Requires-Dist: ipython; extra == "dev" Requires-Dist: mypy==1.10.0; extra == "dev" Requires-Dist: pre-commit>=3.4.0; extra == "dev" Requires-Dist: tox>=4.0.0; extra == "dev" Requires-Dist: twine; extra == "dev" Requires-Dist: wheel; extra == "dev" Requires-Dist: sphinx>=6.0.0; extra == "dev" Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "dev" Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "dev" Requires-Dist: towncrier<25,>=24; extra == "dev" Requires-Dist: hypothesis>=4.43.0; extra == "dev" Requires-Dist: mypy==1.10.0; extra == "dev" Requires-Dist: pytest>=7.0.0; extra == "dev" Requires-Dist: pytest-xdist>=2.4.0; extra == "dev" Provides-Extra: docs Requires-Dist: sphinx>=6.0.0; extra == "docs" Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs" Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "docs" Requires-Dist: towncrier<25,>=24; extra == "docs" Provides-Extra: test Requires-Dist: hypothesis>=4.43.0; extra == "test" Requires-Dist: mypy==1.10.0; extra == "test" Requires-Dist: pytest>=7.0.0; extra == "test" Requires-Dist: pytest-xdist>=2.4.0; extra == "test" Dynamic: author Dynamic: author-email Dynamic: classifier Dynamic: description Dynamic: description-content-type Dynamic: home-page Dynamic: keywords Dynamic: license Dynamic: license-file Dynamic: provides-extra Dynamic: requires-dist Dynamic: requires-python Dynamic: summary # Ethereum Utilities [![Join the conversation on Discord](https://img.shields.io/discord/809793915578089484?color=blue&label=chat&logo=discord&logoColor=white)](https://discord.gg/GHryRvPB84) [![Build Status](https://circleci.com/gh/ethereum/eth-utils.svg?style=shield)](https://circleci.com/gh/ethereum/eth-utils) [![PyPI version](https://badge.fury.io/py/eth-utils.svg)](https://badge.fury.io/py/eth-utils) [![Python versions](https://img.shields.io/pypi/pyversions/eth-utils.svg)](https://pypi.python.org/pypi/eth-utils) [![Docs build](https://readthedocs.org/projects/eth-utils/badge/?version=latest)](https://eth-utils.readthedocs.io/en/latest/?badge=latest) Common utility functions for python code that interacts with Ethereum Read the [documentation](https://eth-utils.readthedocs.io/). View the [change log](https://eth-utils.readthedocs.io/en/latest/release_notes.html). ## Installation ```sh python -m pip install eth-utils ``` ## Developer Setup If you would like to hack on eth-utils, please check out the [Snake Charmers Tactical Manual](https://github.com/ethereum/snake-charmers-tactical-manual) for information on how we do: - Testing - Pull Requests - Documentation We use [pre-commit](https://pre-commit.com/) to maintain consistent code style. Once installed, it will run automatically with every commit. You can also run it manually with `make lint`. If you need to make a commit that skips the `pre-commit` checks, you can do so with `git commit --no-verify`. ### Development Environment Setup You can set up your dev environment with: ```sh git clone git@github.com:ethereum/eth-utils.git cd eth-utils virtualenv -p python3 venv . venv/bin/activate python -m pip install -e ".[dev]" pre-commit install ``` ### Update Networks The list of networks resides in the JSON file under eth_utils/\_\_json/eth_networks.json. This file is used to initialize Networks, which can be used to obtain network information with a chain ID. Run the script to update the JSON file with the response from the remote list. ```sh python update_networks.py ``` If there are new networks they will appear in the JSON file. After checking the updates, open a PR to make them available in a new release. ### Release setup To release a new version: ```sh make release bump=$$VERSION_PART_TO_BUMP$$ ``` #### How to bumpversion The version format for this repo is `{major}.{minor}.{patch}` for stable, and `{major}.{minor}.{patch}-{stage}.{devnum}` for unstable (`stage` can be alpha or beta). To issue the next version in line, specify which part to bump, like `make release bump=minor` or `make release bump=devnum`. This is typically done from the main branch, except when releasing a beta (in which case the beta is released from main, and the previous stable branch is released from said branch). If you are in a beta version, `make release bump=stage` will switch to a stable. To issue an unstable version when the current version is stable, specify the new version explicitly, like `make release bump="--new-version 4.0.0-alpha.1 devnum"`