GS1 EPC Tag Data Translation for Python and RAIN (UHF) RFID. Encode and decode SGTIN, SSCC, SGLN, GRAI, and all EPC schemes.
Project description
tag-data-translation
GS1 EPC Tag Data Translation for Python and RAIN (UHF) RFID. Encode and decode SGTIN, SSCC, SGLN, GRAI, and all EPC schemes defined in TDT 2.2 and TDS 2.3.
Requirements
- Python 3.9+
- .NET 8.0+ runtime (download)
Installation
pip install tag-data-translation
Usage
from tag_data_translation import TDTEngine
engine = TDTEngine()
# encode GTIN to EPC hex
binary = engine.translate(
"gtin=00037000302414;serial=10419703",
"filter=1;gs1companyprefixlength=7;tagLength=96",
"BINARY"
)
hex_value = engine.binary_to_hex(binary)
print(hex_value) # 30340242201d8840009efdf7
# decode EPC hex to all fields
binary = engine.hex_to_binary("30340242201d8840009efdf7")
result = engine.translate_details(binary, "tagLength=96", "TAG_ENCODING")
print(result.output) # urn:epc:tag:sgtin-96:1.0037000.030241.10419703
print(result.fields) # {'filter': '1', 'gs1companyprefix': '0037000', ...}
Error handling
translate() raises TranslationError on invalid input. Use try_translate() for a non-throwing alternative:
from tag_data_translation import TDTEngine, TranslationError
engine = TDTEngine()
# raises on error
try:
result = engine.translate(epc, params, "BINARY")
except TranslationError as e:
print(f"Translation failed: {e}")
# returns None on error
result = engine.try_translate(epc, params, "BINARY")
if result is not None:
print(result)
Performance
The underlying .NET engine translates a typical SGTIN-96 in ~8 us. The pythonnet bridge adds minimal overhead on top of the native .NET performance.
| Operation | .NET native |
|---|---|
| SGTIN-96 encode | 7.8 us |
| SGTIN-96 decode | 7.7 us |
| HexToBinary (96-bit) | 99 ns |
| BinaryToHex (96-bit) | 54 ns |
License
BSL 1.1 — see LICENSING.md
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tag_data_translation-3.0.4.tar.gz.
File metadata
- Download URL: tag_data_translation-3.0.4.tar.gz
- Upload date:
- Size: 654.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e506412da63fc8abefe29a768129c4fa1734f772d781f7c022bd76d329bcc70d
|
|
| MD5 |
37086c7853a6a658ef33043ea26872b5
|
|
| BLAKE2b-256 |
083eac0a31b13e026a4238b6028a042689623dd3bb467392224bd9245df076e4
|
File details
Details for the file tag_data_translation-3.0.4-py3-none-any.whl.
File metadata
- Download URL: tag_data_translation-3.0.4-py3-none-any.whl
- Upload date:
- Size: 752.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44a780d92027cd448b8ede518e847b4791ff901de9efc6dccbc1afff085d5166
|
|
| MD5 |
93e7d2b56b2544acc0966065ba5ce55b
|
|
| BLAKE2b-256 |
0897a87f3df5b462b651518aef5238d698627809f820f72a9ccd3ed31e3776c6
|