- Add support for binary field length
- Drop support for Python 3.6
- Migration from 2.x.x: - 2.x.x used len_enc set to b and bcd to represent BCD length encoding. - 3.x.x changed that where len_enc set to b represents binary length encoding. - To migrate from 2.x.x update len_enc in all specificatations from b to bcd.
- Provide friendlier error messages when failing to encode/decode field, field length, and bitmap.
- Clarify Binary-coded decimal field length configuration. Added
bcd
value tolen_enc
which is the same as the existingb
value. Both mean that the length is to be encoded as BCD.
- Added support for fields measured in nibbles (half-bytes).
- Fixed issue #4. Encode secondary bitmap in upper case.
- Include inline type information into the distribution according to PEP 561.
- Address remaining type hint issues.
- Backwards incompatible:
- :func:`iso8583.decode` is updated not to produce bitmap key
'bm'
. - :func:`iso8583.encode` is updated not to expect bitmap key
'bm'
to define fields to encode. The decision on what fields to encode is based on numeric fields in the range of'1'-'128'
present in the decoded dictionary. - :func:`iso8583.add_field` and :func:`iso8583.del_field` are removed. With the
removal of bitmap set
'bm'
default Python dictionary methods are enough. - :func:`iso8583.encode` now removes secondary bitmap key
'1'
from the decoded dictionary if no'65'-'128'
fields are present. - :func:`iso8583.pp` function signature changed. The first parameter is renamed
from
doc_dec
todoc
.
- :func:`iso8583.decode` is updated not to produce bitmap key
- Other changes:
- :func:`iso8583.pp` handles both encoded and decoded dictionary output.
- :func:`iso8583.pp` handles output folding. The defaul line width is set to 80.
Line width can be configured using new
line_width
parameter.
- Optional proprietary header can now be parsed using standard field settings
- Documentation improvements
- :func:`iso8583.decode` and :func:`iso8583.decode` now return a tuple
- :func:`iso8583.decode` returns a tuple of decoded dict instance and encoded dict instance
- :func:`iso8583.encode` returns a tuple of encoded bytes instance and encoded dict instance
- Encoded and decoded dict instance keys are now all strings
- Specification keys are now all strings
Initial release.