DEV IN PROGRESS

Module pychrysalide.plugins.kaitai.records

Documentation

This module is providing objects used to link structure definitions with their data.

Classes

Class RecordEmpty

The RecordEmpty object reflects absolutely no match and should only get in some rare cases.

Instances can be created using following constructor:

    RecordEmpty(parser, content, pos)

Where parser is the creator of the record, as a KaitaiParser instance, content is a BinContent instance providing the processed data and pos defines the current reading location, as a vmpa value.

Hierarchy

builtins.object
 ╰── gi._gi.GObject
      ╰── pychrysalide.plugins.kaitai.MatchRecord
           ╰── pychrysalide.plugins.kaitai.records.RecordEmpty

Attributes

value

Always None.

This attribute is only provided to mimic other record types.

Class RecordGroup

The RecordGroup class stores a map of parsed attributes with their relative values. Each of theses Kaitai attributes can be accessed as usual Python attribute.

Instances can be created using the following constructor:

    RecordGroup(kstruct, content)

Where the kstruct refers to a KaitaiStructure instance as the creator of the newly created object, and content points to a BinContent instance.

Hierarchy

builtins.object
 ╰── gi._gi.GObject
      ╰── pychrysalide.plugins.kaitai.MatchRecord
           ╰── pychrysalide.plugins.kaitai.records.RecordGroup

Class RecordItem

The RecordItem class remembers a match between a described attribute and its concret value read from parsed binary data.

Instances can be created using the following constructor:

    RecordItem(content, range, endian, attrib)

Where the attrib arguments refers to a KaitaiAttribute instance as the creator of the newly created object, content points to a BinContent instance, range is a mrange object, endian states with a SourceEndian hint the endianness used to read integer values.

Hierarchy

builtins.object
 ╰── gi._gi.GObject
      ╰── pychrysalide.plugins.kaitai.MatchRecord
           ╰── pychrysalide.plugins.kaitai.records.RecordItem

Attributes

truncated_bytes

Raw bytes carried by the item (truncated if a separator is defined in the linked attribute), or None if irrelevant regarding to the type of the attribute.

value

Carried value (as integer, bytes), or None in case of error.

Class RecordList

The RecordList class collects a list of parsed attributes with their relative values. Each of theses Kaitai attributes can be accessed as subscriptable Python attribute.

Instances can be created using the following constructor:

    RecordList(content, attrib)

Where the attrib argument refers to the KaitaiAttribute instance used to create each record contained by the list and content points to a BinContent instance.

The object can provide some sequence methods (such as len() or [n]).

Hierarchy

builtins.object
 ╰── gi._gi.GObject
      ╰── pychrysalide.plugins.kaitai.MatchRecord
           ╰── pychrysalide.plugins.kaitai.records.RecordList

Class RecordValue

The RecordValue class stores a link to an instance used to compute a given value.

Instances can be created using the following constructor:

    RecordValue(inst, locals)

Where the inst arguments refers to a KaitaiInstance instance as the creator of the newly created object, locals points to a KaitaiScope structure used as current scope.

Hierarchy

builtins.object
 ╰── gi._gi.GObject
      ╰── pychrysalide.plugins.kaitai.MatchRecord
           ╰── pychrysalide.plugins.kaitai.records.RecordValue

Attributes

value

Carried value (as integer, bytes), or None in case of error.