This release is a pre-release and may not be stable for production use.
Python bytes subclass that decodes hex, with a readable console output
Python 3.5+ support
Read more in the documentation on ReadTheDocs. View the change log on Github.
Quickstart
pip install hexbytes
# convert from bytes to a prettier representation at the console
>>> HexBytes(b"\x03\x08wf\xbfh\xe7\x86q\xd1\xeaCj\xe0\x87\xdat\xa1'a\xda\xc0 \x01\x1a\x9e\xdd\xc4\x90\x0b\xf1;")
HexBytes('0x03087766bf68e78671d1ea436ae087da74a12761dac020011a9eddc4900bf13b')
# HexBytes accepts the hex string representation as well, ignoring case and 0x prefixes
>>> hb = HexBytes('03087766BF68E78671D1EA436AE087DA74A12761DAC020011A9EDDC4900BF13B')
HexBytes('0x03087766bf68e78671d1ea436ae087da74a12761dac020011a9eddc4900bf13b')
# get the first byte:
>>> hb[0]
3
# show how many bytes are in the value
>>> len(hb)
32
# cast back to the basic `bytes` type
>>> bytes(hb)
b"\x03\x08wf\xbfh\xe7\x86q\xd1\xeaCj\xe0\x87\xdat\xa1'a\xda\xc0 \x01\x1a\x9e\xdd\xc4\x90\x0b\xf1;"
Developer setup
If you would like to hack on hexbytes, please check out the Ethereum Development Tactical Manual for information on how we do:
Testing
Pull Requests
Code Style
Documentation
Development Environment Setup
You can set up your dev environment with:
git clone git@github.com:ethereum/hexbytes.git
cd hexbytes
virtualenv -p python3 venv
. venv/bin/activate
pip install -e .[dev]
Testing Setup
During development, you might like to have tests run on every file save.
Show flake8 errors on file change:
# Test flake8
when-changed -v -s -r -1 hexbytes/ tests/ -c "clear; flake8 hexbytes tests && echo 'flake8 success' || echo 'error'"
Run multi-process tests in one command, but without color:
# in the project root:
pytest --numprocesses=4 --looponfail --maxfail=1
# the same thing, succinctly:
pytest -n 4 -f --maxfail=1
Run in one thread, with color and desktop notifications:
cd venv
ptw --onfail "notify-send -t 5000 'Test failure ⚠⚠⚠⚠⚠' 'python 3 test on hexbytes failed'" ../tests ../hexbytes
Release setup
For Debian-like systems:
apt install pandoc
To release a new version:
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.
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"
Metadata
Release files for hexbytes 0.1.0a2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hexbytes-0.1.0a2.tar.gz | 4.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hexbytes-0.1.0a2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.6 kB
Release files / hexbytes-0.1.0a2.tar.gz
| Download URL | hexbytes-0.1.0a2.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
52d16aed1f765d399a1d1bf44e3db1af70723851038ed8c471279a553c6c7f6f
|
|
BLAKE2b-256 checksum How to use checksums |
eb842c04a629c21963e525a9aeb5bcf06ea86fac48795458e5fc1d6254870986
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / hexbytes-0.1.0a2-py3-none-any.whl
| Download URL | hexbytes-0.1.0a2-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
95ef9679ca95b8965168617a2594158b71fa1a1fcae5f646ff3597e36280daaf
|
|
BLAKE2b-256 checksum How to use checksums |
333d50a92b3ae206ddf18b5457393acb8164bb669cafd3bc68a921e44cad591c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |