Read up on all the latest improvements.
- Web3.is_address now returns True for non-checksummed addresses. (#265)
- Drop python 3.7 support (#261)
- Merge updates from the project template, notably: use
pre-commit
for linting and change the name of themaster
branch tomain
(#261) - Correct booleans in
pyproject.toml
and add test for the presence of theeth_utils.__version__
attribute (#263)
- Some users were experiencing encoding issues when parsing the networks json. Use UTF-8 explicitly. (#259)
- Fix and add new test cases for invalid Network
chain_id
values. (#256)
- Add
Network
utility methods to utilize network metadata for a givenChainId
. (#253)
- Add information to docs for utilities which did not have any. (#254)
- Pull latest from template repo to fix release script, update wording in comments and docs. (#252)
- Add
build.os
config for readthedocs (#250)
- Added
humanize_wei
utility to convert common values to more readable units. (#194)
- Add currency tests with float ether inputs. (#231)
- remove unused docs deps, bump version of remaining (#239)
- merge updates from the python project template (#240)
- Allow a wider eth-hash dependency range (#225)
- Performance improvement of up to 65% on
is_0x_prefixed
(#223)
- Fix typo in documentation: hexidecimal -> hexadecimal (#222)
- Update use of
@cached_property
for debug2 logging. (#232)
- Remove support for Python 3.6, add Python 3.11, misc dev internal updates (#227)
- Upgrade eth-typing to v3.0+, Add support for python 3.9 and 3.10 Remove support for python 3.5 (#215)
- When a TypeError or ValueError is raised during :meth:`~eth_utils.applicators.apply_formatters_to_dict`, eth_utils appends some useful contextual information. It was trying to re-create the old exception, but that sometimes fails, like with a :class:`JSONDecodeError`, which expects more arguments in the constructor. So now we raise a basic TypeError or ValueError. (#204)
- Update the type signature of :meth:`~eth_utils.address.to_canonical_address`, :meth:`~eth_utils.address.to_checksum_address`, and :meth:`~eth_utils.address.to_normalized_address` to allow bytes-typed address input. (#205)
- Significant speedup of :meth:`~eth_utils.hexadecimal.is_hex` and :meth:`~eth_utils.hexadecimal.is_hexstr`. (#202)
- Significant speedup of :meth:`~eth_utils.address.is_address`. Running a test that abi-encodes an array of 10 addresses was about 67% faster. (#203)
- Upgrade eth-hash to v0.3.1, to use its exported type annotations instead of casting the results. (#208)
- Added a new type signature of apply_formatter_if to eth_utils curried module. Also added text_if_str and apply_formatters_to_dict. (#201)
- Make sure all the eth_utils.curried methods are importable, plus a fix for curried typing of hexstr_if_str. (#156)
- Pass context to new exception in
replace_exceptions
decorator. (#198) - Ensure pickling/unpickling an
ExtendedDebugLogger
always gives back anExtendedDebugLogger
. (#199)
- Add is_hexstr as preferred method of checking if a given value is a hex string. (#137)
- Improve performance of is_hex and is_hexstr by up to 40x (#185)
- Add
humanize_integer_sequence
utility. (#188) - Add
humanize_bytes
utility. (#189)
- Silence a deprecation error by importing from collections.abc, instead of collections. (#186)
- Add missing asterisk to MANIFEST.in (#182)
No significant changes.
- Add support for python3.8 (#174)
- Expose
DEBUG2
log level as top level module import (#117) - Add
get_logger
andget_extended_debug_logger
utils (#170)
- Setup towncrier to improve the quality of the release notes (#172)
Released: August 5, 2019
- Feature
- Caching for
ExtendedDebugLogger.show_debug2
property - #167
- Caching for
Released: August 5, 2019
- Feature
- Add support for Python3.7 - #165
- Bugfix
- Fix
HasLogger
compatibility with other metaclasses. - #165
- Fix
Released: July 24, 2019
- Feature
- Bugfix
- Fix typing of
clamp
numeric utility. - #164
- Fix typing of
Released: June 11, 2019
- Maintenance
- Use eth-typing types instead of eth-utils types, when available - #163
Released: May 16, 2019
- Feature
- Add logging utilities
HasLogger
,ExtendedDebugLogger
,HasExtendedDebugLogger
andsetup_DEBUG2_logging
- #158
- Add logging utilities
Released: April 30, 2019
- Bugfix
- Feature
- Add new eth_utils.clamp - #150
Released: April 17, 2019
- Bugfix
- Fix type declarations for eth_utils.functional.to_dict and eth_utils.funcional.to_ordered_dict - #151
Released: April 16, 2019
- Features
- Add new eth_utils.humanize.humanize_seconds and eth_utils.humanize.humanize_hash. - #149
- Enable PEP561 type hints
Released: Dec 18, 2018
- Bugfixes
- Fixed eth_utils.abi.collapse_if_tuple not handling fixed-size tuple arrays.
Released: Dec 6, 2018
- Features
- Support tuples in eth_utils.abi.function_abi_to_4byte_selector and a new eth_utils.abi.collapse_if_tuple - #141
- Misc
- Fix linting issues
- Misc
- Use eth-typing v2.0.0, which may be a breaking change for downstream packages
- Bugfixes
- Prevent from installing with Python 3.5.2 which has a fatal bug when
...
is used in a type. - #125
- Prevent from installing with Python 3.5.2 which has a fatal bug when
- Misc
- Start using
black
for style checking. - #129
- Start using
- Move docs to RTD/Sphinx, with doctest
- Update eth-typing dependency to 1.3.0
- Import more resources from implementation-specific "toolz" library in "toolz" wrapper module
- Update eth-typing dependency
- Add ValidationError exception
- Add abi and address type hints
- Add typehints to more modules
- Add replace_exceptions decorator to decorators.py
- Add type hints to applicators module
- Add type hints to conversions module
- Add import_string util from django
- Add conditional cytoolz or toolz install based on python implementation
- Reject str as a primitive in to_hex()
- Faster int_to_big_endian implementation
- Update apply key map to catch conflicting keys
- Add validation of 19 byte address
- Support bytearrays in conversion functions
- Apply formatters to sequence
- Add autouse fixture to print warnings
- Change hexidecimal -> hexadecimal
- Strictly accept text types for decode_hex
- Remove remaining force_* utils
- Convert formatting from force
- Backport pr45 into v0
- Write validate conversion arguments decorator
- Update hex and int conversions to work with new decorator
- Deprecate force bytes/text & formatting utils
- Swap in eth-hash for pysha3
- Convert keccak from force_bytes
- Convert address utils from force text/bytes
- Import many of the application functions from web3.py
- Add @combomethod decorator
- Add tool to generate environment info
- Add type conversion helpers
- Convert precision to localcontext
- Remove unnecessary future imports
- Drop support for py27
- Constrain dependencies to major version
- Support for python 3.6
- Minor fix for how __version__ is computed in the eth_utils module.
- Futzing with PyPi formatting of README info.
- Rename library on pypi to eth_utils
- Bugfix for to_wei to handle floating point inputs in a manner consistent with what users would expect.
- Bugfix for is_hex to prevent exceptions from being raised for non-hexadecimal inputs.
- is_hex now supports both empty string as 0x and odd length hexadecimal strings.
- Bugfix for currency conversions which retained too high a precision.
- is_address will now verify the checksum on any address which passes the is_checksum_formatted_address check.
- Added is_hex.
- Added big_endian_to_int and int_to_big_endian.
- Deprecate compose
- Bugfix for is_0x_prefixed to correctly detect uppercase X as part of the prefix.
- Added is_hex_address
- Added is_binary_address
- Added is_32byte_address
- Added is_checksum_formatted_address
- Added apply_to_return_value
- Added to_set
- Added is_list
- Added is_tuple
- Strip whitespace from event signatures in event_signature_to_log_topic
- Strip whitespace from event signatures in function_signature_to_4byte_selector
Initial release