Skip to main content

Objectfile library for Python

Project description

https://github.com/christoph2/objutils/raw/master/docs/objutils_banner.png

PyPI Python Versions License: GPLv2 Code style: black Ask DeepWiki PDF Manual

Binary data stored in hex-files is in widespread use especially in embedded systems applications. objutils gives you programmatic access to a wide array of formats and offers a practical API to work with such data.

Get the latest version from Github

Installation

pip install objutils

For development (editable install):

pip install -e .

Or with Poetry:

poetry install

Prerequisites

  • Python >= 3.9

Features

  • Read ELF files (including symbols) and extract loadable sections.

  • Inspect PE/COFF files and symbols (optional PDB support).

  • Typed access (scalars, arrays, strings) to binary data.

Recent improvements

  • New oj-dwarf-import CLI replaces dwarfer.py/cu_info.py for DWARF imports, CU listing, summaries, and attribute traversal.

  • Faster DWARF imports: batched ORM writes, quiet flag propagation, and safe DWARF expression evaluation keep large ELF files stable.

  • Exception handling and typing tightened across DWARF/ELF/PECOFF modules and public APIs to surface real errors without masking them.

  • ElfParser.close() releases SQLite/mmap handles; examples/tests now close parsers to avoid database locks.

  • S-Record metadata stays minimal and numeric (no data records mixed in); Mostec/Tek SREC roundtrips now reproduce expected files.

  • Fortran-ordered ndarray reads/writes honor legacy column-major expectations; hexdump empty rows keep canonical spacing.

Supported HEX formats

objutils supports a bunch of HEX formats…

Current

  • codec / format name

  • ihex (Intel HEX)

  • shf (S Hexdump (rfc4194))

  • srec (Motorola S-Records)

  • titxt (Texas Instruments Text)

Historical

  • codec / format name

  • ash (ASCII Space Hex)

  • cosmac (RCA Cosmac)

  • emon52 (Elektor EMON52)

  • etek (Tektronix Extended Hexadecimal)

  • fpc (Four Packed Code)

  • mostec (MOS Technology)

  • rca (RCA)

  • sig (Signetics)

  • tek (Tektronix Hexadecimal)

codec is the first parameter to dump() / load() functions, e.g.:

img = objutils.load("ihex", "myHexFile.hex")     # Load an Intel HEX file...
objutils.dump("srec", "mySRecFile.srec", img)    # and save it as S-Records.

First steps

If you are interested, what objutils provides to you out-of-the-box, refer to Scripts documentation.

In any case, you should work through the following tutorial:

First import all classes and functions used in this tutorial.

from objutils import Image, Section, dump, dumps, load, loads

Everything starts with hello world…

sec0 = Section(start_address = 0x1000, data = "Hello HEX world!")

The constructor parameters to Section reflect what they are about: A continuous area of memory with an start address.

data is not necessarily a string, array.array**s, **byte, bytearray will also do, or from an internal point of view: everything that is convertible to bytearray could be used.

Note: start_address and data are positional arguments, so there is no need to use them as keywords (just for the sake of illustration).

Now let’s inspect our section.

sec0.hexdump()

00001000  48 65 6c 6c 6f 20 48 45 58 20 77 6f 72 6c 64 21  |Hello HEX world!|
---------------
       16 bytes
---------------

hexdump() gives us, what in the world of hackers is known as a canonical hexdump.

HEX files usually consist of more than one section, so let’s create another one.

sec1 = Section(0x2000, range(1, 17))
sec1.hexdump()

00002000  01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10  |................|
---------------
       16 bytes
---------------

Now, let’s glue together our sections.

img0 = Image([sec0, sec1])
print(img0)

Section(address = 0X00001000, length = 16, data = b'Hello HEX world!')
Section(address = 0X00002000, length = 16, data = b'\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10')

Images are obviously a container for sections, and they are always involved if you are interacting with disk based HEX files.

dump("srec", "example0.srec", img0)

The resulting file could be inspected from command line.

$ cat example0.srec
S113100048656C6C6F2048455820776F726C64217A
S11320000102030405060708090A0B0C0D0E0F1044

And loaded again…

img1 = load("srec", "example0.srec")
print(img1)

Section(address = 0X00001000, length = 16, data = b'Hello HEX world!')
Section(address = 0X00002000, length = 16, data = b'\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10')

This leads to the conversion idiom.

