• Support specifying rcn_region as a string, e.g. “no”, instead of RcnRegion.NORWAY. The type annotations still expect an RcnRegion instance, and this is the recommended way to use the API. By supporting strings instead of RcnRegion instances, the API is a bit easier to use interactively in a REPL.

v0.6.2 (2021-01-19)

  • Add py.typed marker file, as specified in PEP561, as Biip is fully typed.

v0.6.1 (2020-12-07)

  • Fix documentation build.

  • Fix __all__ export of biip.DEFAULT_SEPARATOR_CHARS.

v0.6.0 (2020-12-06)

  • Add Python 3.6 support, using the dataclasses backport for Python 3.6.

  • Add Python 3.9 to the test matrix.

v0.5.2 (2020-09-04)

  • Bugfix: Add zero in front of GTIN-12 before extracting GS1 Prefix. GTIN-12s start with U.P.C. Company Prefixes, which have to be padded with a zero in front to convert them to valid GS1 Company Prefixes.

  • Change the error message in the top level parser’s ParseError to include the name of data type we failed to parse.

v0.5.1 (2020-09-03)

v0.5.0 (2020-09-03)

  • Breaking change: Change argument separator_char to separator_chars in plural, accepting an iterable of multiple characters.

v0.4.0 (2020-08-31)


  • Breaking change: Change return value of parse() from Union[Gtin, GS1Message] to ParseResult.

  • If a Symbology Identifier is present, select parser based on it.

  • Improved parsing error messages.


  • Add Sscc class to parse, validate, and format Serial Shipping Container Codes (SSCC).


  • Add support for parsing and stripping Symbology Identifiers.

v0.3.1 (2020-08-21)


  • Strip surrounding whitespace before selecting parser.

v0.3.0 (2020-08-21)


  • Add filter() to find all parsed Element Strings that match the criteria.

  • Add get() to find first parsed Element String that matches the criteria.

  • Add decimal field which is set for AIs with weight, volume, dimensions, dicount percentages, and amounts payable.

  • Add money field which is set for AIs with both amounts payable and currency. This field is only set if the optional dependency py-moneyed is installed.

  • Strip surrounding whitespace before parsing.


  • Detect Restricted Circulation Numbers (RCN) and return a subclass of Gtin, Rcn, with additional fields and helpers for working with RCNs.

  • Classify an RCN as being restricted to either a geographical region or to a company.

  • Support interpreting RCNs according to varying rules depending on the geographical region specified by the user.

  • Support for zeroing out the variable measure part, to help with looking up trade items in a database or similar.

  • Add RCN rules for the Baltics, Great Britain, Norway, and Sweden.

  • Strip surrounding whitespace before parsing.

  • Bugfix: Keep all leading zeros in GTIN-8.

  • Bugfix: Convert GTIN-8 to GTIN-12 before extracting GS1 Prefix.

v0.2.1 (2020-08-19)


  • Raise ParseError if there is less than 8 or more than 14 significant digits in the barcode.

v0.2.0 (2020-08-19)


  • parse() can parse GTIN and GS1-128 data.



  • Support for validating, parsing, and converting between GTIN-8, GTIN-12, GTIN-13, and GTIN-14.

v0.1.0 (2020-05-20)

Initial release to reserve the name on PyPI.