stdnum.gs1_128¶
GS1-128 (Standard to encode product information in Code 128 barcodes).
The GS1-128 (also called EAN-128, UCC/EAN-128 or UCC-128) is an international standard for embedding data such as best before dates, weights, etc. with Application Identifiers (AI).
The GS1-128 standard is used as a product identification code on bar codes. It embeds data with Application Identifiers (AI) that defines the kind of data, the type and length. The standard is also known as UCC/EAN-128, UCC-128 and EAN-128.
GS1-128 is a subset of Code 128 symbology.
More information:
https://www.gs1.org/standards/barcodes/application-identifiers
https://www.gs1.org/docs/barcodes/GS1_General_Specifications.pdf
>>> compact('(01)38425876095074(17)181119(37)1 ')
'013842587609507417181119371'
>>> encode({'01': '38425876095074'})
'0138425876095074'
>>> info('0138425876095074')
{'01': '38425876095074'}
>>> validate('(17)181119(01)38425876095074(37)1')
'013842587609507417181119371'
- stdnum.gs1_128.compact(number)¶
Convert the GS1-128 to the minimal representation.
This strips the number of any valid separators and removes surrounding whitespace. For a more consistent compact representation use
validate()
.
- stdnum.gs1_128.encode(data, separator='', parentheses=False)¶
Generate a GS1-128 for the application identifiers supplied.
The provided dictionary is expected to map application identifiers to values. The supported value types and formats depend on the application identifier.
If a separator is provided it will be used as FNC1 representation, otherwise variable-sized values will be expanded to their maximum size with appropriate padding.
If parentheses is set the application identifiers will be surrounded by parentheses for readability.
- stdnum.gs1_128.info(number, separator='')¶
Return a dictionary containing the information from the GS1-128 code.
The returned dictionary maps application identifiers to values with the appropriate type (str, int, Decimal, datetime.date or datetime.datetime).
If a separator is provided it will be used as FNC1 to determine the end of variable-sized values.
- stdnum.gs1_128.is_valid(number, separator='')¶
Check if the number provided is a valid GS1-128.
- stdnum.gs1_128.validate(number, separator='')¶
Check if the number provided is a valid GS1-128.
This checks formatting of the number and values and returns a stable representation.
If a separator is provided it will be used as FNC1 for both parsing the provided number and for encoding the returned number.