img1 = load("srec", "example0.srec")
dump("ihex", "example0.hex", img1)

Note: the formats above listed as historical are for one good reason historical: they are only 16bit wide, so if you want to convert, say a srec file for a 32bit MCU to them, you’re out of luck.

OK, we’re starting another session.

sec0 = Section(0x100, range(1, 9))
sec1 = Section(0x108, range(9, 17))
img0 = Image([sec0, sec1])
print(img0)

Section(address = 0X00000100, length = 16, data = b'\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10')

img0.hexdump()

Section #0000
-------------
00000100  01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10  |................|
---------------
       16 bytes
---------------

Two sections with consecutive address ranges concatenated to one, this may or may not what you are expected.

For this reason Image has a join parameter.

sec0 = Section(0x100, range(1, 9))
sec1 = Section(0x108, range(9, 17))
img0 = Image([sec0, sec1], join = False)
print(img0)

Section(address = 0X00000100, length = 8, data = b'\x01\x02\x03\x04\x05\x06\x07\x08')
Section(address = 0X00000108, length = 8, data = b'\t\n\x0b\x0c\r\x0e\x0f\x10')

img0.hexdump()

Section #0000
-------------
00000100  01 02 03 04 05 06 07 08                          |........        |
---------------
        8 bytes
---------------

Section #0001
-------------
00000108  09 0a 0b 0c 0d 0e 0f 10                          |........        |
---------------
        8 bytes
---------------

One feature that sets objutils apart from other libraries of this breed is typified access.

We are starting with a new image.

img0 = Image([Section(0x1000, bytes(64))])
print(img0)

Section(address = 0X00001000, length = 64, data = b'\x00\x00\x00\x00\x00\x00\x00...00\x00\x00\x00\x00\x00\x00\x00')

We are now writing a string to our image.

img0 = Image([Section(0x1000, bytes(64))])
img0.write(0x1010, [0xff])
img0.hexdump()

Section #0000
-------------
00001000  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00001010  ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00001020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00001030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|

img0.write_string(0x1000, "Hello HEX world!")
img0.hexdump()

Section #0000
-------------
00001000  48 65 6c 6c 6f 20 48 45 58 20 77 6f 72 6c 64 21  |Hello HEX world!|
00001010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
          *
00001030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
---------------
       64 bytes
---------------

Notice the difference? In our Section example above, the string passed as a data parameter was just a bunch of bytes, but now it is a “real” C-string (there is a opposite function, read_string, that scans for a terminating NULL character).

Use write() and read() functions, if you want to access plain bytes.

But there is also support for numerical types.

img0 = Image([Section(0x1000, bytes(64))])
img0.write_numeric(0x1000, 0x10203040, "uint32_be")
img0.write_numeric(0x1004, 0x50607080, "uint32_le")
img0.hexdump()

Section #0000
-------------
00001000  10 20 30 40 80 70 60 50 00 00 00 00 00 00 00 00  |. 0@.p`P........|
00001010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
          *
00001030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
---------------
       64 bytes
---------------

The folling types are supported:

  • uint8

  • int8

  • uint16

  • int16

  • uint32

  • int32

  • uint64

  • int64

  • float32

  • float64

In any case, endianess suffixes _be or _le are required.

For ASAM workflows there are dedicated helpers with explicit byte-order names:

img0 = Image([Section(0x1000, bytes(64))])
img0.write_asam_numeric(0x1000, 0x11223344, "ULONG", "MSB_FIRST")
img0.write_asam_numeric(0x1004, 0x11223344, "ULONG", "MSB_FIRST_MSW_LAST")
img0.write_asam_numeric(0x1008, 0x11223344, "ULONG", "MSB_LAST_MSW_FIRST")

print(hex(img0.read_asam_numeric(0x1000, "ULONG", "MSB_FIRST")))
print(hex(img0.read_asam_numeric(0x1004, "ULONG", "MSB_FIRST_MSW_LAST")))
print(hex(img0.read_asam_numeric(0x1008, "ULONG", "MSB_LAST_MSW_FIRST")))

# All reads print 0x11223344 again.

Supported ASAM byte orders:

  • MSB_FIRST

  • MSB_LAST

  • MSB_FIRST_MSW_LAST (word-swap)

  • MSB_LAST_MSW_FIRST (word-swap)

  • LITTLE_ENDIAN (legacy alias for MSB_LAST)

  • BIG_ENDIAN (legacy alias for MSB_FIRST)

Supported ASAM numeric datatypes:

  • UBYTE, SBYTE

  • UWORD, SWORD

  • ULONG, SLONG

  • A_UINT64, A_INT64

  • FLOAT16_IEEE, FLOAT32_IEEE, FLOAT64_IEEE

ASAM string helpers are available, too:

img0.write_asam_string(0x1020, "MOTOR", "ASCII")
img0.write_asam_string(0x1030, "Drehzahl", "UTF8")

print(img0.read_asam_string(0x1020, "ASCII"))
print(img0.read_asam_string(0x1030, "UTF8"))

Supported ASAM string datatypes:

  • ASCII

  • UTF8

  • UTF16

  • UTF32

Arrays are also supported.

img0 = Image([Section(0x1000, bytes(64))])
img0.write_numeric_array(0x1000, [0x1000, 0x2000, 0x3000, 0x4000, 0x5000, 0x6000, 0x7000, 0x8000], "uint16_le")
img0.hexdump()

Section #0000
-------------
00001000  00 10 00 20 00 30 00 40 00 50 00 60 00 70 00 80  |... .0.@.P.`.p..|
00001010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
          *
