Hydration
This software has been designed for you, with much joy, by Michael Shustin
You can find the complete documentation here
What is Hydration?
Hydration is a library used to define python objects that can be converted to (and from) bytes.
Installation
pip install hydration
Introduction
This guide assumes you are familiar with low-level primitive data types (like signed/unsigned int, int64, etc.)
Field
Fields are primitive objects that hold data, and can be converted to (and from) bytes:
>>> from hydration import *
>>> f = UInt16(1512)
>>> bytes(f)
b'\xe8\x05'
>>> UInt16().from_bytes(b'\xe8\x05')
UInt16(1512)
Struct
A struct is a composite of fields.
To create a struct, Inherit from Struct:
from hydration import *
class MyStruct(Struct):
a = UInt8
b = UInt8(value=3) # You can set the default value
>>> st = MyStruct(a=10) # Structs can receive field values as keyword arguments
>>> print(st)
MyStruct
a: UInt8(10)
b: UInt8(3)
>>> bytes(st)
b'\n\x03'
>>> print(MyStruct.from_bytes(b'\n\x03'))
MyStruct:
a: UInt8(10)
b: UInt8(3)
Message
A message is a list-like composite of structs:
from hydration import *
class Header(Struct):
magic = UInt32(0xDEADBEEF)
class Body(Struct):
param1 = Float(2.875)
param2 = Int8(-128)
>>> msg = Header() / Body() # Create a message by using the division operator on structs
>>> print(msg)
Header:
magic: UInt32(3735928559)
Body:
param1: Float(2.875)
param2: Int8(-128)
>>> bytes(msg)
b'\xef\xbe\xad\xde\x00\x008@\x80'
Advanced features
For more advanced usage, be sure to check the documentation.
Support
Want to report a bug? Request a feature? Please do so here
Maintainers
- Michael Shustin (Author)
- Aviv Atedgi
Metadata
Release files for hydration 4.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hydration-4.0.0.tar.gz | 13.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hydration-4.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.3 kB
Release files / hydration-4.0.0.tar.gz
| Download URL | hydration-4.0.0.tar.gz |
|---|---|
| Size | 13.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5873af8d2854f94f4837ae9e0ba2c541ff72c6ec39bc725b5935e2c2ccaa88a5
|
|
BLAKE2b-256 checksum How to use checksums |
608eb60d41a0c3cd7bffe25f4991e2a2b7f15830f957ee580f9ca69d221cd3e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.7
|
Release files / hydration-4.0.0-py3-none-any.whl
| Download URL | hydration-4.0.0-py3-none-any.whl |
|---|---|
| Size | 27.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1c153b9e0864303359a32d407cb43b36f603dd378215b2da1230eb5c43af2551
|
|
BLAKE2b-256 checksum How to use checksums |
71de1202c689ed1e1e1e53a91e82a03b6c1bb5a7f87663ec36d2882acefb754c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.7
|