Skip to main content

hexbytes: Python `bytes` subclass that decodes hex, with a readable console output

Project description

Join the chat at https://gitter.im/ethereum/hexbytes

Build Status

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"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hexbytes-0.1.0b0.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

hexbytes-0.1.0b0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file hexbytes-0.1.0b0.tar.gz.

File metadata

  • Download URL: hexbytes-0.1.0b0.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for hexbytes-0.1.0b0.tar.gz
Algorithm Hash digest
SHA256 08f6ace1710bc262c2bf97755b677d200b3cff51676bf225c7b8f0de7db91fbe
MD5 7a06acb14d255240c0d44fe6bfde3c63
BLAKE2b-256 8d555bfb25df1b2eae1d9cc6d0932895274260bdeea6b1ac7b5e23c71120bbcb

See more details on using hashes here.

File details

Details for the file hexbytes-0.1.0b0-py3-none-any.whl.

File metadata

File hashes

Hashes for hexbytes-0.1.0b0-py3-none-any.whl
Algorithm Hash digest
SHA256 dea11e487b72dbba5218d9aa19cb38fb7784a1c83d38113ccf6cebd063e18c69
MD5 6e0c91b42231fc640c2c025e9d833e8f
BLAKE2b-256 a421d51d371a90703c28861250664189984dbf58010c99b55b2755b317b6da1b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page