Skip to main content

Manage multiple versions of general-purpose binary-based codecs.

Project description

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:

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:

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

codec_versioning-0.1.0.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

codec_versioning-0.1.0-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file codec_versioning-0.1.0.tar.gz.

File metadata

  • Download URL: codec_versioning-0.1.0.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for codec_versioning-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3b1a28e9929f2e161866ef01c4d6b126c8f499960144368bd24fdcbb64903ed5
MD5 2b6b0850a76312c24a0e02b7bf28dcde
BLAKE2b-256 c4905b529fc3982d927f34b620ffe015c00d8c777f7cfe0f86dded64caa14bc1

See more details on using hashes here.

File details

Details for the file codec_versioning-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for codec_versioning-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d57b5890555b0c2bab5def8dcf1bcb281f68e8b416902d90a946ab3751272b17
MD5 4e8c85f652453a216735b18133b08837
BLAKE2b-256 f7da1f1f1641706973263919ca9da388082eb656b744569561b12ab013d0b9c6

See more details on using hashes here.

Supported by

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