00001030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
---------------
       64 bytes
---------------

This concludes our tutorial for now, but there is more stuff to follow…

Documentation

For full documentation, including installation, tutorials and PDF documents, please see Readthedocs

Bugs/Requests

Please use the GitHub issue tracker to submit bugs or request features

References

Here is an overview of some of the classic hex-file formats.

Authors

License

This project is licensed under the GNU General Public License v2.0

Contribution

If you contribute code to this project, you are implicitly allowing your code to be distributed under the GNU General Public License v2.0. You are also implicitly verifying that all code is your original work.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

objutils-0.10.8.tar.gz (442.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

objutils-0.10.8-cp314-cp314-win_arm64.whl (939.6 kB view details)

Uploaded CPython 3.14Windows ARM64

objutils-0.10.8-cp314-cp314-win_amd64.whl (966.1 kB view details)

Uploaded CPython 3.14Windows x86-64

objutils-0.10.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

objutils-0.10.8-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

objutils-0.10.8-cp314-cp314-macosx_11_0_arm64.whl (926.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

objutils-0.10.8-cp313-cp313-win_arm64.whl (841.1 kB view details)

Uploaded CPython 3.13Windows ARM64

objutils-0.10.8-cp313-cp313-win_amd64.whl (862.7 kB view details)

Uploaded CPython 3.13Windows x86-64

objutils-0.10.8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (945.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

objutils-0.10.8-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (904.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

objutils-0.10.8-cp313-cp313-macosx_11_0_arm64.whl (839.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

objutils-0.10.8-cp312-cp312-win_arm64.whl (755.1 kB view details)

Uploaded CPython 3.12Windows ARM64

objutils-0.10.8-cp312-cp312-win_amd64.whl (770.9 kB view details)

Uploaded CPython 3.12Windows x86-64

objutils-0.10.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (833.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

objutils-0.10.8-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (802.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

objutils-0.10.8-cp312-cp312-macosx_11_0_arm64.whl (753.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

objutils-0.10.8-cp311-cp311-win_arm64.whl (669.1 kB view details)

Uploaded CPython 3.11Windows ARM64

objutils-0.10.8-cp311-cp311-win_amd64.whl (679.1 kB view details)

Uploaded CPython 3.11Windows x86-64

objutils-0.10.8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (720.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

objutils-0.10.8-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (699.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

objutils-0.10.8-cp311-cp311-macosx_11_0_arm64.whl (666.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

objutils-0.10.8-cp310-cp310-win_arm64.whl (583.1 kB view details)

Uploaded CPython 3.10Windows ARM64

objutils-0.10.8-cp310-cp310-win_amd64.whl (588.0 kB view details)

Uploaded CPython 3.10Windows x86-64

objutils-0.10.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (608.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

objutils-0.10.8-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (597.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

objutils-0.10.8-cp310-cp310-macosx_11_0_arm64.whl (580.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file objutils-0.10.8.tar.gz.

File metadata

  • Download URL: objutils-0.10.8.tar.gz
  • Upload date:
  • Size: 442.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.10.8.tar.gz
Algorithm Hash digest
SHA256 0f65d3e7e118665c507500850b9a30ef2a3a45b4278f8641c7a8ce5e1619e42c
MD5 cd1089a36c360bd8b4a5f5e6da91a51f
BLAKE2b-256 08eb39549807c3e4de3e93212bf1fe1cb2f13dc44d5a00af20f019fac61b6589

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8.tar.gz:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.8-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 939.6 kB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.10.8-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 9365ab54550af71fb2544b75a563e49bb948c90ed7326a680cea26de03f222da
MD5 afe7c3558c4c1d093a0120f73336323d
BLAKE2b-256 4fe42aa5f890a8dd8f66e99e1221d11d6710e1f05f509f78b6d7da127291c2bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp314-cp314-win_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.8-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 966.1 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.10.8-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 da09febcfe97639fc123627f26197fc4451a75e2714e5df61eb48583661318f3
MD5 1e2e9a8b778a77c0d426453b42083a07
BLAKE2b-256 1743d92fcb775cc11b3400e1d2dec486cb90e03cbfed82431dec51079a322213

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp314-cp314-win_amd64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 29a4d74cb30bfb0a6b29b30aae6c90ce46dd8d1fc9235a81a054aea8d27726f7
MD5 fdb0e14b23a55b98b6780a8b41eca843
BLAKE2b-256 51508c4382545c03113f85da9ae183278658724be27355e9378ae38ba4490089

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a3e8642d68e05eff57053f77400f184b9f2297cc2972dd3ad74e767d105df418
MD5 b4527ad9246e3fc41c8aaccf709b5265
BLAKE2b-256 cc7b4c3c2d005ae6c39dcfabfd6f7069e2ed5d581d6cef6b8399afbbbd0c9543

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 af1fa316d3c8be17188a803a31db975b524d1f0833f6f7a36b2828100f9d377f
MD5 d08953dfcb5b3d973b9e16d73834b616
BLAKE2b-256 a27b315f36bfd6a2c07ff7bed9d44c06a9bdb1ece0346a1fd15ba9f1421703b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.8-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 841.1 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.10.8-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 64a2104f21e53e9da9d0621a4338ce9ccc6362e7db991a65f18ebf9205a0c146
MD5 faf21046068acc3d153d447b5acc31b5
BLAKE2b-256 df0a3504b4d5a2ae2a7067819ca9c5bcf0e99905f1e503632933a8a25bd54590

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp313-cp313-win_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.8-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 862.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.10.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d56ba02265df67fc53627b79f7f63ff010d7c979dfb03a7c2fc094a959837410
MD5 90ac1e47369f391bce1d946c7bac8925
BLAKE2b-256 c410aac5d5d56f9e1c80ab09b4fa4e2410ecd443e40665a8957bcd3579380b37

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp313-cp313-win_amd64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2675b0a3e064ba4488bb46826b0a6e8b6d02e30b9c7843008ebb72f65ace55c0
MD5 e91affd3f44da8003a359a8eaba6578d
BLAKE2b-256 e9a639813c52c6451a3d8d124eab06cd1dcccafb2bcd780760a66d440cced568

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9102cfa7042876c449ce067aa5542545fb4200b36b192727019f3cac0a9911db
MD5 9546696b6c519b87e95663c575e8b2c1
BLAKE2b-256 6f694cd11b2b8874c640e907d5426641b793a324e6cde6ef9f6bb803d7a02cc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f4180686817d1b8b11850591677d2431812af1f89c51cfd82c9376f763881c44
MD5 c398b76652271038bd6017fcbb19134b
BLAKE2b-256 069333329c39bf87fe1f219a61b8ef8aeaba737d979d1e422fe048cb12a6aa1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.8-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 755.1 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.10.8-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 4d38ecb54b1b5e5afe3e63cabde11675ac05cd04619021e39fc70361926eff41
MD5 7e166aa3d2ebe773154fb1c89060668d
BLAKE2b-256 eb0aea156cebae4ebca6d2d4a99ae9e803ed56a1daa8f900936f5c6f485e87c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp312-cp312-win_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.8-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 770.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.10.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1903d9bc7b6c2010b61694abd83c2ede457b48655769af9edae1d07bd5afd260
MD5 b0d2014c866ab14b3a60eb49fce5fab6
BLAKE2b-256 370fdec36edb0cde424e894b3dcfcffaeda40d28458f2c7a0c7965eb990d2379

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp312-cp312-win_amd64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eec61098e14b75210e89aa612db47b45e3e188e06251c1cfe2721eef7a2f797e
MD5 2ae0d56ac7cbbc5e5f6c385d74e33478
BLAKE2b-256 d814f91d35e916462c30d67a92e1507fb628a7420faa9a26b58dfb39719bec00

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 85d4ce8549a550eda79751af721cf00381e12de01abec4532227acb45e496aa8
MD5 3cf63c8719844c1d8fc3ddbc815f145f
BLAKE2b-256 f5b36cdaaa0d7c8b42ea0a47bdbc454e10045ba115d303be5315f73ef9b7e5ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 127ac94e18e2e9f5e2af798b0e7b6e762337c4fe142ca4b5b188ab8770b02ad8
MD5 ef0cdbd89a5be72fdb28f53c811dcf66
BLAKE2b-256 f741e38a6bd29597b1fe54ebcfbd32518a5a865984b63b55c1b73c0ec64bca63

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.8-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 669.1 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.10.8-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 b5fb095123cd3f3d3df6a06f7b40007b63bc8a6d1b0d57ddd8786f931f479c2a
MD5 616e92fcaff490215addc9711aedf03d
BLAKE2b-256 2eab975364bae2461d059482f6d93078c1183a5f51e9d770f108ecc8522f6573

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp311-cp311-win_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.8-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 679.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.10.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 944fe98bfb0351628764417132edf5b3247b581d477645591fd156ea8ebf6baf
MD5 5b29448b2ed1d3cd1b8cf090ffdedb7e
BLAKE2b-256 18b09d64c8054832d93fa305f1088824f4a0db78434b010c393d339389415201

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp311-cp311-win_amd64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f5b2e0bc97bcac36fa9c21d037c821a486efb5878fa932daf5320da4833781f0
MD5 9abecf91f060ed164a94afe0c6ea9a00
BLAKE2b-256 6ab1e928ed69529c794adbe6e1250c2c21150779601ba4fb8176d4b780d74847

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d7c9081a72910248571465ef2101b58ff5698f3909de5a02186321140a03dadb
MD5 6201963d067821e272cbe2eaae680290
BLAKE2b-256 2c8050a4494ef6376d61c3c08afb188dfffe1d764cdc167a7544ca02f73b21fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 44c1c808f496f62f3b982bc6b9254f056839472fd364e4af40de9499ddd79eed
MD5 5aaefd8aea68c76f9ddc3abe5ba53ea4
BLAKE2b-256 df0c69a794e0f2f4bef4811bbca445dea8b18241728d4a97ab16c5b266a14ec2

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.8-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 583.1 kB
  • Tags: CPython 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.10.8-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 e2e03da5f8966985558da66b29ddf96dd746f630aa52635227bba52e44e13aac
MD5 f368c6224b081edb358a18fa5ae0f263
BLAKE2b-256 9b262cc6d6147fa360a2ff678d6e1ccd989b1186f25ffb12c908db9e179b2cdb

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp310-cp310-win_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.8-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 588.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.10.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7a12129dbc97b3c899145ae9972aa75949682adeef5592e3b56d273910c4fa96
MD5 4f315fa45049dda151a5315e18c909bc
BLAKE2b-256 8987414b7fadfc632735a131de0c94d9ea8b7ff07fcd72ecb67b82fac09c4603

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp310-cp310-win_amd64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b6177fcba1ec724946d8ce3e49ed0b8ebe25ff1ea7423e2e010bf8ece624a80e
MD5 7b84142a39cde1a0dda68703e07e8021
BLAKE2b-256 877711f312f4625b94611f57398335b3d9f34c53a5c8e34e14919f0e2bdd94a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 02f151d0ba98707aefb20ca79639980fbbc1409c8bcaa9777d1b2f0d63a30d20
MD5 0b61ad8f7425241655ec6774e55255d1
BLAKE2b-256 76da9643ab4eed33ea03d7a309997a9f5a76fd4805735584f3959008e6084362

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d0e61156585e7030fdd0ef7ff2900324cf37c68f293bbc0fc491ee321879149
MD5 9559eed2e8663c38a8ecc4c4d3b15b7d
BLAKE2b-256 51f62e98ca183c97891522eddcebaac45673571657f117afc359d12d9f73a592

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.8-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page