Fix the stingray.cobol.dump()
to properly iterate through all fields. This will iterate through all indices of indexed fields. It should produce a comprehensive record dump.
The dump()
function is now an iterable over all fields in the record; each result is a tuple with (dde, attribute, indices, bytes, Cell). An error cell will also contain the raw bytes.
def raw_dump( schema, sheet ): for row in sheet.rows(): stingray.cobol.dump( schema, row )
This will produce a raw dump of each row. To fine-tune the dump, you can write a new dump()
function.
def dump( schema, aRow ): for record in schema.info['dde']: for aDDE, attr, indices, raw_bytes, cell in dump_iter(record, aRow): print( "{:45s} {:3d} {!r} {!s}".format( aDDE.indent*' '+str(aDDE), aDDE.size, raw_bytes, cell) )
Fix the stingray.cobol.defs.Usage
hierarchy to properly handle
data which can't be converted. An ErrorCell
instance is created in the (all too common)
case where the COBOL data is invalid and a proper NumberCell
can't be created.
Support iWork '09 Numbers Workbook files.