NIST-ITL Parser Library¶
Release v0.2.
Getting Started¶
To generate a NIST-ITL binary message:
msg = nistitl.Message()
msg.TOT = 'MY_TOT'
r2 = nistitl.AsciiRecord(2)
r2 += nistitl.Field(2,3,alias='TEST')
msg += r2
buffer = msg.NIST
To parse a NIST-ITL binary message:
msg = nistitl.Message()
msg.parse(buffer)
print("The TOT is ",msg.TOT)
for record in msg.iter(2):
print("Field 2.003 is ",record._3)
Full Example¶
Build a NIST¶
msg = nistitl.Message()
msg.TOT = 'MY_TOT'
msg[0].TCN = 'TCN'
# --- Add a type 2 record
r2 = nistitl.AsciiRecord(2)
msg += r2
r2.IDC = 1
# Add field 2.003, long notation used to specify an alias
r2 += nistitl.Field(2,3,alias='TEST')
# Add field 2.004, with 2 subfields) using the short notation
r2._4 = ('SF1', 'SF2')
# --- Add a type 4 record
r4 = nistitl.BinaryRecord(4)
msg += r4
r4.IDC = 2
# Set all fields in one step, image and headers
r4.pack("!HH", 500, 500, b'image')
# --- Add a type 10 record
r10 = nistitl.AsciiRecord(10)
msg += r10
r10.IDC = 3
# Used pre-defined alias
r10.SRC = 'my src'
r10.DATA = b'image'
# Generate the NIST buffer
buffer = msg.NIST
Parse a NIST¶
msg = nistitl.Message()
msg.parse(buffer)
# --- Access type 2 record
r2 = msg[(2, 1)]
# Read field 2.003
v = r2._3
# --- Loop on all records of type 4
for r4 in msg.iter(4):
# Get all fields
width, height, data = r4.unpack("!HH")
# --- Loop on all records of type 10
for r10 in msg.iter(10):
# Used pre-defined alias
src = r10.SRC
image = r10.DATA