summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorAndrew Lamoureux <andrew@vector35.com>2019-03-19 17:32:44 -0400
committerRusty Wagner <rusty@vector35.com>2019-03-20 13:00:17 -0400
commit24ead55316ac8497df5842caf4e1d51f2b799787 (patch)
tree3dfdfae8a076445c9d24bf6d1b40e57f36ebf94a /python
parent411acbaa4a1d217e731d3df0b189445117be3b26 (diff)
kaitai: adjustments and rearrangements for python2/3 compat
Diffstat (limited to 'python')
-rw-r--r--python/examples/kaitai/__init__.py15
-rwxr-xr-xpython/examples/kaitai/__main__.py174
-rw-r--r--python/examples/kaitai/aix_utmp.py (renamed from python/examples/kaitai/kaitai_struct_formats/log/aix_utmp.py)3
-rw-r--r--python/examples/kaitai/allegro_dat.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/allegro_dat.py)3
-rw-r--r--python/examples/kaitai/andes_firmware.py (renamed from python/examples/kaitai/kaitai_struct_formats/firmware/andes_firmware.py)3
-rw-r--r--python/examples/kaitai/apm_partition_table.py (renamed from python/examples/kaitai/kaitai_struct_formats/filesystem/apm_partition_table.py)3
-rw-r--r--python/examples/kaitai/apple_single_double.py (renamed from python/examples/kaitai/kaitai_struct_formats/filesystem/apple_single_double.py)3
-rw-r--r--python/examples/kaitai/asn1_der.py (renamed from python/examples/kaitai/kaitai_struct_formats/serialization/asn1/asn1_der.py)3
-rw-r--r--python/examples/kaitai/avantes_roh60.py (renamed from python/examples/kaitai/kaitai_struct_formats/scientific/spectroscopy/avantes_roh60.py)3
-rw-r--r--python/examples/kaitai/avi.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/avi.py)3
-rw-r--r--python/examples/kaitai/bcd.py (renamed from python/examples/kaitai/kaitai_struct_formats/common/bcd.py)3
-rw-r--r--python/examples/kaitai/bitcoin_transaction.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/bitcoin_transaction.py)3
-rw-r--r--python/examples/kaitai/blender_blend.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/blender_blend.py)3
-rw-r--r--python/examples/kaitai/bmp.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/bmp.py)3
-rw-r--r--python/examples/kaitai/bson.py (renamed from python/examples/kaitai/kaitai_struct_formats/serialization/bson.py)3
-rw-r--r--python/examples/kaitai/code_6502.py (renamed from python/examples/kaitai/kaitai_struct_formats/machine_code/code_6502.py)3
-rw-r--r--python/examples/kaitai/cpio_old_le.py (renamed from python/examples/kaitai/kaitai_struct_formats/archive/cpio_old_le.py)3
-rw-r--r--python/examples/kaitai/cramfs.py (renamed from python/examples/kaitai/kaitai_struct_formats/filesystem/cramfs.py)3
-rw-r--r--python/examples/kaitai/creative_voice_file.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/creative_voice_file.py)3
-rw-r--r--python/examples/kaitai/dbf.py (renamed from python/examples/kaitai/kaitai_struct_formats/database/dbf.py)3
-rw-r--r--python/examples/kaitai/dex.py (renamed from python/examples/kaitai/kaitai_struct_formats/executable/dex.py)3
-rw-r--r--python/examples/kaitai/dicom.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/dicom.py)3
-rw-r--r--python/examples/kaitai/dns_packet.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/dns_packet.py)3
-rw-r--r--python/examples/kaitai/doom_wad.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/doom_wad.py)3
-rw-r--r--python/examples/kaitai/dos_mz.py (renamed from python/examples/kaitai/kaitai_struct_formats/executable/dos_mz.py)3
-rw-r--r--python/examples/kaitai/dune_2_pak.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/dune_2_pak.py)3
-rw-r--r--python/examples/kaitai/edid.py (renamed from python/examples/kaitai/kaitai_struct_formats/hardware/edid.py)3
-rw-r--r--python/examples/kaitai/elf.py (renamed from python/examples/kaitai/kaitai_struct_formats/executable/elf.py)3
-rw-r--r--python/examples/kaitai/ethernet_frame.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/ethernet_frame.py)3
-rw-r--r--python/examples/kaitai/exif.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/exif.py)3
-rw-r--r--python/examples/kaitai/exif_be.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/exif_be.py)3
-rw-r--r--python/examples/kaitai/exif_le.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/exif_le.py)3
-rw-r--r--python/examples/kaitai/ext2.py (renamed from python/examples/kaitai/kaitai_struct_formats/filesystem/ext2.py)3
-rw-r--r--python/examples/kaitai/fallout2_dat.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/fallout2_dat.py)3
-rw-r--r--python/examples/kaitai/fallout_dat.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/fallout_dat.py)3
-rw-r--r--python/examples/kaitai/fasttracker_xm_module.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/tracker_modules/fasttracker_xm_module.py)3
-rw-r--r--python/examples/kaitai/ftl_dat.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/ftl_dat.py)3
-rw-r--r--python/examples/kaitai/genmidi_op2.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/genmidi_op2.py)3
-rw-r--r--python/examples/kaitai/gettext_mo.py (renamed from python/examples/kaitai/kaitai_struct_formats/database/gettext_mo.py)3
-rw-r--r--python/examples/kaitai/gif.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/gif.py)5
-rw-r--r--python/examples/kaitai/glibc_utmp.py (renamed from python/examples/kaitai/kaitai_struct_formats/log/glibc_utmp.py)3
-rw-r--r--python/examples/kaitai/google_protobuf.py (renamed from python/examples/kaitai/kaitai_struct_formats/serialization/google_protobuf.py)3
-rw-r--r--python/examples/kaitai/gpt_partition_table.py (renamed from python/examples/kaitai/kaitai_struct_formats/filesystem/gpt_partition_table.py)3
-rw-r--r--python/examples/kaitai/gran_turismo_vol.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/gran_turismo_vol.py)3
-rw-r--r--python/examples/kaitai/gzip.py (renamed from python/examples/kaitai/kaitai_struct_formats/archive/gzip.py)3
-rw-r--r--python/examples/kaitai/hccap.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/hccap.py)3
-rw-r--r--python/examples/kaitai/hccapx.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/hccapx.py)3
-rw-r--r--python/examples/kaitai/heaps_pak.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/heaps_pak.py)3
-rw-r--r--python/examples/kaitai/heroes_of_might_and_magic_agg.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/heroes_of_might_and_magic_agg.py)3
-rw-r--r--python/examples/kaitai/heroes_of_might_and_magic_bmp.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/heroes_of_might_and_magic_bmp.py)3
-rw-r--r--python/examples/kaitai/icc_4.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/icc_4.py)3
-rw-r--r--python/examples/kaitai/icmp_packet.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/icmp_packet.py)3
-rw-r--r--python/examples/kaitai/ico.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/ico.py)3
-rw-r--r--python/examples/kaitai/id3v1_1.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/id3v1_1.py)3
-rw-r--r--python/examples/kaitai/id3v2_3.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/id3v2_3.py)3
-rw-r--r--python/examples/kaitai/id3v2_4.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/id3v2_4.py)3
-rw-r--r--python/examples/kaitai/ines.py (renamed from python/examples/kaitai/kaitai_struct_formats/firmware/ines.py)3
-rw-r--r--python/examples/kaitai/ipv4_packet.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/ipv4_packet.py)3
-rw-r--r--python/examples/kaitai/ipv6_packet.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/ipv6_packet.py)3
-rw-r--r--python/examples/kaitai/iso9660.py (renamed from python/examples/kaitai/kaitai_struct_formats/filesystem/iso9660.py)3
-rw-r--r--python/examples/kaitai/java_class.py (renamed from python/examples/kaitai/kaitai_struct_formats/executable/java_class.py)3
-rw-r--r--python/examples/kaitai/jpeg.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/jpeg.py)3
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/archive/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/cad/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/common/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/common/vlq_base128_be.py103
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/common/vlq_base128_le.py109
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/database/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/database/vlq_base128_be.py102
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/executable/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/executable/vlq_base128_le.py108
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/filesystem/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/firmware/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/font/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/game/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/geospatial/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/hardware/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/hardware/mifare/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/log/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/machine_code/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/media/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/media/tracker_modules/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/network/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/scientific/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/scientific/nt_mdt/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/scientific/spectroscopy/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/security/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/serialization/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/serialization/asn1/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/windows/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/windows/windows_systemtime.py52
-rw-r--r--[-rwxr-xr-x]python/examples/kaitai/kshelpers.py453
-rw-r--r--python/examples/kaitai/luks.py (renamed from python/examples/kaitai/kaitai_struct_formats/filesystem/luks.py)3
-rw-r--r--python/examples/kaitai/lvm2.py (renamed from python/examples/kaitai/kaitai_struct_formats/filesystem/lvm2.py)3
-rw-r--r--python/examples/kaitai/lzh.py (renamed from python/examples/kaitai/kaitai_struct_formats/archive/lzh.py)3
-rw-r--r--python/examples/kaitai/mach_o.py (renamed from python/examples/kaitai/kaitai_struct_formats/executable/mach_o.py)3
-rw-r--r--python/examples/kaitai/magicavoxel_vox.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/magicavoxel_vox.py)3
-rw-r--r--python/examples/kaitai/mbr_partition_table.py (renamed from python/examples/kaitai/kaitai_struct_formats/filesystem/mbr_partition_table.py)3
-rw-r--r--python/examples/kaitai/microsoft_cfb.py (renamed from python/examples/kaitai/kaitai_struct_formats/serialization/microsoft_cfb.py)3
-rw-r--r--python/examples/kaitai/microsoft_network_monitor_v2.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/microsoft_network_monitor_v2.py)3
-rw-r--r--python/examples/kaitai/microsoft_pe.py (renamed from python/examples/kaitai/kaitai_struct_formats/executable/microsoft_pe.py)3
-rw-r--r--python/examples/kaitai/mifare_classic.py (renamed from python/examples/kaitai/kaitai_struct_formats/hardware/mifare/mifare_classic.py)3
-rw-r--r--python/examples/kaitai/monomakh_sapr_chg.py (renamed from python/examples/kaitai/kaitai_struct_formats/cad/monomakh_sapr_chg.py)3
-rw-r--r--python/examples/kaitai/msgpack.py (renamed from python/examples/kaitai/kaitai_struct_formats/serialization/msgpack.py)3
-rw-r--r--python/examples/kaitai/nt_mdt.py (renamed from python/examples/kaitai/kaitai_struct_formats/scientific/nt_mdt/nt_mdt.py)3
-rw-r--r--python/examples/kaitai/nt_mdt_pal.py (renamed from python/examples/kaitai/kaitai_struct_formats/scientific/nt_mdt/nt_mdt_pal.py)3
-rw-r--r--python/examples/kaitai/ogg.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/ogg.py)3
-rw-r--r--python/examples/kaitai/openpgp_message.py (renamed from python/examples/kaitai/kaitai_struct_formats/security/openpgp_message.py)11
-rw-r--r--python/examples/kaitai/packet_ppi.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/packet_ppi.py)3
-rw-r--r--python/examples/kaitai/pcap.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/pcap.py)3
-rw-r--r--python/examples/kaitai/pcx.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/pcx.py)3
-rw-r--r--python/examples/kaitai/pcx_dcx.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/pcx_dcx.py)3
-rw-r--r--python/examples/kaitai/png.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/png.py)3
-rw-r--r--python/examples/kaitai/protocol_body.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/protocol_body.py)3
-rw-r--r--python/examples/kaitai/psx_tim.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/psx_tim.py)3
-rw-r--r--python/examples/kaitai/python_pyc_27.py (renamed from python/examples/kaitai/kaitai_struct_formats/executable/python_pyc_27.py)3
-rw-r--r--python/examples/kaitai/quake_mdl.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/quake_mdl.py)3
-rw-r--r--python/examples/kaitai/quake_pak.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/quake_pak.py)3
-rw-r--r--python/examples/kaitai/quicktime_mov.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/quicktime_mov.py)3
-rw-r--r--python/examples/kaitai/rar.py (renamed from python/examples/kaitai/kaitai_struct_formats/archive/rar.py)3
-rw-r--r--python/examples/kaitai/regf.py (renamed from python/examples/kaitai/kaitai_struct_formats/windows/regf.py)3
-rw-r--r--python/examples/kaitai/renderware_binary_stream.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/renderware_binary_stream.py)3
-rw-r--r--python/examples/kaitai/rtcp_payload.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/rtcp_payload.py)3
-rw-r--r--python/examples/kaitai/rtp_packet.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/rtp_packet.py)3
-rw-r--r--python/examples/kaitai/ruby_marshal.py (renamed from python/examples/kaitai/kaitai_struct_formats/serialization/ruby_marshal.py)3
-rw-r--r--python/examples/kaitai/s3m.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/tracker_modules/s3m.py)3
-rw-r--r--python/examples/kaitai/saints_row_2_vpp_pc.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/saints_row_2_vpp_pc.py)3
-rw-r--r--python/examples/kaitai/shapefile_index.py (renamed from python/examples/kaitai/kaitai_struct_formats/geospatial/shapefile_index.py)3
-rw-r--r--python/examples/kaitai/shapefile_main.py (renamed from python/examples/kaitai/kaitai_struct_formats/geospatial/shapefile_main.py)3
-rw-r--r--python/examples/kaitai/specpr.py (renamed from python/examples/kaitai/kaitai_struct_formats/scientific/spectroscopy/specpr.py)3
-rw-r--r--python/examples/kaitai/sqlite3.py (renamed from python/examples/kaitai/kaitai_struct_formats/database/sqlite3.py)3
-rw-r--r--python/examples/kaitai/ssh_public_key.py (renamed from python/examples/kaitai/kaitai_struct_formats/security/ssh_public_key.py)3
-rw-r--r--python/examples/kaitai/standard_midi_file.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/standard_midi_file.py)3
-rw-r--r--python/examples/kaitai/stl.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/stl.py)3
-rw-r--r--python/examples/kaitai/swf.py (renamed from python/examples/kaitai/kaitai_struct_formats/executable/swf.py)3
-rw-r--r--python/examples/kaitai/systemd_journal.py (renamed from python/examples/kaitai/kaitai_struct_formats/log/systemd_journal.py)3
-rw-r--r--python/examples/kaitai/tcp_segment.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/tcp_segment.py)3
-rw-r--r--python/examples/kaitai/tga.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/tga.py)3
-rw-r--r--python/examples/kaitai/tls_client_hello.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/tls_client_hello.py)3
-rw-r--r--python/examples/kaitai/tr_dos_image.py (renamed from python/examples/kaitai/kaitai_struct_formats/filesystem/tr_dos_image.py)3
-rw-r--r--python/examples/kaitai/tsm.py (renamed from python/examples/kaitai/kaitai_struct_formats/database/tsm.py)3
-rw-r--r--python/examples/kaitai/ttf.py (renamed from python/examples/kaitai/kaitai_struct_formats/font/ttf.py)3
-rw-r--r--python/examples/kaitai/udp_datagram.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/udp_datagram.py)3
-rw-r--r--python/examples/kaitai/uimage.py (renamed from python/examples/kaitai/kaitai_struct_formats/firmware/uimage.py)3
-rw-r--r--python/examples/kaitai/vdi.py (renamed from python/examples/kaitai/kaitai_struct_formats/filesystem/vdi.py)3
-rw-r--r--python/examples/kaitai/vfat.py (renamed from python/examples/kaitai/kaitai_struct_formats/filesystem/vfat.py)3
-rw-r--r--python/examples/kaitai/view.py64
-rw-r--r--python/examples/kaitai/vlq_base128_be.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/vlq_base128_be.py)2
-rw-r--r--python/examples/kaitai/vlq_base128_le.py (renamed from python/examples/kaitai/kaitai_struct_formats/serialization/vlq_base128_le.py)2
-rw-r--r--python/examples/kaitai/vmware_vmdk.py (renamed from python/examples/kaitai/kaitai_struct_formats/filesystem/vmware_vmdk.py)3
-rw-r--r--python/examples/kaitai/vp8_ivf.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/vp8_ivf.py)3
-rw-r--r--python/examples/kaitai/warcraft_2_pud.py (renamed from python/examples/kaitai/kaitai_struct_formats/game/warcraft_2_pud.py)3
-rw-r--r--python/examples/kaitai/wav.py (renamed from python/examples/kaitai/kaitai_struct_formats/media/wav.py)3
-rw-r--r--python/examples/kaitai/windows_evt_log.py (renamed from python/examples/kaitai/kaitai_struct_formats/log/windows_evt_log.py)3
-rw-r--r--python/examples/kaitai/windows_lnk_file.py (renamed from python/examples/kaitai/kaitai_struct_formats/windows/windows_lnk_file.py)3
-rw-r--r--python/examples/kaitai/windows_minidump.py (renamed from python/examples/kaitai/kaitai_struct_formats/windows/windows_minidump.py)3
-rw-r--r--python/examples/kaitai/windows_resource_file.py (renamed from python/examples/kaitai/kaitai_struct_formats/windows/windows_resource_file.py)3
-rw-r--r--python/examples/kaitai/windows_shell_items.py (renamed from python/examples/kaitai/kaitai_struct_formats/windows/windows_shell_items.py)3
-rw-r--r--python/examples/kaitai/windows_systemtime.py (renamed from python/examples/kaitai/kaitai_struct_formats/network/windows_systemtime.py)2
-rw-r--r--python/examples/kaitai/wmf.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/wmf.py)5
-rw-r--r--python/examples/kaitai/xwd.py (renamed from python/examples/kaitai/kaitai_struct_formats/image/xwd.py)3
-rw-r--r--python/examples/kaitai/zip.py (renamed from python/examples/kaitai/kaitai_struct_formats/archive/zip.py)3
164 files changed, 495 insertions, 1081 deletions
diff --git a/python/examples/kaitai/__init__.py b/python/examples/kaitai/__init__.py
index 90cdbd77..7ac825d2 100644
--- a/python/examples/kaitai/__init__.py
+++ b/python/examples/kaitai/__init__.py
@@ -1 +1,14 @@
-from . import view
+import sys
+
+# invoked from python2 command line? (eg: python -m kaitai ...)
+if sys.version_info[0] == 2 and sys.argv[0:] and sys.argv[0]=='-c':
+ pass
+# invoked from python3 command line? (eg: python -m kaitai ...)
+elif sys.version_info[0] == 3 and sys.argv[0:] and sys.argv[0]=='-m':
+ pass
+# invoked from binja
+else:
+ if sys.version_info[0] == 2:
+ import view
+ else:
+ from . import view
diff --git a/python/examples/kaitai/__main__.py b/python/examples/kaitai/__main__.py
new file mode 100755
index 00000000..b52f01cf
--- /dev/null
+++ b/python/examples/kaitai/__main__.py
@@ -0,0 +1,174 @@
+#!/usr/bin/env python
+
+# test script
+
+from __future__ import print_function
+
+import io
+import sys
+import types
+import importlib
+
+import binaryninja
+
+if sys.version_info[0] == 2:
+ import kaitaistruct
+ import kshelpers
+else:
+ from . import kaitaistruct
+ from . import kshelpers
+
+NORMAL = '\033[0m'
+BLACK = '\033[0;30m'
+RED = '\033[0;31m'
+GREEN = '\033[0;32m'
+YELLOW = '\033[0;33m'
+BLUE = '\033[0;34m'
+PURPLE = '\033[0;35m'
+CYAN = '\033[0;36m'
+GRAY = '\033[0;37m'
+
+LBLACK = '\033[1;30m'
+LRED = '\033[1;31m'
+LGREEN = '\033[1;32m'
+LYELLOW = '\033[1;33m'
+LBLUE = '\033[1;34m'
+LPURPLE = '\033[1;35m'
+LCYAN = '\033[1;36m'
+LGRAY = '\033[1;37m'
+
+def dump(obj, depth=0):
+ dump_exceptions = ['_root', '_parent', '_io', 'SEQ_FIELDS']
+
+ indent = ' '*depth
+
+ if isinstance(obj, kaitaistruct.KaitaiStruct):
+ for fieldName in dir(obj):
+ if hasattr(obj, fieldName):
+ getattr(obj, fieldName)
+
+ for fieldName in dir(obj):
+ #print('considering field: %s (hasattr returns: %d)' % (fieldName, hasattr(obj, fieldName)))
+ if fieldName != '_debug' and fieldName.startswith('_'):
+ continue
+ if fieldName in dump_exceptions:
+ continue
+ if not hasattr(obj, fieldName):
+ continue
+
+ subObj = getattr(obj, fieldName)
+
+ if type(subObj) == types.MethodType:
+ pass
+ #elif type(subObj) == types.TypeType:
+ elif isinstance(subObj, type):
+ pass
+ elif fieldName == '_debug':
+ print(('%s._debug:'+RED+' %s'+NORMAL) % (indent, repr(subObj)))
+ #elif type(subObj) == types.ListType:
+ elif isinstance(subObj, list):
+ if len(subObj)>0 and isinstance(subObj[0], kaitaistruct.KaitaiStruct):
+ for i in range(len(subObj)):
+ print('%s.%s[%d]:' % (indent, fieldName, i))
+ dump(subObj[i], depth+1)
+ else:
+ print('%s.%s: %s' % (indent, fieldName, str(subObj)))
+ #elif type(subObj) == types.DictionaryType:
+ elif isinstance(subObj, dict):
+ print('%s.%s: %s' % (indent, fieldName, subObj))
+
+ #elif type(subObj) == types.StringType:
+ elif isinstance(subObj, str):
+ if len(subObj) <= 16:
+ print(('%s.%s: '+CYAN+'%s'+NORMAL) % (indent, fieldName, repr(subObj)))
+ else:
+ print(('%s.%s: '+CYAN+'%s...'+NORMAL+' 0x%X (%d) bytes total') % \
+ (indent, fieldName, repr(subObj[0:16]), len(subObj), len(subObj))
+ )
+
+ elif type(subObj) == int:
+ print(('%s.%s: '+YELLOW+'0x%X '+NORMAL+'('+YELLOW+'%d'+NORMAL+')') % (indent, fieldName, subObj, subObj))
+
+ elif str(type(subObj)).startswith('<enum '):
+ print(('%s.%s: '+'%s') % (indent, fieldName, repr(subObj)))
+
+ elif isinstance(subObj, kaitaistruct.KaitaiStruct):
+ print('%s.%s:' % (indent, fieldName))
+ dump(subObj, depth+1)
+
+ else:
+ print('%s.%s: %s' % (indent, fieldName, type(subObj)))
+ else:
+ print((PURPLE+'%s%s'+NORMAL) % (indent, repr(obj)))
+ #else:
+ # print('%s%s: %s' % (indent, fieldName, repr(subObj)))
+
+if __name__ == '__main__':
+ if not sys.argv[1:]:
+ raise Exception('expected arguments')
+
+ cmd = sys.argv[1]
+
+ if cmd == 'dump':
+ fpath = sys.argv[2]
+ parsed = kshelpers.parseFpath(fpath)
+ dump(parsed)
+
+ if cmd == 'import':
+ print('importing every format...')
+
+ module_names = [
+ 'cpio_old_le', 'gzip', 'lzh', 'rar', 'zip', 'monomakh_sapr_chg', 'bcd',
+ 'vlq_base128_be', 'vlq_base128_le', 'dbf', 'gettext_mo', 'sqlite3', 'tsm',
+ 'dex', 'dos_mz', 'elf', 'java_class', 'mach_o', 'microsoft_pe',
+ 'python_pyc_27', 'swf', 'apm_partition_table', 'apple_single_double', 'cramfs',
+ 'ext2', 'gpt_partition_table', 'iso9660', 'luks', 'lvm2',
+ 'mbr_partition_table', 'tr_dos_image', 'vdi', 'vfat', 'vmware_vmdk',
+ 'andes_firmware', 'ines', 'uimage', 'ttf', 'allegro_dat', 'doom_wad',
+ 'dune_2_pak', 'fallout2_dat', 'fallout_dat', 'ftl_dat', 'gran_turismo_vol',
+ 'heaps_pak', 'heroes_of_might_and_magic_agg', 'heroes_of_might_and_magic_bmp',
+ 'quake_mdl', 'quake_pak', 'renderware_binary_stream', 'saints_row_2_vpp_pc',
+ 'warcraft_2_pud', 'shapefile_index', 'shapefile_main', 'edid',
+ 'mifare_classic', 'bmp', 'dicom', 'exif', 'exif_be', 'exif_le', 'gif', 'icc_4',
+ 'ico', 'jpeg', 'pcx', 'pcx_dcx', 'png', 'psx_tim', 'tga', 'wmf', 'xwd',
+ 'aix_utmp', 'glibc_utmp', 'systemd_journal', 'windows_evt_log', 'code_6502',
+ 'avi', 'blender_blend', 'creative_voice_file', 'genmidi_op2', 'id3v1_1',
+ 'id3v2_3', 'id3v2_4', 'magicavoxel_vox', 'ogg', 'quicktime_mov',
+ 'standard_midi_file', 'stl', 'fasttracker_xm_module', 's3m', 'vp8_ivf', 'wav',
+ 'bitcoin_transaction', 'dns_packet', 'ethernet_frame', 'hccap', 'hccapx',
+ 'icmp_packet', 'ipv4_packet', 'ipv6_packet', 'microsoft_network_monitor_v2',
+ 'packet_ppi', 'pcap', 'protocol_body', 'rtcp_payload', 'rtp_packet',
+ 'tcp_segment', 'tls_client_hello', 'udp_datagram', 'nt_mdt', 'nt_mdt_pal',
+ 'avantes_roh60', 'specpr', 'openpgp_message', 'ssh_public_key', 'asn1_der',
+ 'bson', 'google_protobuf', 'microsoft_cfb', 'msgpack', 'ruby_marshal', 'regf',
+ 'windows_lnk_file', 'windows_minidump', 'windows_resource_file',
+ 'windows_shell_items', 'windows_systemtime'
+ ]
+
+ (npass, nfail) = (0,0)
+
+ for module_name in module_names:
+ class_name = ''.join(map(lambda x: x.capitalize(), module_name.split('_')))
+
+ print('from %s import %s...' % (module_name, class_name), end='')
+ try:
+ module = importlib.import_module('.'+module_name, 'kaitai')
+ method = getattr(module, class_name)
+ print('['+GREEN+'PASS'+NORMAL+']')
+ npass += 1
+ except Exception as e:
+ print('['+RED+str(e)+NORMAL+']')
+ nfail += 1
+
+ ntests = 1.0*npass + nfail
+ assert(ntests == len(module_names))
+ print('passes %d of %d (rate: %f%%)' % (npass, ntests, npass/ntests))
+ print('failures %d of %d (rate: %f%%)' % (nfail, ntests, nfail/ntests))
+
+ if cmd == 'dumpbinja':
+ fpath = sys.argv[2]
+ binaryView = binaryninja.BinaryViewType['Raw'].open(fpath)
+ kaitaiIo = KaitaiBinaryViewIO(binaryView)
+ parsed = parse_io(kaitaiIo)
+ print(parsed.header.program_headers)
+
diff --git a/python/examples/kaitai/kaitai_struct_formats/log/aix_utmp.py b/python/examples/kaitai/aix_utmp.py
index e731fc16..67ce2506 100644
--- a/python/examples/kaitai/kaitai_struct_formats/log/aix_utmp.py
+++ b/python/examples/kaitai/aix_utmp.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/allegro_dat.py b/python/examples/kaitai/allegro_dat.py
index 0078bf45..1569e523 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/allegro_dat.py
+++ b/python/examples/kaitai/allegro_dat.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/firmware/andes_firmware.py b/python/examples/kaitai/andes_firmware.py
index b032da33..8be90e48 100644
--- a/python/examples/kaitai/kaitai_struct_formats/firmware/andes_firmware.py
+++ b/python/examples/kaitai/andes_firmware.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/apm_partition_table.py b/python/examples/kaitai/apm_partition_table.py
index 18b05757..744a085c 100644
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/apm_partition_table.py
+++ b/python/examples/kaitai/apm_partition_table.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/apple_single_double.py b/python/examples/kaitai/apple_single_double.py
index 39a65abc..b2c05d8f 100644
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/apple_single_double.py
+++ b/python/examples/kaitai/apple_single_double.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/serialization/asn1/asn1_der.py b/python/examples/kaitai/asn1_der.py
index 1809b2db..cd92a75e 100644
--- a/python/examples/kaitai/kaitai_struct_formats/serialization/asn1/asn1_der.py
+++ b/python/examples/kaitai/asn1_der.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ....kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/scientific/spectroscopy/avantes_roh60.py b/python/examples/kaitai/avantes_roh60.py
index f2d95219..6a17acea 100644
--- a/python/examples/kaitai/kaitai_struct_formats/scientific/spectroscopy/avantes_roh60.py
+++ b/python/examples/kaitai/avantes_roh60.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ....kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/avi.py b/python/examples/kaitai/avi.py
index bf34eb55..872a4f97 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/avi.py
+++ b/python/examples/kaitai/avi.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/common/bcd.py b/python/examples/kaitai/bcd.py
index d75829d2..3f2afb80 100644
--- a/python/examples/kaitai/kaitai_struct_formats/common/bcd.py
+++ b/python/examples/kaitai/bcd.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/bitcoin_transaction.py b/python/examples/kaitai/bitcoin_transaction.py
index 41d05158..c2324637 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/bitcoin_transaction.py
+++ b/python/examples/kaitai/bitcoin_transaction.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/blender_blend.py b/python/examples/kaitai/blender_blend.py
index bda24a08..4d6d4ab5 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/blender_blend.py
+++ b/python/examples/kaitai/blender_blend.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/bmp.py b/python/examples/kaitai/bmp.py
index 98519f41..41f039d9 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/bmp.py
+++ b/python/examples/kaitai/bmp.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/serialization/bson.py b/python/examples/kaitai/bson.py
index f3b0f295..a8fbd922 100644
--- a/python/examples/kaitai/kaitai_struct_formats/serialization/bson.py
+++ b/python/examples/kaitai/bson.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/machine_code/code_6502.py b/python/examples/kaitai/code_6502.py
index 1466959d..80f29150 100644
--- a/python/examples/kaitai/kaitai_struct_formats/machine_code/code_6502.py
+++ b/python/examples/kaitai/code_6502.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/archive/cpio_old_le.py b/python/examples/kaitai/cpio_old_le.py
index 2b019d86..9c99d3e1 100644
--- a/python/examples/kaitai/kaitai_struct_formats/archive/cpio_old_le.py
+++ b/python/examples/kaitai/cpio_old_le.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/cramfs.py b/python/examples/kaitai/cramfs.py
index bb8efdd1..782cb9af 100644
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/cramfs.py
+++ b/python/examples/kaitai/cramfs.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/creative_voice_file.py b/python/examples/kaitai/creative_voice_file.py
index f49a26ce..3ee67227 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/creative_voice_file.py
+++ b/python/examples/kaitai/creative_voice_file.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/database/dbf.py b/python/examples/kaitai/dbf.py
index 4cfeb9e8..ba026162 100644
--- a/python/examples/kaitai/kaitai_struct_formats/database/dbf.py
+++ b/python/examples/kaitai/dbf.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/executable/dex.py b/python/examples/kaitai/dex.py
index 8a3ddaa4..f2dad696 100644
--- a/python/examples/kaitai/kaitai_struct_formats/executable/dex.py
+++ b/python/examples/kaitai/dex.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/dicom.py b/python/examples/kaitai/dicom.py
index c13372ff..2bba1910 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/dicom.py
+++ b/python/examples/kaitai/dicom.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/dns_packet.py b/python/examples/kaitai/dns_packet.py
index c90b66da..159b6746 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/dns_packet.py
+++ b/python/examples/kaitai/dns_packet.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/doom_wad.py b/python/examples/kaitai/doom_wad.py
index b5705ae9..b0de10a6 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/doom_wad.py
+++ b/python/examples/kaitai/doom_wad.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/executable/dos_mz.py b/python/examples/kaitai/dos_mz.py
index c718c41e..8ad248e7 100644
--- a/python/examples/kaitai/kaitai_struct_formats/executable/dos_mz.py
+++ b/python/examples/kaitai/dos_mz.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/dune_2_pak.py b/python/examples/kaitai/dune_2_pak.py
index e074b018..bd56f1a5 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/dune_2_pak.py
+++ b/python/examples/kaitai/dune_2_pak.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/hardware/edid.py b/python/examples/kaitai/edid.py
index 73497d62..9ece78a4 100644
--- a/python/examples/kaitai/kaitai_struct_formats/hardware/edid.py
+++ b/python/examples/kaitai/edid.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/executable/elf.py b/python/examples/kaitai/elf.py
index c134a2e2..6f5eb252 100644
--- a/python/examples/kaitai/kaitai_struct_formats/executable/elf.py
+++ b/python/examples/kaitai/elf.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/ethernet_frame.py b/python/examples/kaitai/ethernet_frame.py
index e6baaccf..e90c43c7 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/ethernet_frame.py
+++ b/python/examples/kaitai/ethernet_frame.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/exif.py b/python/examples/kaitai/exif.py
index 5b7ae3b5..f0a27b70 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/exif.py
+++ b/python/examples/kaitai/exif.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/exif_be.py b/python/examples/kaitai/exif_be.py
index df758573..d27ae9fd 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/exif_be.py
+++ b/python/examples/kaitai/exif_be.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/exif_le.py b/python/examples/kaitai/exif_le.py
index 94f4155a..4ea8edd6 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/exif_le.py
+++ b/python/examples/kaitai/exif_le.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/ext2.py b/python/examples/kaitai/ext2.py
index f912475b..50cf4824 100644
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/ext2.py
+++ b/python/examples/kaitai/ext2.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/fallout2_dat.py b/python/examples/kaitai/fallout2_dat.py
index e22fc0d5..c6350d89 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/fallout2_dat.py
+++ b/python/examples/kaitai/fallout2_dat.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
import zlib
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/fallout_dat.py b/python/examples/kaitai/fallout_dat.py
index 4ce06191..5885100c 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/fallout_dat.py
+++ b/python/examples/kaitai/fallout_dat.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/tracker_modules/fasttracker_xm_module.py b/python/examples/kaitai/fasttracker_xm_module.py
index fad6c2cc..cca84ab0 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/tracker_modules/fasttracker_xm_module.py
+++ b/python/examples/kaitai/fasttracker_xm_module.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ....kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/ftl_dat.py b/python/examples/kaitai/ftl_dat.py
index d56d478a..21ca6a07 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/ftl_dat.py
+++ b/python/examples/kaitai/ftl_dat.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/genmidi_op2.py b/python/examples/kaitai/genmidi_op2.py
index b73c2f8c..ab39962a 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/genmidi_op2.py
+++ b/python/examples/kaitai/genmidi_op2.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/database/gettext_mo.py b/python/examples/kaitai/gettext_mo.py
index 2064a039..c5de94b8 100644
--- a/python/examples/kaitai/kaitai_struct_formats/database/gettext_mo.py
+++ b/python/examples/kaitai/gettext_mo.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/gif.py b/python/examples/kaitai/gif.py
index 95586ed2..82cfc7b6 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/gif.py
+++ b/python/examples/kaitai/gif.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
@@ -17,7 +16,7 @@ class Gif(KaitaiStruct):
GIF format allows encoding of palette-based images up to 256 colors
(each of the colors can be chosen from a 24-bit RGB
- colorspace). Image data stream uses LZW (Lempel–Ziv–Welch) lossless
+ colorspace). Image data stream uses LZW (LempelAAAZivAAAWelch) lossless
compression.
Over the years, several version of the format were published and
diff --git a/python/examples/kaitai/kaitai_struct_formats/log/glibc_utmp.py b/python/examples/kaitai/glibc_utmp.py
index 87852ae9..80ba88f9 100644
--- a/python/examples/kaitai/kaitai_struct_formats/log/glibc_utmp.py
+++ b/python/examples/kaitai/glibc_utmp.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/serialization/google_protobuf.py b/python/examples/kaitai/google_protobuf.py
index 0bb3cac6..27b4b2ef 100644
--- a/python/examples/kaitai/kaitai_struct_formats/serialization/google_protobuf.py
+++ b/python/examples/kaitai/google_protobuf.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/gpt_partition_table.py b/python/examples/kaitai/gpt_partition_table.py
index 49a56371..e6f0c9ed 100644
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/gpt_partition_table.py
+++ b/python/examples/kaitai/gpt_partition_table.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/gran_turismo_vol.py b/python/examples/kaitai/gran_turismo_vol.py
index 1b76c226..34e9df0e 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/gran_turismo_vol.py
+++ b/python/examples/kaitai/gran_turismo_vol.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/archive/gzip.py b/python/examples/kaitai/gzip.py
index b233cff2..2f03aeec 100644
--- a/python/examples/kaitai/kaitai_struct_formats/archive/gzip.py
+++ b/python/examples/kaitai/gzip.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/hccap.py b/python/examples/kaitai/hccap.py
index db02ef14..48fc17f4 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/hccap.py
+++ b/python/examples/kaitai/hccap.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/hccapx.py b/python/examples/kaitai/hccapx.py
index 439db7d4..8727ecfe 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/hccapx.py
+++ b/python/examples/kaitai/hccapx.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/heaps_pak.py b/python/examples/kaitai/heaps_pak.py
index 63937a47..a0e44da6 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/heaps_pak.py
+++ b/python/examples/kaitai/heaps_pak.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/heroes_of_might_and_magic_agg.py b/python/examples/kaitai/heroes_of_might_and_magic_agg.py
index caff6a27..9e45cf0c 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/heroes_of_might_and_magic_agg.py
+++ b/python/examples/kaitai/heroes_of_might_and_magic_agg.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/heroes_of_might_and_magic_bmp.py b/python/examples/kaitai/heroes_of_might_and_magic_bmp.py
index cc02696a..014d9797 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/heroes_of_might_and_magic_bmp.py
+++ b/python/examples/kaitai/heroes_of_might_and_magic_bmp.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/icc_4.py b/python/examples/kaitai/icc_4.py
index 585358e3..4597e474 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/icc_4.py
+++ b/python/examples/kaitai/icc_4.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/icmp_packet.py b/python/examples/kaitai/icmp_packet.py
index 45de7aae..19b42e6f 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/icmp_packet.py
+++ b/python/examples/kaitai/icmp_packet.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/ico.py b/python/examples/kaitai/ico.py
index 0c9fffed..408c4bc4 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/ico.py
+++ b/python/examples/kaitai/ico.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/id3v1_1.py b/python/examples/kaitai/id3v1_1.py
index 37a71459..41b2e880 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/id3v1_1.py
+++ b/python/examples/kaitai/id3v1_1.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/id3v2_3.py b/python/examples/kaitai/id3v2_3.py
index cf6e5e1e..cf3c2d46 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/id3v2_3.py
+++ b/python/examples/kaitai/id3v2_3.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/id3v2_4.py b/python/examples/kaitai/id3v2_4.py
index 0cdde2eb..528ea22b 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/id3v2_4.py
+++ b/python/examples/kaitai/id3v2_4.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/firmware/ines.py b/python/examples/kaitai/ines.py
index e9c97d29..7f58e105 100644
--- a/python/examples/kaitai/kaitai_struct_formats/firmware/ines.py
+++ b/python/examples/kaitai/ines.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/ipv4_packet.py b/python/examples/kaitai/ipv4_packet.py
index 0bc7bb95..ffc83f92 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/ipv4_packet.py
+++ b/python/examples/kaitai/ipv4_packet.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/ipv6_packet.py b/python/examples/kaitai/ipv6_packet.py
index c108d643..3d828e64 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/ipv6_packet.py
+++ b/python/examples/kaitai/ipv6_packet.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/iso9660.py b/python/examples/kaitai/iso9660.py
index 2ed28663..dd8071a8 100644
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/iso9660.py
+++ b/python/examples/kaitai/iso9660.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/executable/java_class.py b/python/examples/kaitai/java_class.py
index fd92ab69..e492e83f 100644
--- a/python/examples/kaitai/kaitai_struct_formats/executable/java_class.py
+++ b/python/examples/kaitai/java_class.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/jpeg.py b/python/examples/kaitai/jpeg.py
index ad5b527e..6fd5bcb0 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/jpeg.py
+++ b/python/examples/kaitai/jpeg.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/__init__.py b/python/examples/kaitai/kaitai_struct_formats/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/archive/__init__.py b/python/examples/kaitai/kaitai_struct_formats/archive/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/archive/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/cad/__init__.py b/python/examples/kaitai/kaitai_struct_formats/cad/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/cad/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/common/__init__.py b/python/examples/kaitai/kaitai_struct_formats/common/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/common/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/common/vlq_base128_be.py b/python/examples/kaitai/kaitai_struct_formats/common/vlq_base128_be.py
deleted file mode 100644
index 097d1e36..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/common/vlq_base128_be.py
+++ /dev/null
@@ -1,103 +0,0 @@
-from __future__ import absolute_import
-# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
-
-from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
-import collections
-
-
-if parse_version(ks_version) < parse_version('0.7'):
- raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-
-class VlqBase128Be(KaitaiStruct):
- """A variable-length unsigned integer using base128 encoding. 1-byte groups
- consist of 1-bit flag of continuation and 7-bit value chunk, and are ordered
- "most significant group first", i.e. in "big-endian" manner.
-
- This particular encoding is specified and used in:
-
- * Standard MIDI file format
- * ASN.1 BER encoding
-
- More information on this encoding is available at
- https://en.wikipedia.org/wiki/Variable-length_quantity
-
- This particular implementation supports serialized values to up 8 bytes long.
- """
- SEQ_FIELDS = ["groups"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['groups']['start'] = self._io.pos()
- self.groups = []
- i = 0
- while True:
- if not 'arr' in self._debug['groups']:
- self._debug['groups']['arr'] = []
- self._debug['groups']['arr'].append({'start': self._io.pos()})
- _t_groups = self._root.Group(self._io, self, self._root)
- _t_groups._read()
- _ = _t_groups
- self.groups.append(_)
- self._debug['groups']['arr'][len(self.groups) - 1]['end'] = self._io.pos()
- if not (_.has_next):
- break
- i += 1
- self._debug['groups']['end'] = self._io.pos()
-
- class Group(KaitaiStruct):
- """One byte group, clearly divided into 7-bit "value" chunk and 1-bit "continuation" flag.
- """
- SEQ_FIELDS = ["b"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['b']['start'] = self._io.pos()
- self.b = self._io.read_u1()
- self._debug['b']['end'] = self._io.pos()
-
- @property
- def has_next(self):
- """If true, then we have more bytes to read."""
- if hasattr(self, '_m_has_next'):
- return self._m_has_next if hasattr(self, '_m_has_next') else None
-
- self._m_has_next = (self.b & 128) != 0
- return self._m_has_next if hasattr(self, '_m_has_next') else None
-
- @property
- def value(self):
- """The 7-bit (base128) numeric value chunk of this group."""
- if hasattr(self, '_m_value'):
- return self._m_value if hasattr(self, '_m_value') else None
-
- self._m_value = (self.b & 127)
- return self._m_value if hasattr(self, '_m_value') else None
-
-
- @property
- def last(self):
- if hasattr(self, '_m_last'):
- return self._m_last if hasattr(self, '_m_last') else None
-
- self._m_last = (len(self.groups) - 1)
- return self._m_last if hasattr(self, '_m_last') else None
-
- @property
- def value(self):
- """Resulting value as normal integer."""
- if hasattr(self, '_m_value'):
- return self._m_value if hasattr(self, '_m_value') else None
-
- self._m_value = (((((((self.groups[self.last].value + ((self.groups[(self.last - 1)].value << 7) if self.last >= 1 else 0)) + ((self.groups[(self.last - 2)].value << 14) if self.last >= 2 else 0)) + ((self.groups[(self.last - 3)].value << 21) if self.last >= 3 else 0)) + ((self.groups[(self.last - 4)].value << 28) if self.last >= 4 else 0)) + ((self.groups[(self.last - 5)].value << 35) if self.last >= 5 else 0)) + ((self.groups[(self.last - 6)].value << 42) if self.last >= 6 else 0)) + ((self.groups[(self.last - 7)].value << 49) if self.last >= 7 else 0))
- return self._m_value if hasattr(self, '_m_value') else None
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/common/vlq_base128_le.py b/python/examples/kaitai/kaitai_struct_formats/common/vlq_base128_le.py
deleted file mode 100644
index ae49cffc..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/common/vlq_base128_le.py
+++ /dev/null
@@ -1,109 +0,0 @@
-from __future__ import absolute_import
-# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
-
-from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
-import collections
-
-
-if parse_version(ks_version) < parse_version('0.7'):
- raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-
-class VlqBase128Le(KaitaiStruct):
- """A variable-length unsigned integer using base128 encoding. 1-byte groups
- consist of 1-bit flag of continuation and 7-bit value chunk, and are ordered
- "least significant group first", i.e. in "little-endian" manner.
-
- This particular encoding is specified and used in:
-
- * DWARF debug file format, where it's dubbed "unsigned LEB128" or "ULEB128".
- http://dwarfstd.org/doc/dwarf-2.0.0.pdf - page 139
- * Google Protocol Buffers, where it's called "Base 128 Varints".
- https://developers.google.com/protocol-buffers/docs/encoding?csw=1#varints
- * Apache Lucene, where it's called "VInt"
- http://lucene.apache.org/core/3_5_0/fileformats.html#VInt
- * Apache Avro uses this as a basis for integer encoding, adding ZigZag on
- top of it for signed ints
- http://avro.apache.org/docs/current/spec.html#binary_encode_primitive
-
- More information on this encoding is available at https://en.wikipedia.org/wiki/LEB128
-
- This particular implementation supports serialized values to up 8 bytes long.
- """
- SEQ_FIELDS = ["groups"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['groups']['start'] = self._io.pos()
- self.groups = []
- i = 0
- while True:
- if not 'arr' in self._debug['groups']:
- self._debug['groups']['arr'] = []
- self._debug['groups']['arr'].append({'start': self._io.pos()})
- _t_groups = self._root.Group(self._io, self, self._root)
- _t_groups._read()
- _ = _t_groups
- self.groups.append(_)
- self._debug['groups']['arr'][len(self.groups) - 1]['end'] = self._io.pos()
- if not (_.has_next):
- break
- i += 1
- self._debug['groups']['end'] = self._io.pos()
-
- class Group(KaitaiStruct):
- """One byte group, clearly divided into 7-bit "value" chunk and 1-bit "continuation" flag.
- """
- SEQ_FIELDS = ["b"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['b']['start'] = self._io.pos()
- self.b = self._io.read_u1()
- self._debug['b']['end'] = self._io.pos()
-
- @property
- def has_next(self):
- """If true, then we have more bytes to read."""
- if hasattr(self, '_m_has_next'):
- return self._m_has_next if hasattr(self, '_m_has_next') else None
-
- self._m_has_next = (self.b & 128) != 0
- return self._m_has_next if hasattr(self, '_m_has_next') else None
-
- @property
- def value(self):
- """The 7-bit (base128) numeric value chunk of this group."""
- if hasattr(self, '_m_value'):
- return self._m_value if hasattr(self, '_m_value') else None
-
- self._m_value = (self.b & 127)
- return self._m_value if hasattr(self, '_m_value') else None
-
-
- @property
- def len(self):
- if hasattr(self, '_m_len'):
- return self._m_len if hasattr(self, '_m_len') else None
-
- self._m_len = len(self.groups)
- return self._m_len if hasattr(self, '_m_len') else None
-
- @property
- def value(self):
- """Resulting value as normal integer."""
- if hasattr(self, '_m_value'):
- return self._m_value if hasattr(self, '_m_value') else None
-
- self._m_value = (((((((self.groups[0].value + ((self.groups[1].value << 7) if self.len >= 2 else 0)) + ((self.groups[2].value << 14) if self.len >= 3 else 0)) + ((self.groups[3].value << 21) if self.len >= 4 else 0)) + ((self.groups[4].value << 28) if self.len >= 5 else 0)) + ((self.groups[5].value << 35) if self.len >= 6 else 0)) + ((self.groups[6].value << 42) if self.len >= 7 else 0)) + ((self.groups[7].value << 49) if self.len >= 8 else 0))
- return self._m_value if hasattr(self, '_m_value') else None
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/database/__init__.py b/python/examples/kaitai/kaitai_struct_formats/database/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/database/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/database/vlq_base128_be.py b/python/examples/kaitai/kaitai_struct_formats/database/vlq_base128_be.py
deleted file mode 100644
index 826cdd95..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/database/vlq_base128_be.py
+++ /dev/null
@@ -1,102 +0,0 @@
-# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
-
-from pkg_resources import parse_version
-from kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
-import collections
-
-
-if parse_version(ks_version) < parse_version('0.7'):
- raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-
-class VlqBase128Be(KaitaiStruct):
- """A variable-length unsigned integer using base128 encoding. 1-byte groups
- consist of 1-bit flag of continuation and 7-bit value chunk, and are ordered
- "most significant group first", i.e. in "big-endian" manner.
-
- This particular encoding is specified and used in:
-
- * Standard MIDI file format
- * ASN.1 BER encoding
-
- More information on this encoding is available at
- https://en.wikipedia.org/wiki/Variable-length_quantity
-
- This particular implementation supports serialized values to up 8 bytes long.
- """
- SEQ_FIELDS = ["groups"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['groups']['start'] = self._io.pos()
- self.groups = []
- i = 0
- while True:
- if not 'arr' in self._debug['groups']:
- self._debug['groups']['arr'] = []
- self._debug['groups']['arr'].append({'start': self._io.pos()})
- _t_groups = self._root.Group(self._io, self, self._root)
- _t_groups._read()
- _ = _t_groups
- self.groups.append(_)
- self._debug['groups']['arr'][len(self.groups) - 1]['end'] = self._io.pos()
- if not (_.has_next):
- break
- i += 1
- self._debug['groups']['end'] = self._io.pos()
-
- class Group(KaitaiStruct):
- """One byte group, clearly divided into 7-bit "value" chunk and 1-bit "continuation" flag.
- """
- SEQ_FIELDS = ["b"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['b']['start'] = self._io.pos()
- self.b = self._io.read_u1()
- self._debug['b']['end'] = self._io.pos()
-
- @property
- def has_next(self):
- """If true, then we have more bytes to read."""
- if hasattr(self, '_m_has_next'):
- return self._m_has_next if hasattr(self, '_m_has_next') else None
-
- self._m_has_next = (self.b & 128) != 0
- return self._m_has_next if hasattr(self, '_m_has_next') else None
-
- @property
- def value(self):
- """The 7-bit (base128) numeric value chunk of this group."""
- if hasattr(self, '_m_value'):
- return self._m_value if hasattr(self, '_m_value') else None
-
- self._m_value = (self.b & 127)
- return self._m_value if hasattr(self, '_m_value') else None
-
-
- @property
- def last(self):
- if hasattr(self, '_m_last'):
- return self._m_last if hasattr(self, '_m_last') else None
-
- self._m_last = (len(self.groups) - 1)
- return self._m_last if hasattr(self, '_m_last') else None
-
- @property
- def value(self):
- """Resulting value as normal integer."""
- if hasattr(self, '_m_value'):
- return self._m_value if hasattr(self, '_m_value') else None
-
- self._m_value = (((((((self.groups[self.last].value + ((self.groups[(self.last - 1)].value << 7) if self.last >= 1 else 0)) + ((self.groups[(self.last - 2)].value << 14) if self.last >= 2 else 0)) + ((self.groups[(self.last - 3)].value << 21) if self.last >= 3 else 0)) + ((self.groups[(self.last - 4)].value << 28) if self.last >= 4 else 0)) + ((self.groups[(self.last - 5)].value << 35) if self.last >= 5 else 0)) + ((self.groups[(self.last - 6)].value << 42) if self.last >= 6 else 0)) + ((self.groups[(self.last - 7)].value << 49) if self.last >= 7 else 0))
- return self._m_value if hasattr(self, '_m_value') else None
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/executable/__init__.py b/python/examples/kaitai/kaitai_struct_formats/executable/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/executable/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/executable/vlq_base128_le.py b/python/examples/kaitai/kaitai_struct_formats/executable/vlq_base128_le.py
deleted file mode 100644
index 407fdac7..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/executable/vlq_base128_le.py
+++ /dev/null
@@ -1,108 +0,0 @@
-# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
-
-from pkg_resources import parse_version
-from kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
-import collections
-
-
-if parse_version(ks_version) < parse_version('0.7'):
- raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-
-class VlqBase128Le(KaitaiStruct):
- """A variable-length unsigned integer using base128 encoding. 1-byte groups
- consist of 1-bit flag of continuation and 7-bit value chunk, and are ordered
- "least significant group first", i.e. in "little-endian" manner.
-
- This particular encoding is specified and used in:
-
- * DWARF debug file format, where it's dubbed "unsigned LEB128" or "ULEB128".
- http://dwarfstd.org/doc/dwarf-2.0.0.pdf - page 139
- * Google Protocol Buffers, where it's called "Base 128 Varints".
- https://developers.google.com/protocol-buffers/docs/encoding?csw=1#varints
- * Apache Lucene, where it's called "VInt"
- http://lucene.apache.org/core/3_5_0/fileformats.html#VInt
- * Apache Avro uses this as a basis for integer encoding, adding ZigZag on
- top of it for signed ints
- http://avro.apache.org/docs/current/spec.html#binary_encode_primitive
-
- More information on this encoding is available at https://en.wikipedia.org/wiki/LEB128
-
- This particular implementation supports serialized values to up 8 bytes long.
- """
- SEQ_FIELDS = ["groups"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['groups']['start'] = self._io.pos()
- self.groups = []
- i = 0
- while True:
- if not 'arr' in self._debug['groups']:
- self._debug['groups']['arr'] = []
- self._debug['groups']['arr'].append({'start': self._io.pos()})
- _t_groups = self._root.Group(self._io, self, self._root)
- _t_groups._read()
- _ = _t_groups
- self.groups.append(_)
- self._debug['groups']['arr'][len(self.groups) - 1]['end'] = self._io.pos()
- if not (_.has_next):
- break
- i += 1
- self._debug['groups']['end'] = self._io.pos()
-
- class Group(KaitaiStruct):
- """One byte group, clearly divided into 7-bit "value" chunk and 1-bit "continuation" flag.
- """
- SEQ_FIELDS = ["b"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['b']['start'] = self._io.pos()
- self.b = self._io.read_u1()
- self._debug['b']['end'] = self._io.pos()
-
- @property
- def has_next(self):
- """If true, then we have more bytes to read."""
- if hasattr(self, '_m_has_next'):
- return self._m_has_next if hasattr(self, '_m_has_next') else None
-
- self._m_has_next = (self.b & 128) != 0
- return self._m_has_next if hasattr(self, '_m_has_next') else None
-
- @property
- def value(self):
- """The 7-bit (base128) numeric value chunk of this group."""
- if hasattr(self, '_m_value'):
- return self._m_value if hasattr(self, '_m_value') else None
-
- self._m_value = (self.b & 127)
- return self._m_value if hasattr(self, '_m_value') else None
-
-
- @property
- def len(self):
- if hasattr(self, '_m_len'):
- return self._m_len if hasattr(self, '_m_len') else None
-
- self._m_len = len(self.groups)
- return self._m_len if hasattr(self, '_m_len') else None
-
- @property
- def value(self):
- """Resulting value as normal integer."""
- if hasattr(self, '_m_value'):
- return self._m_value if hasattr(self, '_m_value') else None
-
- self._m_value = (((((((self.groups[0].value + ((self.groups[1].value << 7) if self.len >= 2 else 0)) + ((self.groups[2].value << 14) if self.len >= 3 else 0)) + ((self.groups[3].value << 21) if self.len >= 4 else 0)) + ((self.groups[4].value << 28) if self.len >= 5 else 0)) + ((self.groups[5].value << 35) if self.len >= 6 else 0)) + ((self.groups[6].value << 42) if self.len >= 7 else 0)) + ((self.groups[7].value << 49) if self.len >= 8 else 0))
- return self._m_value if hasattr(self, '_m_value') else None
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/__init__.py b/python/examples/kaitai/kaitai_struct_formats/filesystem/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/firmware/__init__.py b/python/examples/kaitai/kaitai_struct_formats/firmware/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/firmware/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/font/__init__.py b/python/examples/kaitai/kaitai_struct_formats/font/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/font/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/__init__.py b/python/examples/kaitai/kaitai_struct_formats/game/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/game/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/geospatial/__init__.py b/python/examples/kaitai/kaitai_struct_formats/geospatial/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/geospatial/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/hardware/__init__.py b/python/examples/kaitai/kaitai_struct_formats/hardware/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/hardware/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/hardware/mifare/__init__.py b/python/examples/kaitai/kaitai_struct_formats/hardware/mifare/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/hardware/mifare/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/__init__.py b/python/examples/kaitai/kaitai_struct_formats/image/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/log/__init__.py b/python/examples/kaitai/kaitai_struct_formats/log/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/log/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/machine_code/__init__.py b/python/examples/kaitai/kaitai_struct_formats/machine_code/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/machine_code/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/__init__.py b/python/examples/kaitai/kaitai_struct_formats/media/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/media/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/tracker_modules/__init__.py b/python/examples/kaitai/kaitai_struct_formats/media/tracker_modules/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/media/tracker_modules/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/__init__.py b/python/examples/kaitai/kaitai_struct_formats/network/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/network/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/scientific/__init__.py b/python/examples/kaitai/kaitai_struct_formats/scientific/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/scientific/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/scientific/nt_mdt/__init__.py b/python/examples/kaitai/kaitai_struct_formats/scientific/nt_mdt/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/scientific/nt_mdt/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/scientific/spectroscopy/__init__.py b/python/examples/kaitai/kaitai_struct_formats/scientific/spectroscopy/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/scientific/spectroscopy/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/security/__init__.py b/python/examples/kaitai/kaitai_struct_formats/security/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/security/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/serialization/__init__.py b/python/examples/kaitai/kaitai_struct_formats/serialization/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/serialization/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/serialization/asn1/__init__.py b/python/examples/kaitai/kaitai_struct_formats/serialization/asn1/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/serialization/asn1/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/windows/__init__.py b/python/examples/kaitai/kaitai_struct_formats/windows/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/windows/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/windows/windows_systemtime.py b/python/examples/kaitai/kaitai_struct_formats/windows/windows_systemtime.py
deleted file mode 100644
index 4d3e288b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/windows/windows_systemtime.py
+++ /dev/null
@@ -1,52 +0,0 @@
-from __future__ import absolute_import
-# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
-
-from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
-import collections
-
-
-if parse_version(ks_version) < parse_version('0.7'):
- raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-
-class WindowsSystemtime(KaitaiStruct):
- """Microsoft Windows SYSTEMTIME structure, stores individual components
- of date and time as individual fields, up to millisecond precision.
-
- .. seealso::
- Source - https://msdn.microsoft.com/en-us/library/windows/desktop/ms724950.aspx
- """
- SEQ_FIELDS = ["year", "month", "dow", "day", "hour", "min", "sec", "msec"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['year']['start'] = self._io.pos()
- self.year = self._io.read_u2le()
- self._debug['year']['end'] = self._io.pos()
- self._debug['month']['start'] = self._io.pos()
- self.month = self._io.read_u2le()
- self._debug['month']['end'] = self._io.pos()
- self._debug['dow']['start'] = self._io.pos()
- self.dow = self._io.read_u2le()
- self._debug['dow']['end'] = self._io.pos()
- self._debug['day']['start'] = self._io.pos()
- self.day = self._io.read_u2le()
- self._debug['day']['end'] = self._io.pos()
- self._debug['hour']['start'] = self._io.pos()
- self.hour = self._io.read_u2le()
- self._debug['hour']['end'] = self._io.pos()
- self._debug['min']['start'] = self._io.pos()
- self.min = self._io.read_u2le()
- self._debug['min']['end'] = self._io.pos()
- self._debug['sec']['start'] = self._io.pos()
- self.sec = self._io.read_u2le()
- self._debug['sec']['end'] = self._io.pos()
- self._debug['msec']['start'] = self._io.pos()
- self.msec = self._io.read_u2le()
- self._debug['msec']['end'] = self._io.pos()
-
-
diff --git a/python/examples/kaitai/kshelpers.py b/python/examples/kaitai/kshelpers.py
index 859a206c..55ebd01e 100755..100644
--- a/python/examples/kaitai/kshelpers.py
+++ b/python/examples/kaitai/kshelpers.py
@@ -1,112 +1,109 @@
#!/usr/bin/env python
-from __future__ import absolute_import
-
import io
+import os
import sys
+import struct
import types
+import importlib
import binaryninja
from PySide2.QtCore import Qt
from PySide2.QtWidgets import QTreeWidgetItem
-from .kaitaistruct import KaitaiStruct
-
-#sys.path.append('kaitai_struct_formats/archive')
-#sys.path.append('kaitai_struct_formats/cad')
-#sys.path.append('kaitai_struct_formats/common')
-#sys.path.append('kaitai_struct_formats/database')
-#sys.path.append('./kaitai_struct_formats/executable')
-#sys.path.append('kaitai_struct_formats/filesystem')
-#sys.path.append('kaitai_struct_formats/firmware')
-#sys.path.append('kaitai_struct_formats/font')
-#sys.path.append('kaitai_struct_formats/game')
-#sys.path.append('kaitai_struct_formats/geospatial')
-#sys.path.append('kaitai_struct_formats/hardware')
-#sys.path.append('kaitai_struct_formats/image')
-#sys.path.append('kaitai_struct_formats/log')
-#sys.path.append('kaitai_struct_formats/machine_code')
-#sys.path.append('kaitai_struct_formats/media')
-#sys.path.append('kaitai_struct_formats/network')
-#sys.path.append('kaitai_struct_formats/scientific')
-#sys.path.append('kaitai_struct_formats/security')
-#sys.path.append('kaitai_struct_formats/serialization')
-#sys.path.append('kaitai_struct_formats/windows')
+if sys.version_info[0] == 2:
+ import kaitaistruct
+else:
+ from . import kaitaistruct
#------------------------------------------------------------------------------
# id and parse
#------------------------------------------------------------------------------
-def id_data(data):
- if len(data) < 16:
- return None
+# return the name of the kaitai module to service this data
+#
+# dsample: str data sample
+# length: int total length of data
+def idData(dataSample, length):
+ result = None
- if data[0:4] == "\x7fELF":
- return 'elf'
- if data[0:4] in ['\xfe\xed\xfa\xce', '\xce\xfa\xed\xfe', '\xfe\xed\xfa\xcf', '\xcf\xfa\xed\xfe']:
- return 'macho'
- if data[0:2] == 'MZ':
- return 'pe'
- if data[0:8] == '\x89\x50\x4e\x47\x0d\x0a\x1a\x0a':
- return 'png'
- if data[2:11] == '0xFF\xe0\x00\x10JFIF\x00':
- return 'jpeg'
- if data[0:6] == 'GIF89a':
- return 'gif'
+ if len(dataSample) < 16:
+ return result
+
+ if dataSample[0:4] == b'\x7fELF':
+ result = 'elf'
+ if dataSample[0:4] in [b'\xfe\xed\xfa\xce', b'\xce\xfa\xed\xfe', b'\xfe\xed\xfa\xcf', b'\xcf\xfa\xed\xfe']:
+ result = 'mach_o'
+ if dataSample[0:2] == b'MZ':
+ result = 'microsoft_pe'
+ if dataSample[0:8] == b'\x89PNG\x0d\x0a\x1a\x0a':
+ result = 'png'
+ if dataSample[2:11] == b'\xFF\xe0\x00\x10JFIF\x00':
+ result = 'jpeg'
+ if dataSample[0:4] == b'GIF8':
+ result = 'gif'
+ if dataSample[0:2] in [b'BM', b'BA', b'CI', b'CP', b'IC', b'PT'] and struct.unpack('<I', dataSample[2:6])[0]==length:
+ result = 'bmp'
- return None
+ #print('ioData() returning \'%s\'' % result)
+ return result
-def id_file(fpath):
- data = None
+def idFile(fpath):
with open(fpath, 'rb') as fp:
- data = fp.read(16)
- return id_data(data)
+ return idData(fp.read(16), os.path.getsize(fpath))
+
+def ksModuleToClass(moduleName):
+ # split on underscores, camelcase
+ return ''.join(map(lambda x: x.capitalize(), moduleName.split('_')))
-def getKaitaiModuleFromFileType(ftype):
- if ftype == 'elf':
- from .kaitai_struct_formats.executable.elf import Elf
- return Elf
- elif ftype == 'macho':
- from .kaitai_struct_formats.executable.mach_o import MachO
- return MachO
- elif ftype == 'pe':
- from .kaitai_struct_formats.executable.microsoft_pe import MicrosoftPe
- return MicrosoftPe
- elif ftype == 'png':
- from .kaitai_struct_formats.image.png import Png
- return Png
- elif ftype == 'jpeg':
- from .kaitai_struct_formats.image.jpeg import Jpeg
- return Jpeg
- elif ftype == 'gif':
- from .kaitai_struct_formats.image.gif import Gif
- return Gif
+def ksImportClass(moduleName):
+ global __name__, __package__
+ if not moduleName:
+ return None
+
+ classThing = None
+ try:
+ #print('__package__: -%s-' % __package__) # 'kaitai'
+ #print('__name__: -%s-' % __name__) # 'kaitai.kshelpers'
+
+ #print('moduleName: -%s-' % moduleName)
+ module = importlib.import_module('.'+moduleName, __package__)
+ className = ksModuleToClass(moduleName)
+ #print('className: -%s-' % className)
+ classThing = getattr(module, className)
+ except Exception as e:
+ print(e)
+ pass
+
+ return classThing
- return None
+def parseFpath(fpath):
+ ksClass = ksImportClass(idFile(fpath))
+ if not ksClass: return None
-def parse_fpath(fpath):
- kaitaiModule = getKaitaiModuleFromFileType(id_file(fpath))
- if not kaitaiModule: return None
- parsed = kaitaiModule.from_file(fpath)
+ parsed = ksClass.from_file(fpath)
parsed._read()
return parsed
-def parse_data(data):
- kaitaiModule = getKaitaiModuleFromFileType(id_data(data))
- if not kaitaiModule: return None
- parsed = kaitaiModule.from_bytes(data)
+def parseData(data):
+ ksClass = ksImportClass(idData(data), len(data))
+ if not ksClass: return None
+
+ parsed = ksClass.from_bytes(data)
parsed._read()
return parsed
-def parse_io(ioObj):
+def parseIo(ioObj):
+ ioObj.seek(0, io.SEEK_END)
+ length = ioObj.tell()
+
ioObj.seek(0, io.SEEK_SET)
- kaitaiModule = getKaitaiModuleFromFileType(id_data(ioObj.read(16)))
+ ksClass = ksImportClass(idData(ioObj.read(16), length))
+ if not ksClass: return None
+
ioObj.seek(0, io.SEEK_SET)
- if not kaitaiModule:
- print 'ERROR: finding suitable kaitai module'
- return None
- parsed = kaitaiModule.from_io(ioObj)
+ parsed = ksClass.from_io(ioObj)
parsed._read()
return parsed
@@ -125,7 +122,7 @@ class KaitaiBinaryViewIO:
self.position = 0
def seek(self, offs, whence=io.SEEK_SET):
- #print 'seek(0x%X, %d)' % (offs, whence)
+ #print('seek(0x%X, %d)' % (offs, whence))
if whence == io.SEEK_SET:
self.position = offs
elif whence == io.SEEK_CUR:
@@ -136,11 +133,15 @@ class KaitaiBinaryViewIO:
raise Exception('unknown whence in seek(): %d' % whence)
def tell(self):
- #print 'tell() returning 0x%X' % (self.position)
+ #print('tell() returning 0x%X' % (self.position))
return self.position
- def read(self, length):
- #print 'read(%d) (starting at position: 0x%X)' % (length, self.position)
+ def read(self, length=None):
+ # if no length is given (eg: see read_bytes_full() in kaitaistruct.py)
+ if length == None:
+ length = len(self.binaryView) - self.position
+
+ #print('read(%d) (starting at position: 0x%X)' % (length, self.position))
data = self.binaryView.read(self.position, length)
self.position += length
return data
@@ -149,196 +150,6 @@ class KaitaiBinaryViewIO:
pass
#------------------------------------------------------------------------------
-# text dump/debug testing stuff
-#------------------------------------------------------------------------------
-
-def dump(obj, depth=0):
- dump_exceptions = ['_root', '_parent', '_io']
-
- indent = ' '*depth
-
- if isinstance(obj, KaitaiStruct):
- for fieldName in dir(obj):
- if hasattr(obj, fieldName):
- getattr(obj, fieldName)
-
- for fieldName in dir(obj):
- #print 'considering field: %s (hasattr returns: %d)' % (fieldName, hasattr(obj, fieldName))
- if (fieldName != '_debug' and fieldName.startswith('_')) or fieldName in dump_exceptions or not hasattr(obj, fieldName):
- continue
-
- #print 'A: %s' % fieldName
-
- subObj = getattr(obj, fieldName)
-
- if type(subObj) == types.MethodType:
- pass
- elif type(subObj) == types.TypeType:
- pass
- elif type(subObj) == types.ListType:
- if len(subObj)>0 and isinstance(subObj[0], KaitaiStruct):
- for i in range(len(subObj)):
- print '%s.%s[%d]:' % (indent, fieldName, i)
- dump(subObj[i], depth+1)
- else:
- print '%s.%s: %s' % (indent, fieldName, str(subObj))
- elif type(subObj) == types.DictionaryType:
- print '%s.%s: %s' % (indent, fieldName, subObj)
-
- elif type(subObj) == types.StringType:
- print '%s.%s: %s' % (indent, fieldName, repr(subObj))
-
- elif type(subObj) == int:
- print '%s.%s: 0x%X (%d)' % (indent, fieldName, subObj, subObj)
-
- elif str(type(subObj)).startswith('<enum '):
- print '%s.%s: %s' % (indent, fieldName, repr(subObj))
-
- elif isinstance(subObj, KaitaiStruct):
- print '%s.%s:' % (indent, fieldName)
- dump(subObj, depth+1)
-
- elif fieldName == '_debug':
- print '%s._debug: %s' % (indent, repr(subObj))
- else:
- print '%s.%s: %s' % (indent, fieldName, type(subObj))
- else:
- print indent + repr(obj)
- #else:
- # print '%s%s: %s' % (indent, fieldName, repr(subObj))
-
-def import_all_formats():
- from .kaitai_struct_formats.archive.cpio_old_le import CpioOldLe
- from .kaitai_struct_formats.archive.gzip import Gzip
- from .kaitai_struct_formats.archive.lzh import Lzh
- from .kaitai_struct_formats.archive.rar import Rar
- from .kaitai_struct_formats.archive.zip import Zip
- from .kaitai_struct_formats.cad.monomakh_sapr_chg import MonomakhSaprChg
- from .kaitai_struct_formats.common.bcd import Bcd
- from .kaitai_struct_formats.common.vlq_base128_be import VlqBase128Be
- from .kaitai_struct_formats.common.vlq_base128_le import VlqBase128Le
- from .kaitai_struct_formats.database.dbf import Dbf
- from .kaitai_struct_formats.database.gettext_mo import GettextMo
- from .kaitai_struct_formats.database.sqlite3 import Sqlite3
- from .kaitai_struct_formats.database.tsm import Tsm
- from .kaitai_struct_formats.executable.dex import Dex
- from .kaitai_struct_formats.executable.dos_mz import DosMz
- from .kaitai_struct_formats.executable.elf import Elf
- from .kaitai_struct_formats.executable.java_class import JavaClass
- from .kaitai_struct_formats.executable.mach_o import MachO
- from .kaitai_struct_formats.executable.microsoft_pe import MicrosoftPe
- from .kaitai_struct_formats.executable.python_pyc_27 import PythonPyc27
- from .kaitai_struct_formats.executable.swf import Swf
- from .kaitai_struct_formats.filesystem.apm_partition_table import ApmPartitionTable
- from .kaitai_struct_formats.filesystem.apple_single_double import AppleSingleDouble
- from .kaitai_struct_formats.filesystem.cramfs import Cramfs
- from .kaitai_struct_formats.filesystem.ext2 import Ext2
- from .kaitai_struct_formats.filesystem.gpt_partition_table import GptPartitionTable
- from .kaitai_struct_formats.filesystem.iso9660 import Iso9660
- from .kaitai_struct_formats.filesystem.luks import Luks
- from .kaitai_struct_formats.filesystem.lvm2 import Lvm2
- from .kaitai_struct_formats.filesystem.mbr_partition_table import MbrPartitionTable
- from .kaitai_struct_formats.filesystem.tr_dos_image import TrDosImage
- from .kaitai_struct_formats.filesystem.vdi import Vdi
- from .kaitai_struct_formats.filesystem.vfat import Vfat
- from .kaitai_struct_formats.filesystem.vmware_vmdk import VmwareVmdk
- from .kaitai_struct_formats.firmware.andes_firmware import AndesFirmware
- from .kaitai_struct_formats.firmware.ines import Ines
- from .kaitai_struct_formats.firmware.uimage import Uimage
- from .kaitai_struct_formats.font.ttf import Ttf
- from .kaitai_struct_formats.game.allegro_dat import AllegroDat
- from .kaitai_struct_formats.game.doom_wad import DoomWad
- from .kaitai_struct_formats.game.dune_2_pak import Dune2Pak
- from .kaitai_struct_formats.game.fallout2_dat import Fallout2Dat
- from .kaitai_struct_formats.game.fallout_dat import FalloutDat
- from .kaitai_struct_formats.game.ftl_dat import FtlDat
- from .kaitai_struct_formats.game.gran_turismo_vol import GranTurismoVol
- from .kaitai_struct_formats.game.heaps_pak import HeapsPak
- from .kaitai_struct_formats.game.heroes_of_might_and_magic_agg import HeroesOfMightAndMagicAgg
- from .kaitai_struct_formats.game.heroes_of_might_and_magic_bmp import HeroesOfMightAndMagicBmp
- from .kaitai_struct_formats.game.quake_mdl import QuakeMdl
- from .kaitai_struct_formats.game.quake_pak import QuakePak
- from .kaitai_struct_formats.game.renderware_binary_stream import RenderwareBinaryStream
- from .kaitai_struct_formats.game.saints_row_2_vpp_pc import SaintsRow2VppPc
- from .kaitai_struct_formats.game.warcraft_2_pud import Warcraft2Pud
- from .kaitai_struct_formats.geospatial.shapefile_index import ShapefileIndex
- from .kaitai_struct_formats.geospatial.shapefile_main import ShapefileMain
- from .kaitai_struct_formats.hardware.edid import Edid
- from .kaitai_struct_formats.hardware.mifare.mifare_classic import MifareClassic
- from .kaitai_struct_formats.image.bmp import Bmp
- from .kaitai_struct_formats.image.dicom import Dicom
- from .kaitai_struct_formats.image.exif import Exif
- from .kaitai_struct_formats.image.exif_be import ExifBe
- from .kaitai_struct_formats.image.exif_le import ExifLe
- from .kaitai_struct_formats.image.gif import Gif
- from .kaitai_struct_formats.image.icc_4 import Icc4
- from .kaitai_struct_formats.image.ico import Ico
- from .kaitai_struct_formats.image.jpeg import Jpeg
- from .kaitai_struct_formats.image.pcx import Pcx
- from .kaitai_struct_formats.image.pcx_dcx import PcxDcx
- from .kaitai_struct_formats.image.png import Png
- from .kaitai_struct_formats.image.psx_tim import PsxTim
- from .kaitai_struct_formats.image.tga import Tga
- from .kaitai_struct_formats.image.wmf import Wmf
- from .kaitai_struct_formats.image.xwd import Xwd
- from .kaitai_struct_formats.log.aix_utmp import AixUtmp
- from .kaitai_struct_formats.log.glibc_utmp import GlibcUtmp
- from .kaitai_struct_formats.log.systemd_journal import SystemdJournal
- from .kaitai_struct_formats.log.windows_evt_log import WindowsEvtLog
- from .kaitai_struct_formats.machine_code.code_6502 import Code6502
- from .kaitai_struct_formats.media.avi import Avi
- from .kaitai_struct_formats.media.blender_blend import BlenderBlend
- from .kaitai_struct_formats.media.creative_voice_file import CreativeVoiceFile
- from .kaitai_struct_formats.media.genmidi_op2 import GenmidiOp2
- from .kaitai_struct_formats.media.id3v1_1 import Id3v11
- from .kaitai_struct_formats.media.id3v2_3 import Id3v23
- from .kaitai_struct_formats.media.id3v2_4 import Id3v24
- from .kaitai_struct_formats.media.magicavoxel_vox import MagicavoxelVox
- from .kaitai_struct_formats.media.ogg import Ogg
- from .kaitai_struct_formats.media.quicktime_mov import QuicktimeMov
- from .kaitai_struct_formats.media.standard_midi_file import StandardMidiFile
- from .kaitai_struct_formats.media.stl import Stl
- from .kaitai_struct_formats.media.tracker_modules.fasttracker_xm_module import FasttrackerXmModule
- from .kaitai_struct_formats.media.tracker_modules.s3m import S3m
- from .kaitai_struct_formats.media.vp8_ivf import Vp8Ivf
- from .kaitai_struct_formats.media.wav import Wav
- from .kaitai_struct_formats.network.bitcoin_transaction import BitcoinTransaction
- from .kaitai_struct_formats.network.dns_packet import DnsPacket
- from .kaitai_struct_formats.network.ethernet_frame import EthernetFrame
- from .kaitai_struct_formats.network.hccap import Hccap
- from .kaitai_struct_formats.network.hccapx import Hccapx
- from .kaitai_struct_formats.network.icmp_packet import IcmpPacket
- from .kaitai_struct_formats.network.ipv4_packet import Ipv4Packet
- from .kaitai_struct_formats.network.ipv6_packet import Ipv6Packet
- from .kaitai_struct_formats.network.microsoft_network_monitor_v2 import MicrosoftNetworkMonitorV2
- from .kaitai_struct_formats.network.packet_ppi import PacketPpi
- from .kaitai_struct_formats.network.pcap import Pcap
- from .kaitai_struct_formats.network.protocol_body import ProtocolBody
- from .kaitai_struct_formats.network.rtcp_payload import RtcpPayload
- from .kaitai_struct_formats.network.rtp_packet import RtpPacket
- from .kaitai_struct_formats.network.tcp_segment import TcpSegment
- from .kaitai_struct_formats.network.tls_client_hello import TlsClientHello
- from .kaitai_struct_formats.network.udp_datagram import UdpDatagram
- from .kaitai_struct_formats.scientific.nt_mdt.nt_mdt import NtMdt
- from .kaitai_struct_formats.scientific.nt_mdt.nt_mdt_pal import NtMdtPal
- from .kaitai_struct_formats.scientific.spectroscopy.avantes_roh60 import AvantesRoh60
- from .kaitai_struct_formats.scientific.spectroscopy.specpr import Specpr
- from .kaitai_struct_formats.security.openpgp_message import OpenpgpMessage
- from .kaitai_struct_formats.security.ssh_public_key import SshPublicKey
- from .kaitai_struct_formats.serialization.asn1.asn1_der import Asn1Der
- from .kaitai_struct_formats.serialization.bson import Bson
- from .kaitai_struct_formats.serialization.google_protobuf import GoogleProtobuf
- from .kaitai_struct_formats.serialization.microsoft_cfb import MicrosoftCfb
- from .kaitai_struct_formats.serialization.msgpack import Msgpack
- from .kaitai_struct_formats.serialization.ruby_marshal import RubyMarshal
- from .kaitai_struct_formats.windows.regf import Regf
- from .kaitai_struct_formats.windows.windows_lnk_file import WindowsLnkFile
- from .kaitai_struct_formats.windows.windows_minidump import WindowsMinidump
- from .kaitai_struct_formats.windows.windows_resource_file import WindowsResourceFile
- from .kaitai_struct_formats.windows.windows_shell_items import WindowsShellItems
- from .kaitai_struct_formats.windows.windows_systemtime import WindowsSystemtime
-
-#------------------------------------------------------------------------------
# Qt/Kaitai OOP
#------------------------------------------------------------------------------
@@ -381,14 +192,17 @@ class KaitaiTreeWidgetItem(QTreeWidgetItem):
def setValue(self, value):
self.value = value
- if type(value) == types.IntType:
+ if isinstance(value, int):
value = '%X'%value
self.setData(1, Qt.DisplayRole, value)
def setStart(self, start):
if start == None:
self.start = None
- elif type(start) in [types.IntType, types.LongType]:
+ elif isinstance(start, int):
+ self.start = start
+ start = '%X'%start
+ elif (sys.version_info[0] == 2) and type(start) == types.LongType:
self.start = start
start = '%X'%start
else:
@@ -399,7 +213,11 @@ class KaitaiTreeWidgetItem(QTreeWidgetItem):
def setEnd(self, end):
if end == None:
self.end = None
- elif type(end) in [types.IntType, types.LongType]:
+
+ if isinstance(end, int):
+ self.end = end
+ end = '%X'%end
+ elif (sys.version_info[0] == 2) and type(end) == types.LongType:
self.end = end
end = '%X'%end
else:
@@ -436,8 +254,8 @@ class KaitaiTreeWidgetItem(QTreeWidgetItem):
# RETURNS:
# KaitaiTreeWidgetItem (QTreeWidgetItem)
#
-def build_qtree(ksobj):
- if not isinstance(ksobj, KaitaiStruct):
+def buildQtree(ksobj):
+ if not isinstance(ksobj, kaitaistruct.KaitaiStruct):
return None
exceptions = ['_root', '_parent', '_io', 'SEQ_FIELDS', '_debug']
@@ -460,23 +278,25 @@ def build_qtree(ksobj):
if ('_m_'+fieldName) in fields:
# favor the '_m_' version which seems to get the debug info
continue
-
+
subObj = getattr(ksobj, fieldName)
- subObjType = type(subObj)
child = None
- if isinstance(subObj, KaitaiStruct):
+ if isinstance(subObj, kaitaistruct.KaitaiStruct):
fieldLabel = fieldName
- child = build_qtree(subObj)
+ child = buildQtree(subObj)
if child:
- populate_child(ksobj, fieldName, fieldName, None, child)
+ populateChild(ksobj, fieldName, fieldName, None, child)
qwi.addChild(child)
- elif subObjType == types.ListType and len(subObj)>0:
+ elif isinstance(subObj, list):
+ if len(subObj)<=0:
+ continue
+
# CASE: is list of KaitaiObjects -> recurse!
- if isinstance(subObj[0], KaitaiStruct):
+ if isinstance(subObj[0], kaitaistruct.KaitaiStruct):
child = KaitaiTreeWidgetItem()
- populate_child(ksobj, fieldName, fieldName, None, child)
+ populateChild(ksobj, fieldName, fieldName, None, child)
# does _debug have an array version of start/end?
startsEnds = None
@@ -486,7 +306,7 @@ def build_qtree(ksobj):
startsEnds = ksobj._debug[fieldName]['arr']
for i in range(len(subObj)):
- grandchild = build_qtree(subObj[i])
+ grandchild = buildQtree(subObj[i])
fieldLabel = '%s[%d]' % (fieldName, i)
grandchild.setLabel(fieldLabel)
@@ -501,10 +321,10 @@ def build_qtree(ksobj):
# CASE: is list of primitive objects -> create leaves
else:
child = KaitaiTreeWidgetItem()
- populate_child(ksobj, fieldName, fieldName, None, child)
+ populateChild(ksobj, fieldName, fieldName, None, child)
# TODO: explain this hack
- kstmp = KaitaiStruct(ksobj._io)
+ kstmp = kaitaistruct.KaitaiStruct(ksobj._io)
kstmp._parent = ksobj
child.setKaitaiObject(kstmp)
@@ -531,7 +351,7 @@ def build_qtree(ksobj):
child = createLeaf(fieldName, subObj)
if child:
# don't override createLeaf()'s work on label, value
- populate_child(ksobj, fieldName, None, None, child)
+ populateChild(ksobj, fieldName, None, None, child)
qwi.addChild(child)
return qwi
@@ -539,24 +359,35 @@ def build_qtree(ksobj):
def createLeaf(fieldName, obj):
objtype = type(obj)
- if objtype == types.MethodType:
+ if objtype == types.FunctionType:
+ #print('reject %s because its a function' % fieldName)
+ return None
+ elif isinstance(obj, type):
+ #print('reject %s because its a type' % fieldName)
+ return None
+ elif sys.version_info[0] == 2 and callable(obj):
+ #print('reject %s because its a callable' % fieldName)
return None
- elif objtype == types.TypeType:
+ elif sys.version_info[0] == 3 and hasattr(obj, '__call__'):
+ #print('reject %s because its a callable' % fieldName)
return None
fieldValue = None
- if objtype in [types.StringType, types.UnicodeType]:
- #if filter(lambda c: c<32 or c>127, obj):
+ if isinstance(obj, str):
fieldValue = repr(obj)
- elif objtype == types.IntType:
+ elif isinstance(obj, bytes):
+ fieldValue = repr(obj)
+ elif sys.version_info[0] == 2 and objtype == types.UnicodeType:
+ fieldValue = repr(obj)
+ elif isinstance(obj, int):
fieldValue = '0x%X (%d)' % (obj, obj)
- elif objtype == types.BooleanType:
+ elif isinstance(obj, bool):
fieldValue = '%s' % (obj)
elif str(objtype).startswith('<enum '):
fieldValue = '%s' % (obj)
else:
- #print 'field %s has type: -%s-' % (fieldName,str(objtype))
+ #print('field %s has type: -%s-' % (fieldName,str(objtype)))
pass
if fieldValue:
@@ -565,6 +396,9 @@ def createLeaf(fieldName, obj):
widget.setValue(fieldValue)
return widget
else:
+ print('rejected leaf node to %s' % fieldName)
+ print(obj)
+ print(type(obj))
return None
# ARG TYPE NOTES
@@ -572,11 +406,11 @@ def createLeaf(fieldName, obj):
# fieldName: string actual field name inside the kaitai struct
# fieldLabel: string label used in the tree view
# fieldValue: string value used in the tree view
-# widget: KaitaiTreeWidgetItem the item to which we want to imprint start/end
-def populate_child(ksobj, fieldName, fieldLabel, fieldValue, widget):
+# widget: KaitaiTreeWidgetItem the item to which we want to imprint(start/end)
+def populateChild(ksobj, fieldName, fieldLabel, fieldValue, widget):
if fieldLabel:
widget.setLabel(fieldLabel)
- #print 'setting Label: %s' % fieldLabel
+ #print('setting Label: %s' % fieldLabel)
if fieldValue:
widget.setValue(fieldValue)
@@ -596,24 +430,3 @@ def populate_child(ksobj, fieldName, fieldLabel, fieldValue, widget):
if end != None:
widget.setEnd(end)
-#------------------------------------------------------------------------------
-# main()/ - for dev testing
-#------------------------------------------------------------------------------
-
-if __name__ == '__main__':
- if not sys.argv[2:]:
- sys.exit(-1)
-
- cmd = sys.argv[1]
- fpath = sys.argv[2]
-
- if cmd == 'dump':
- parsed = parse_fpath(sys.argv[2])
- print parsed.header.program_headers
-
- elif cmd == 'dumpbinja':
- binaryView = binaryninja.BinaryViewType['Raw'].open(fpath)
- kaitaiIo = KaitaiBinaryViewIO(binaryView)
- parsed = parse_io(kaitaiIo)
- print parsed.header.program_headers
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/luks.py b/python/examples/kaitai/luks.py
index c4e33287..90ca7cd7 100644
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/luks.py
+++ b/python/examples/kaitai/luks.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/lvm2.py b/python/examples/kaitai/lvm2.py
index 459f92ca..adb0ed7d 100644
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/lvm2.py
+++ b/python/examples/kaitai/lvm2.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/archive/lzh.py b/python/examples/kaitai/lzh.py
index 8f9b75ea..3853a19d 100644
--- a/python/examples/kaitai/kaitai_struct_formats/archive/lzh.py
+++ b/python/examples/kaitai/lzh.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/executable/mach_o.py b/python/examples/kaitai/mach_o.py
index 9595184d..5ce46a75 100644
--- a/python/examples/kaitai/kaitai_struct_formats/executable/mach_o.py
+++ b/python/examples/kaitai/mach_o.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/magicavoxel_vox.py b/python/examples/kaitai/magicavoxel_vox.py
index 24841007..0fc3faaa 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/magicavoxel_vox.py
+++ b/python/examples/kaitai/magicavoxel_vox.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/mbr_partition_table.py b/python/examples/kaitai/mbr_partition_table.py
index 558dd14c..710fa3d7 100644
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/mbr_partition_table.py
+++ b/python/examples/kaitai/mbr_partition_table.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/serialization/microsoft_cfb.py b/python/examples/kaitai/microsoft_cfb.py
index d8ecb714..578835b7 100644
--- a/python/examples/kaitai/kaitai_struct_formats/serialization/microsoft_cfb.py
+++ b/python/examples/kaitai/microsoft_cfb.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/microsoft_network_monitor_v2.py b/python/examples/kaitai/microsoft_network_monitor_v2.py
index 7fec8613..3d0a14f6 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/microsoft_network_monitor_v2.py
+++ b/python/examples/kaitai/microsoft_network_monitor_v2.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/executable/microsoft_pe.py b/python/examples/kaitai/microsoft_pe.py
index 054f8b96..325b823a 100644
--- a/python/examples/kaitai/kaitai_struct_formats/executable/microsoft_pe.py
+++ b/python/examples/kaitai/microsoft_pe.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/hardware/mifare/mifare_classic.py b/python/examples/kaitai/mifare_classic.py
index 041cbbb8..72414493 100644
--- a/python/examples/kaitai/kaitai_struct_formats/hardware/mifare/mifare_classic.py
+++ b/python/examples/kaitai/mifare_classic.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ....kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/cad/monomakh_sapr_chg.py b/python/examples/kaitai/monomakh_sapr_chg.py
index 8934cfd1..0e7e6400 100644
--- a/python/examples/kaitai/kaitai_struct_formats/cad/monomakh_sapr_chg.py
+++ b/python/examples/kaitai/monomakh_sapr_chg.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/serialization/msgpack.py b/python/examples/kaitai/msgpack.py
index 4b8b2036..cc14238d 100644
--- a/python/examples/kaitai/kaitai_struct_formats/serialization/msgpack.py
+++ b/python/examples/kaitai/msgpack.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/scientific/nt_mdt/nt_mdt.py b/python/examples/kaitai/nt_mdt.py
index 1e270032..8a0a1184 100644
--- a/python/examples/kaitai/kaitai_struct_formats/scientific/nt_mdt/nt_mdt.py
+++ b/python/examples/kaitai/nt_mdt.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ....kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/scientific/nt_mdt/nt_mdt_pal.py b/python/examples/kaitai/nt_mdt_pal.py
index bade549c..ca3f8958 100644
--- a/python/examples/kaitai/kaitai_struct_formats/scientific/nt_mdt/nt_mdt_pal.py
+++ b/python/examples/kaitai/nt_mdt_pal.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ....kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/ogg.py b/python/examples/kaitai/ogg.py
index 415d6bdf..7396c1b3 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/ogg.py
+++ b/python/examples/kaitai/ogg.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/security/openpgp_message.py b/python/examples/kaitai/openpgp_message.py
index 712953a3..f68af285 100644
--- a/python/examples/kaitai/kaitai_struct_formats/security/openpgp_message.py
+++ b/python/examples/kaitai/openpgp_message.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
@@ -358,7 +357,7 @@ class OpenpgpMessage(KaitaiStruct):
class RevocationKey(KaitaiStruct):
- SEQ_FIELDS = ["class", "public_key_algorithm", "fingerprint"]
+ SEQ_FIELDS = ["class_", "public_key_algorithm", "fingerprint"]
def __init__(self, _io, _parent=None, _root=None):
self._io = _io
self._parent = _parent
@@ -366,9 +365,9 @@ class OpenpgpMessage(KaitaiStruct):
self._debug = collections.defaultdict(dict)
def _read(self):
- self._debug['class']['start'] = self._io.pos()
- self.class = self._io.read_u1()
- self._debug['class']['end'] = self._io.pos()
+ self._debug['class_']['start'] = self._io.pos()
+ self.class_ = self._io.read_u1()
+ self._debug['class_']['end'] = self._io.pos()
self._debug['public_key_algorithm']['start'] = self._io.pos()
self.public_key_algorithm = KaitaiStream.resolve_enum(self._root.PublicKeyAlgorithms, self._io.read_u1())
self._debug['public_key_algorithm']['end'] = self._io.pos()
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/packet_ppi.py b/python/examples/kaitai/packet_ppi.py
index b213460a..aa16a322 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/packet_ppi.py
+++ b/python/examples/kaitai/packet_ppi.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/pcap.py b/python/examples/kaitai/pcap.py
index 609a278d..bf814663 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/pcap.py
+++ b/python/examples/kaitai/pcap.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/pcx.py b/python/examples/kaitai/pcx.py
index a343ff3a..2b6123d5 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/pcx.py
+++ b/python/examples/kaitai/pcx.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/pcx_dcx.py b/python/examples/kaitai/pcx_dcx.py
index a559ec30..7c6376bc 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/pcx_dcx.py
+++ b/python/examples/kaitai/pcx_dcx.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/png.py b/python/examples/kaitai/png.py
index 751e1596..4a494756 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/png.py
+++ b/python/examples/kaitai/png.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
import zlib
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/protocol_body.py b/python/examples/kaitai/protocol_body.py
index 12d17565..951c1a82 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/protocol_body.py
+++ b/python/examples/kaitai/protocol_body.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/psx_tim.py b/python/examples/kaitai/psx_tim.py
index 3c70a905..3a3fa0b4 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/psx_tim.py
+++ b/python/examples/kaitai/psx_tim.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/executable/python_pyc_27.py b/python/examples/kaitai/python_pyc_27.py
index 2ac4154d..d4c4db01 100644
--- a/python/examples/kaitai/kaitai_struct_formats/executable/python_pyc_27.py
+++ b/python/examples/kaitai/python_pyc_27.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/quake_mdl.py b/python/examples/kaitai/quake_mdl.py
index 7077e8f8..2a6ec048 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/quake_mdl.py
+++ b/python/examples/kaitai/quake_mdl.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/quake_pak.py b/python/examples/kaitai/quake_pak.py
index 3b4c0358..7eea7b3c 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/quake_pak.py
+++ b/python/examples/kaitai/quake_pak.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/quicktime_mov.py b/python/examples/kaitai/quicktime_mov.py
index eb2f5c9b..77733656 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/quicktime_mov.py
+++ b/python/examples/kaitai/quicktime_mov.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/archive/rar.py b/python/examples/kaitai/rar.py
index e9f4787e..88548a4b 100644
--- a/python/examples/kaitai/kaitai_struct_formats/archive/rar.py
+++ b/python/examples/kaitai/rar.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/windows/regf.py b/python/examples/kaitai/regf.py
index 13145ad1..de883bc3 100644
--- a/python/examples/kaitai/kaitai_struct_formats/windows/regf.py
+++ b/python/examples/kaitai/regf.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/renderware_binary_stream.py b/python/examples/kaitai/renderware_binary_stream.py
index 5e27c895..00b36934 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/renderware_binary_stream.py
+++ b/python/examples/kaitai/renderware_binary_stream.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/rtcp_payload.py b/python/examples/kaitai/rtcp_payload.py
index 7450b3e7..c10066d1 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/rtcp_payload.py
+++ b/python/examples/kaitai/rtcp_payload.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/rtp_packet.py b/python/examples/kaitai/rtp_packet.py
index 64e50cba..cedcd0f9 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/rtp_packet.py
+++ b/python/examples/kaitai/rtp_packet.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/serialization/ruby_marshal.py b/python/examples/kaitai/ruby_marshal.py
index 08b35625..92deee38 100644
--- a/python/examples/kaitai/kaitai_struct_formats/serialization/ruby_marshal.py
+++ b/python/examples/kaitai/ruby_marshal.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/tracker_modules/s3m.py b/python/examples/kaitai/s3m.py
index 472291fc..bc2dcb19 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/tracker_modules/s3m.py
+++ b/python/examples/kaitai/s3m.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ....kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/saints_row_2_vpp_pc.py b/python/examples/kaitai/saints_row_2_vpp_pc.py
index 91be64ea..2c3dd1f8 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/saints_row_2_vpp_pc.py
+++ b/python/examples/kaitai/saints_row_2_vpp_pc.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/geospatial/shapefile_index.py b/python/examples/kaitai/shapefile_index.py
index b89c920b..4fbc7142 100644
--- a/python/examples/kaitai/kaitai_struct_formats/geospatial/shapefile_index.py
+++ b/python/examples/kaitai/shapefile_index.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/geospatial/shapefile_main.py b/python/examples/kaitai/shapefile_main.py
index db37191c..7a64087e 100644
--- a/python/examples/kaitai/kaitai_struct_formats/geospatial/shapefile_main.py
+++ b/python/examples/kaitai/shapefile_main.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/scientific/spectroscopy/specpr.py b/python/examples/kaitai/specpr.py
index 87205ada..4f23d4ca 100644
--- a/python/examples/kaitai/kaitai_struct_formats/scientific/spectroscopy/specpr.py
+++ b/python/examples/kaitai/specpr.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ....kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/database/sqlite3.py b/python/examples/kaitai/sqlite3.py
index 94781796..bb878099 100644
--- a/python/examples/kaitai/kaitai_struct_formats/database/sqlite3.py
+++ b/python/examples/kaitai/sqlite3.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/security/ssh_public_key.py b/python/examples/kaitai/ssh_public_key.py
index cb912c06..bf1375d6 100644
--- a/python/examples/kaitai/kaitai_struct_formats/security/ssh_public_key.py
+++ b/python/examples/kaitai/ssh_public_key.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/standard_midi_file.py b/python/examples/kaitai/standard_midi_file.py
index 6cd7c246..bd6305a7 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/standard_midi_file.py
+++ b/python/examples/kaitai/standard_midi_file.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/stl.py b/python/examples/kaitai/stl.py
index 381f3319..18971107 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/stl.py
+++ b/python/examples/kaitai/stl.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/executable/swf.py b/python/examples/kaitai/swf.py
index cb7022c2..dc39fd00 100644
--- a/python/examples/kaitai/kaitai_struct_formats/executable/swf.py
+++ b/python/examples/kaitai/swf.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
import zlib
diff --git a/python/examples/kaitai/kaitai_struct_formats/log/systemd_journal.py b/python/examples/kaitai/systemd_journal.py
index 61d6fa93..214757d9 100644
--- a/python/examples/kaitai/kaitai_struct_formats/log/systemd_journal.py
+++ b/python/examples/kaitai/systemd_journal.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/tcp_segment.py b/python/examples/kaitai/tcp_segment.py
index 222f6794..e329d84c 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/tcp_segment.py
+++ b/python/examples/kaitai/tcp_segment.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/tga.py b/python/examples/kaitai/tga.py
index 7939bbc2..5ba11862 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/tga.py
+++ b/python/examples/kaitai/tga.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/tls_client_hello.py b/python/examples/kaitai/tls_client_hello.py
index 118eec3d..b5c6cba8 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/tls_client_hello.py
+++ b/python/examples/kaitai/tls_client_hello.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/tr_dos_image.py b/python/examples/kaitai/tr_dos_image.py
index ce0bdc3b..70298f7a 100644
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/tr_dos_image.py
+++ b/python/examples/kaitai/tr_dos_image.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/database/tsm.py b/python/examples/kaitai/tsm.py
index 48000456..45c99191 100644
--- a/python/examples/kaitai/kaitai_struct_formats/database/tsm.py
+++ b/python/examples/kaitai/tsm.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/font/ttf.py b/python/examples/kaitai/ttf.py
index bec99a49..1d493208 100644
--- a/python/examples/kaitai/kaitai_struct_formats/font/ttf.py
+++ b/python/examples/kaitai/ttf.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/udp_datagram.py b/python/examples/kaitai/udp_datagram.py
index d3cac12f..fcaadffa 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/udp_datagram.py
+++ b/python/examples/kaitai/udp_datagram.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/firmware/uimage.py b/python/examples/kaitai/uimage.py
index fb5b31f3..8d588ae9 100644
--- a/python/examples/kaitai/kaitai_struct_formats/firmware/uimage.py
+++ b/python/examples/kaitai/uimage.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/vdi.py b/python/examples/kaitai/vdi.py
index 8dd8a775..211c2708 100644
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/vdi.py
+++ b/python/examples/kaitai/vdi.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/vfat.py b/python/examples/kaitai/vfat.py
index 38ec9d3a..ff6b2cbb 100644
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/vfat.py
+++ b/python/examples/kaitai/vfat.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/view.py b/python/examples/kaitai/view.py
index f861b275..341d4dc1 100644
--- a/python/examples/kaitai/view.py
+++ b/python/examples/kaitai/view.py
@@ -1,4 +1,11 @@
+# python stuff
+import io
+import os
+import sys
+import types
import traceback
+
+# binja stuff
import binaryninjaui
from binaryninja.settings import Settings
from binaryninja import log
@@ -8,11 +15,10 @@ from binaryninja import binaryview
from PySide2.QtWidgets import QScrollArea, QWidget, QVBoxLayout, QGroupBox, QTreeWidget, QTreeWidgetItem, QLineEdit
from PySide2.QtCore import Qt
-import types
-
-import kshelpers
-from kaitaistruct import KaitaiStruct
-import io
+if sys.version_info[0] == 2:
+ import kshelpers
+else:
+ from . import kshelpers
class KaitaiView(QScrollArea, View):
def __init__(self, parent, binaryView):
@@ -66,12 +72,12 @@ class KaitaiView(QScrollArea, View):
kaitaiIO = kshelpers.KaitaiBinaryViewIO(self.binaryView)
if not kaitaiIO:
- print 'ERROR: initializing kaitai binary view'
- parsed = kshelpers.parse_io(kaitaiIO)
+ print('ERROR: initializing kaitai binary view')
+ parsed = kshelpers.parseIo(kaitaiIO)
if not parsed:
- print 'ERROR: parsing the binary view'
+ print('ERROR: parsing the binary view')
- tree = kshelpers.build_qtree(parsed)
+ tree = kshelpers.buildQtree(parsed)
if not tree:
return
@@ -118,7 +124,7 @@ class KaitaiView(QScrollArea, View):
return middle
def setCurrentOffset(self, offset):
- print 'setCurrentOffset(0x%X)' % offset
+ print('setCurrentOffset(0x%X)' % offset)
self.rootSelectionStart = offset
UIContext.updateStatus(True)
@@ -192,7 +198,7 @@ class KaitaiView(QScrollArea, View):
self.ioCurrent = _io
# now position selection in whatever HexEditor is current
- #print 'selecting to [0x%X, 0x%X)' % (start, end)
+ #print('selecting to [0x%X, 0x%X)' % (start, end))
self.hexWidget.setSelectionRange(start, end)
# set hex group title to reflect current selection
@@ -209,25 +215,33 @@ class KaitaiViewType(ViewType):
priority = 0
isExec = binaryView.executable
- weRecognize = kshelpers.id_data(binaryView.read(0,16)) != None
+ weRecognize = kshelpers.idData(binaryView.read(0,16), len(binaryView)) != None
# NOTE: ui/shared/hexeditor.cpp has the hex editor at priority 20 when
# executable, and 10 otherwise
- if isExec and weRecognize:
- #print 'priority=25 to slightly beat out the hex editor case=(executable, recognize)'
- priority = 25
- if isExec and not weRecognize:
- #print 'priority=15 to lose to the hex editor case=(executable, !recognize)'
- priority = 15
- if not isExec and weRecognize:
- #print 'priority=100 to beat out everything case=(!executable, recognize)'
- priority = 100
- if not isExec and not weRecognize:
- #print 'priority=5 to lose to hex editor case=(!executable, !recognize)'
- priority = 5
+ if not weRecognize:
+ priority = 0
+ else:
+ if isExec:
+ priority = 21
+ else:
+ priority = 11
+
+# if isExec and weRecognize:
+# print('priority=25 to slightly beat out the hex editor case=(executable, recognize)')
+# priority = 25
+# if isExec and not weRecognize:
+# print('priority=15 to lose to the hex editor case=(executable, !recognize)')
+# priority = 15
+# if not isExec and weRecognize:
+# print('priority=100 to beat out everything case=(!executable, recognize)')
+# priority = 100
+# if not isExec and not weRecognize:
+# print('priority=5 to lose to hex editor case=(!executable, !recognize)')
+# priority = 5
- #print 'returning priority=%d for KaitaiViewType' % priority
+ #print('returning priority=%d for KaitaiViewType' % priority)
return priority
def create(self, binaryView, view_frame):
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/vlq_base128_be.py b/python/examples/kaitai/vlq_base128_be.py
index 826cdd95..69dce835 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/vlq_base128_be.py
+++ b/python/examples/kaitai/vlq_base128_be.py
@@ -1,7 +1,7 @@
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/serialization/vlq_base128_le.py b/python/examples/kaitai/vlq_base128_le.py
index 407fdac7..6fa8d43b 100644
--- a/python/examples/kaitai/kaitai_struct_formats/serialization/vlq_base128_le.py
+++ b/python/examples/kaitai/vlq_base128_le.py
@@ -1,7 +1,7 @@
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/filesystem/vmware_vmdk.py b/python/examples/kaitai/vmware_vmdk.py
index 79ad7e9a..224d4c7a 100644
--- a/python/examples/kaitai/kaitai_struct_formats/filesystem/vmware_vmdk.py
+++ b/python/examples/kaitai/vmware_vmdk.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/vp8_ivf.py b/python/examples/kaitai/vp8_ivf.py
index 38ef9ece..05c19326 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/vp8_ivf.py
+++ b/python/examples/kaitai/vp8_ivf.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/game/warcraft_2_pud.py b/python/examples/kaitai/warcraft_2_pud.py
index a76f83d9..76908aad 100644
--- a/python/examples/kaitai/kaitai_struct_formats/game/warcraft_2_pud.py
+++ b/python/examples/kaitai/warcraft_2_pud.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/media/wav.py b/python/examples/kaitai/wav.py
index 0a151964..f05f958f 100644
--- a/python/examples/kaitai/kaitai_struct_formats/media/wav.py
+++ b/python/examples/kaitai/wav.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/log/windows_evt_log.py b/python/examples/kaitai/windows_evt_log.py
index 5e12d111..99c8e26b 100644
--- a/python/examples/kaitai/kaitai_struct_formats/log/windows_evt_log.py
+++ b/python/examples/kaitai/windows_evt_log.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/windows/windows_lnk_file.py b/python/examples/kaitai/windows_lnk_file.py
index 76bd391b..6de2cb52 100644
--- a/python/examples/kaitai/kaitai_struct_formats/windows/windows_lnk_file.py
+++ b/python/examples/kaitai/windows_lnk_file.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/windows/windows_minidump.py b/python/examples/kaitai/windows_minidump.py
index b2846588..8a9a0502 100644
--- a/python/examples/kaitai/kaitai_struct_formats/windows/windows_minidump.py
+++ b/python/examples/kaitai/windows_minidump.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/windows/windows_resource_file.py b/python/examples/kaitai/windows_resource_file.py
index 5026cb0f..c18fd91b 100644
--- a/python/examples/kaitai/kaitai_struct_formats/windows/windows_resource_file.py
+++ b/python/examples/kaitai/windows_resource_file.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
from enum import Enum
diff --git a/python/examples/kaitai/kaitai_struct_formats/windows/windows_shell_items.py b/python/examples/kaitai/windows_shell_items.py
index a1805915..93a1ccbc 100644
--- a/python/examples/kaitai/kaitai_struct_formats/windows/windows_shell_items.py
+++ b/python/examples/kaitai/windows_shell_items.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/network/windows_systemtime.py b/python/examples/kaitai/windows_systemtime.py
index 2f3bc5df..18823c8a 100644
--- a/python/examples/kaitai/kaitai_struct_formats/network/windows_systemtime.py
+++ b/python/examples/kaitai/windows_systemtime.py
@@ -1,7 +1,7 @@
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/wmf.py b/python/examples/kaitai/wmf.py
index e0342b3c..6cb1c74e 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/wmf.py
+++ b/python/examples/kaitai/wmf.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
@@ -101,7 +100,7 @@ class Wmf(KaitaiStruct):
masknotpen = 3
notcopypen = 4
maskpennot = 5
- not = 6
+ not_ = 6
xorpen = 7
notmaskpen = 8
maskpen = 9
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/xwd.py b/python/examples/kaitai/xwd.py
index 8ec1ff03..93dfb534 100644
--- a/python/examples/kaitai/kaitai_struct_formats/image/xwd.py
+++ b/python/examples/kaitai/xwd.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections
diff --git a/python/examples/kaitai/kaitai_struct_formats/archive/zip.py b/python/examples/kaitai/zip.py
index 1f6894dd..9fe85264 100644
--- a/python/examples/kaitai/kaitai_struct_formats/archive/zip.py
+++ b/python/examples/kaitai/zip.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
+from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
from enum import Enum
import collections