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.9.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.9-cp314-cp314-win_arm64.whl (939.7 kB view details)

Uploaded CPython 3.14Windows ARM64

objutils-0.10.9-cp314-cp314-win_amd64.whl (966.2 kB view details)

Uploaded CPython 3.14Windows x86-64

objutils-0.10.9-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.9-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.9-cp314-cp314-macosx_11_0_arm64.whl (926.4 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

objutils-0.10.9-cp313-cp313-win_arm64.whl (841.2 kB view details)

Uploaded CPython 3.13Windows ARM64

objutils-0.10.9-cp313-cp313-win_amd64.whl (862.8 kB view details)

Uploaded CPython 3.13Windows x86-64

objutils-0.10.9-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (946.0 kB view details)

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

objutils-0.10.9-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (904.9 kB view details)

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

objutils-0.10.9-cp313-cp313-macosx_11_0_arm64.whl (839.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

objutils-0.10.9-cp312-cp312-win_arm64.whl (755.2 kB view details)

Uploaded CPython 3.12Windows ARM64

objutils-0.10.9-cp312-cp312-win_amd64.whl (771.0 kB view details)

Uploaded CPython 3.12Windows x86-64

objutils-0.10.9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (833.4 kB view details)

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

objutils-0.10.9-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (802.1 kB view details)

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

objutils-0.10.9-cp312-cp312-macosx_11_0_arm64.whl (753.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

objutils-0.10.9-cp311-cp311-win_arm64.whl (669.2 kB view details)

Uploaded CPython 3.11Windows ARM64

objutils-0.10.9-cp311-cp311-win_amd64.whl (679.2 kB view details)

Uploaded CPython 3.11Windows x86-64

objutils-0.10.9-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (720.8 kB view details)

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

objutils-0.10.9-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (699.7 kB view details)

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

objutils-0.10.9-cp311-cp311-macosx_11_0_arm64.whl (666.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

objutils-0.10.9-cp310-cp310-win_arm64.whl (583.2 kB view details)

Uploaded CPython 3.10Windows ARM64

objutils-0.10.9-cp310-cp310-win_amd64.whl (588.1 kB view details)

Uploaded CPython 3.10Windows x86-64

objutils-0.10.9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (608.1 kB view details)

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

objutils-0.10.9-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (597.3 kB view details)

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

objutils-0.10.9-cp310-cp310-macosx_11_0_arm64.whl (580.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: objutils-0.10.9.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.9.tar.gz
Algorithm Hash digest
SHA256 c7f7779af16264e372dd3074d381940814194d6017c0a653231967bbf52c0d32
MD5 71dc6174e2d0b0e038cde9a7788a549f
BLAKE2b-256 f132989f8543538467e27b40b3fafc4cbe0222ca2708563d6bf5b01bed0eaad8

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9.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.9-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.9-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 939.7 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.9-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 9847f14ec54a73796f975ab0d3358e87ab6b2d0e87d19752db14d7e08e42a9d2
MD5 12fdfb26f1d1a1728ab5ab24874fc12b
BLAKE2b-256 d6d42e27ebbd67165d07c1044d096b065a4703e424c1ada4846aae8a07e8fc7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.9-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 966.2 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.9-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 958aa7d1e65a587cab205255ca37d89baf90fa880c7554c8e2de5e506afae3fd
MD5 30f40e5290b4256787134cf3e0d69c7d
BLAKE2b-256 f551033d18d4bd6fa6b50dff5ebb3f249c08f1bb5e139eeb3498bc198c477804

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1afb642f6fa503b00849aa0100b0bd536a7862b6b01e92b6b832cc41f1c9d850
MD5 a05beba88714c81a24eb63266ba59b6f
BLAKE2b-256 37354a4097379348a512870a31e32f643c550f53e4c0a291467cc3792ba5ed46

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 26426930c0f32493e042eaba4a73f50c621809367cc0f016cd3a8e575b751230
MD5 a48048f0a1257a9402e2d1eeefd630bf
BLAKE2b-256 8963942436febade5089b3cd1948481b871756f613ae834d39e51ddbac76eb30

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 52c676e9cd8f7ce1600cbc7548651117b61eb6e6bf9a48c82a10502112af31fb
MD5 9073e074a45aedf3e2022c860b318d7a
BLAKE2b-256 71b839729f3c31f38401afdc99242f6c40881ae059f24c0d4661c3084c347c00

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.9-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 841.2 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.9-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 a50b60277a653a96bdf5328b527a79132a19be526475af67f22a09e11df71169
MD5 8106053b2de351b416fee1db19c832ea
BLAKE2b-256 f1eda573785f61ac8e898bea209f885f735bdbb9c68f11828054c6f6b8d52878

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.9-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 862.8 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.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1284c30e629bd019d455e5c6d2668bae955ce237cfab0fb3f7bec94a57ac1d01
MD5 d591716c561f3707115a3e6c196eaa9d
BLAKE2b-256 d275b8ccc876eb4809ab28ee53cf5f8e75ccc07e28e63e69438178e48d3ea323

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d287342750adb89709d00a37f8ed944a84f9fa31dacd0bc17c3b31e06813aec0
MD5 5af4165bd835d6a767acc700b6591703
BLAKE2b-256 e224770059c647d83e8a643a6d775314b79de1b7ca4404b24e28cd7dbbe55475

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 19b4b00293f0e57b722c6cd13d234be766e17a8e1aaa484ac4007cd9e932a517
MD5 00921558a3dd39da839f5fcb03ddab74
BLAKE2b-256 bbae9388b8bb6ce477016c0b2ec393c064618f97996ecb2a00cfe782978edc53

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5fd484b74b5f5689e65bbb26f8f4f9ee9bbd24971bface70bce967ced84f4140
MD5 8f26f70068f1f5221693179856c73ed1
BLAKE2b-256 cd608f93ab68cef39d51e64ff76917118674009b20521f596b143cb7ccd80ef0

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.9-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 755.2 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.9-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 789615280f65c9f2613bed723ed4edcf2df85f6fd6b5e983d3d260f5663e904d
MD5 c4ee38476836000e4b617d0a33427d36
BLAKE2b-256 971fc8d614917240a09dfebfa7a477fd6f01ebdbf42242d1890391faf5f7989a

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.9-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 771.0 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.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 209e96e02b574588923263667b0fb3f7ba15497bf385fd1053ac7b3d33d87348
MD5 5b488529e5528d6dfcad36f63cb0f477
BLAKE2b-256 ac3c3ab2b3293d08a48c5efce37ae04130b3ee420cbad61bb24d5e85cd922cc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8aacda3ecdf6d917e767e9c2d390363e35745ceee022ef66ab49e834bfa42853
MD5 3bb19a4e5c3f7a5bf75ef48730080ff3
BLAKE2b-256 b88657e1d5d72ced93ab7801ebc2f4b6ae804ea393982467bae8cf89e8e9cb78

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5e20e27eb23e86ac2dc432399c392b21f899566c68e58678ac9816aa314bef3a
MD5 5e1f799d44d3474e23d417c9ac551b46
BLAKE2b-256 8295d6667899cc4ccb881eb791301fa38852cb15eec6d0c7a9986e324f2dc677

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9acfe71e28fb2e4578d4025c8fd76d5469b6a611e4bbd54bde626425842acbbf
MD5 ee78415a6862db6065b427d231958792
BLAKE2b-256 4c6ab5aa572e8477cfab9116fbccd35b0de0f778fe2f1aba0b4c51c70137d490

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.9-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 669.2 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.9-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 3342165d89f563815b7acfb75cd0614ab6a95f139c85cef23131ff86460812cf
MD5 60dcefafa3aef16c2bb9639dc2cb2152
BLAKE2b-256 835da0d1b1000f9492afa9391e2f3a5c9c4c26731f2e7b5996a3bea08afc1755

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.9-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 679.2 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.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d1714678063415293269bb13f08895f52184aa94c4c8579e1c73395b0750cfaa
MD5 a90090481a72b9da9dd43d79150d84da
BLAKE2b-256 66ff7e9672d2837eba1d97298c69de219a977c9ce53f8d3d642242a83c1f41ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ec6e5bb9bae5cb50f37c025fc3f556ea986ddaf7c2f1d76a9120069f1dfb5249
MD5 02fbf0114b5f538822b07a7e03d241b7
BLAKE2b-256 ff1463a0da39c9d2e8b6f3e5a6cb827f0a83d350d450137e3af6106eb4dbd174

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7ebbe1385c483be7564de2f85aac32b1e0096e346a6667e83b4bd1783314f372
MD5 fde827a0ade00017c01e1a2f2ccd40f3
BLAKE2b-256 c22d3eaaeb2c1282efdb5225a654873882eada43ed1795730b3081d9cc542082

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4c44520a23cc6228d3a54a336344939bdaaf8af69d669055fd36a241ddd152d9
MD5 c519a74620f1f78a0f247f0c6c64b27d
BLAKE2b-256 943a0ea59ca410759a539cc579b342bb81531171b5058b720cd48206bf629b33

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.9-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 583.2 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.9-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 d15474ee100f3945782b1d30a038d6d5fbb6339c08f2feb8cbf7795154e25e92
MD5 97207c62ee5b8b41ced80f36856babcc
BLAKE2b-256 ecc7963adcabda25d6a2bf2154aa6ad1ca4226ada743f978b8255ab42a770d80

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.9-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 588.1 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.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0ad161fe89c78dcbfd5cd0f0a89a2158aa7ffedaf01763ea0ca5b10684c1b3e3
MD5 037ddf5ecd868e0133c8241b091176cc
BLAKE2b-256 987cf47d19649f9d14c46683d05ecac35c65fdf4710d0b6da46ec7ae93dc553f

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3dfba09b64425f0f9f73254f0c4c45205b60cc1e518fe711f6cafb43e6a84027
MD5 195f4af7f60557c3e907b79598be70bb
BLAKE2b-256 53efc8ee100e3b97584e8c66274a69bbf56df115e19664c821058b176f7827b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2f79e5e02b40519e384f72fecac21fce10df3bddfe396a98b26f22ad148eb1de
MD5 caff775387b17ebfa35b95ab4d1d7f32
BLAKE2b-256 82d4721c8af98e0bbc7274a25514a78378d610820e89c77a160ca3aa1530adfb

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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.9-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c72e9d1aab0f9a6d636de346471bc91d99b31b6cef4c4169ef65d0e48442b2d3
MD5 a8b9c5658ac10cb68d8070e977500aaf
BLAKE2b-256 62fc68b559b5613b0ca58357f53509d6b4cff2bea1632c54e061e15890bf424a

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.9-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