Codec Versioning
A python module to manage alternative versions of general-purpose binary codecs.
This python library makes it easy to manage multiple alternative versions of codecs (encoding and decoding functions). This is primarily intended for situations where codecs may be updated in the future and old codecs need to remain supported.
Use Cases
- encoded format is binary (bytes/bytearray)
- old codecs need to remain supported as new codecs are developed
Features
- manage multiple versions of codecs (encoding and decoding functions)
- define codec functions either in classes or modules as you prefer
- each codec is identified by an integer version
- when encoding, used codec's version is automatically encoded
- when decoding, the correct codec version is automatically determined
- built-in type-checking of encoded/decoded objects
Quickstart
pip install codec_versioning
See the example at ./examples/example1/example_encoding.py, and its test at ./tests/test_example.py.
Documentation
See the example at ./examples/example1/example_encoding.py, and its test at ./tests/test_example.py.
Also, this library's source code essentially comprises one small file, which should be fairly easy to undrstand:
./src/codec_versioning/codec_versioning.py
DevOps
To get started using this repository's code, checkout the commands built into its Makefile by running:
make help
Contributing
Get Involved
- GitHub Discussions: if you want to share ideas
- GitHub Issues: if you find bugs, other issues, or would like to submit feature requests
- GitHub Merge Requests: if you think you know what you're doing, you're very welcome!
Donations
To support me in my work on this and other projects, you can make donations with the following currencies:
- Bitcoin:
BC1Q45QEE6YTNGRC5TSZ42ZL3MWV8798ZEF70H2DG0 - Ethereum:
0xA32C3bBC2106C986317f202B3aa8eBc3063323D4 - Fiat (via Credit or Debit Card, Apple Pay, Google Pay, Revolut Pay)
Donations help me:
- dedicate more time to developing and maintaining open-source projects
- cover costs for IT infrastructure
- finance projects requiring additional hardware & compute
About the Developer
This project is developed by a human one-man team, publishing under the name Emendir.
I build open technologies trying to improve our world;
learning, working and sharing under the principle:
Freely I have received, freely I give.
Feel welcome to join in with code contributions, discussions, ideas and more!
Open-Source in the Public Domain
I dedicate this project to the public domain. It is open source and free to use, share, modify, and build upon without restrictions or conditions.
I make no patent or trademark claims over this project.
Formally, you may use this project under either the:
- MIT No Attribution (MIT-0) or
- Creative Commons Zero (CC0) licence at your choice.
Metadata
Release files for codec-versioning 0.1.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 | Provenance | Actions |
|---|---|---|---|---|
| codec_versioning-0.1.0.tar.gz | 7.9 kB | Without provenance | Details for codec_versioning-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| codec_versioning-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for codec_versioning-0.1.0-py3-none-any.whl |
Total release size: 16.2 kB
Release files / codec_versioning-0.1.0.tar.gz
| Download URL | codec_versioning-0.1.0.tar.gz |
|---|---|
| Size | 7.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3b1a28e9929f2e161866ef01c4d6b126c8f499960144368bd24fdcbb64903ed5
|
|
BLAKE2b-256 checksum How to use checksums |
c4905b529fc3982d927f34b620ffe015c00d8c777f7cfe0f86dded64caa14bc1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.3
|
Release files / codec_versioning-0.1.0-py3-none-any.whl
| Download URL | codec_versioning-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d57b5890555b0c2bab5def8dcf1bcb281f68e8b416902d90a946ab3751272b17
|
|
BLAKE2b-256 checksum How to use checksums |
f7da1f1f1641706973263919ca9da388082eb656b744569561b12ab013d0b9c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.3
|
Security for codec-versioning 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.