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.11.tar.gz (4.4 MB 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.11-cp314-cp314-win_arm64.whl (593.5 kB view details)

Uploaded CPython 3.14Windows ARM64

objutils-0.10.11-cp314-cp314-win_amd64.whl (609.3 kB view details)

Uploaded CPython 3.14Windows x86-64

objutils-0.10.11-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (605.6 kB view details)

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

objutils-0.10.11-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (596.3 kB view details)

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

objutils-0.10.11-cp314-cp314-macosx_11_0_arm64.whl (590.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

objutils-0.10.11-cp313-cp313-win_arm64.whl (590.3 kB view details)

Uploaded CPython 3.13Windows ARM64

objutils-0.10.11-cp313-cp313-win_amd64.whl (606.1 kB view details)

Uploaded CPython 3.13Windows x86-64

objutils-0.10.11-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (605.7 kB view details)

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

objutils-0.10.11-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (596.1 kB view details)

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

objutils-0.10.11-cp313-cp313-macosx_11_0_arm64.whl (589.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

objutils-0.10.11-cp312-cp312-win_arm64.whl (590.3 kB view details)

Uploaded CPython 3.12Windows ARM64

objutils-0.10.11-cp312-cp312-win_amd64.whl (606.0 kB view details)

Uploaded CPython 3.12Windows x86-64

objutils-0.10.11-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (605.7 kB view details)

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

objutils-0.10.11-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (596.2 kB view details)

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

objutils-0.10.11-cp312-cp312-macosx_11_0_arm64.whl (589.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

objutils-0.10.11-cp311-cp311-win_arm64.whl (590.3 kB view details)

Uploaded CPython 3.11Windows ARM64

objutils-0.10.11-cp311-cp311-win_amd64.whl (604.8 kB view details)

Uploaded CPython 3.11Windows x86-64

objutils-0.10.11-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (604.6 kB view details)

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

objutils-0.10.11-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (595.9 kB view details)

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

objutils-0.10.11-cp311-cp311-macosx_11_0_arm64.whl (589.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

objutils-0.10.11-cp310-cp310-win_arm64.whl (589.5 kB view details)

Uploaded CPython 3.10Windows ARM64

objutils-0.10.11-cp310-cp310-win_amd64.whl (603.5 kB view details)

Uploaded CPython 3.10Windows x86-64

objutils-0.10.11-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (603.5 kB view details)

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

objutils-0.10.11-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (594.8 kB view details)

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

objutils-0.10.11-cp310-cp310-macosx_11_0_arm64.whl (587.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for objutils-0.10.11.tar.gz
Algorithm Hash digest
SHA256 bd60ba80cbe0281fb7fee341ac1dd4159632ab7fd73a1065d57d96a072d57c32
MD5 4297bcb063f4e520dc2f02d6c0fa8575
BLAKE2b-256 6de180ac4b97b231e4e15e9a41d83159fa9d7a5c2430eddac65cdc7fd3048d5a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.11-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 593.5 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.11-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 a483a4a515de2bac8b8637bc6280589023c79ec68c36afe70e70c938be2206af
MD5 5ad16c5df1e20d5f3661e78c5646a320
BLAKE2b-256 fb0dd4b1f2408cdccf898b3ac703e4f2a25411cdc5156e3bbc0b2a32bddc0d6c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.11-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 609.3 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.11-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2c6a5e4f1bb7cbded6fe48035d5e3c844c3f4dee0ab68ef6f69478586ea58272
MD5 6f6251662c285fd25e6eaa6dd3e85c7c
BLAKE2b-256 6a65c591100a77bf644a3d09bf6f3e2a3cd09d4311140547dfd5026430748fa6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c3f7c0ae78e35429ac2fd390b45efba543a3a3066c14c920e266cd6f625905d0
MD5 ed2d7aaf29af7a75faf2b1e0cba05de2
BLAKE2b-256 e9dbb9d36f19bc8619ad726b89aee4bbdf00866faf388107c8ad1c7e5e056cfb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 135f6ad36a06dab20fb7a2019b0a0c8c3fbf69ad7d6de9e0732fd5599767d602
MD5 5e990609b3d015831dbe25ed51aaf8b2
BLAKE2b-256 0345602ffb4e03a9018d2767ad1b44a6d9a5b7006a718d04e2df47c3ec60d6cd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7f2fef0fbbc6716c85c63191ea652400be679d94f387ad919324451df2117620
MD5 04d81979e7ee74f1f0682b4297fd78db
BLAKE2b-256 d952a6098e5307ad67b49eaf77063a278e4e213a8f26e4908eec730329b8515f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.11-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 590.3 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.11-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 77105638580e973d4365cbbd147aa35a43e0a09cc8788e9a59188e75decfe9a4
MD5 a2afd7b2920a6d1e5865fcf0e29a4139
BLAKE2b-256 a462519460352973f16320d3d96bfdcfdc09c51e846edfa194f7f174eae0a15f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.11-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 606.1 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.11-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1aa14b58686574f77ffd60b9d8c648937b1f2fd0b9ce4f208007ad195560cb65
MD5 ac87143a413b3a0fc7d8728f07a1a0b2
BLAKE2b-256 fc8b8ed3f6430c6da1ff4a269d2a8a972115196f7c87a1372e7d9ca41f451ab0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f8c850de07f28ad59c4fe5e39b3bd9c82ac427e359f3af6df3b9602a37329cd5
MD5 0806ce24525495feac1a9587cdcba8b0
BLAKE2b-256 2435ad47ccd4e7d7861dbbe9c2970553fba2e12b6550933b48fba3219b96702f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d0a08608e8591d49c62d1826eb4cc5d819a792f03e37a63b13a7a812112232ce
MD5 cab4aacafbcf356214143414b64d444a
BLAKE2b-256 e59a6bdc2acb2a2576819142d262fbab0a99f6d51d21dc5859df99e7c2b7d451

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4b07fc10eab66343e5bf505cf05afba7c8d925397f90ba922cd6bafbcbfa64e
MD5 f2692f093f3f63a6985ff0c1db84b588
BLAKE2b-256 b457e3e4115262199c429abed6457520a3abcbbfe3e376a0c104671f588c8007

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.11-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 590.3 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.11-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 32dfdbc7fff9344f1ee5acb2e46f8676185b242d87d7f91fc88cbcecd24f1e5c
MD5 f538abcf1e68317cfd48680bcd198a38
BLAKE2b-256 78e34fe4c3c7df3f43787bd75388d24a78b2a5aa39b52b2211d3a0ec06234896

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.11-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 606.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.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9f23c3e57612df75ed15a1bbf8a8577f6f740de8923a8e9ef78d0fcc2dbc8570
MD5 6273c08504cd03be9bd42d4191d99af7
BLAKE2b-256 451e826e9d4a6c22b1933bb38cdff80f91971e5921c6cc4a9e0a718abf0fe6ae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2f43e2058af90983ad22c107b07492cd14b0392d178846f8f26cbd60a9cdc13a
MD5 12625470f30601ff9e8554fdf47c0798
BLAKE2b-256 e27be60cce00fd92e5d109a0cdfb70045f5120ec13cef06ae140e93192334a6a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 afc9bea01c083cba201d32258bea29658d03701c6f1d7f2b7ce1688e635b8720
MD5 a7d098bb1dca0a439d04e053069be50c
BLAKE2b-256 969208f43940f5cd9bd04294dff2b08765ff542a6291b839cfa1d1e15b99bb69

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a8a35f18472787ec597a3e1c244f57058d316101462d2fa55a57614cf969c21f
MD5 ea5a1f23bb2f9d9271f0318598e26900
BLAKE2b-256 665d2fa1d0f17c1e6cc8540a05f26842edbdc5d610624e99f9e8144171775a31

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.11-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 590.3 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.11-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 e6205297d543cd7841bd22e0f52093162da14afc2bb25d56503a99bd7332740b
MD5 5d86ab36286fd424837398fd567ca6b1
BLAKE2b-256 beb61b6124b667048403be44dda49c674637cd82ea463b1192348c72982d9dc9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.11-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 604.8 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.11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 794c275c1875efb2a3c3174d050ef911a23618ab6a7c184ee2af39739f7fee74
MD5 7595d64c23cc8e514832f615803c93dc
BLAKE2b-256 499e23a64455bcd08d8f9e5ab177a10a5b0a33b03df1c8d4f86b5e68d8eca851

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f040ac02f699006265f02936df06e48cb716b5e31f6fbad8f462d0af3d94f638
MD5 22d9bb2766d07c0e6d7f702c1985c943
BLAKE2b-256 c037b67cfece1552a19f33826b82585192abdff61205a38bc15d75d0670e496a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 30ab293a3656ba10543414398155d8e59bed23a59218816c5deb87439c478e8e
MD5 5078e034723c579362ba27c006a5961b
BLAKE2b-256 de111ecf04b80be27ed617099cb74dce8b28ba0d68ad4b261038c2fe782d19f7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d6fb021cfe37d87812b10b664bc0123f221dbd6df45076e0944ff3a904fffd86
MD5 92735617132e76d7e5a9af2c74d104aa
BLAKE2b-256 52bbd6260380e6ae02112c4272b3f3695083723348fffc5cdddef6e5c38ea1cd

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.11-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 589.5 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.11-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 3fd808a69975dd05c1a9fc7cc443d6aef764ab64403fd79f7be33a7f353721e7
MD5 daefeca9cfea411fd3e0585836f0f6f5
BLAKE2b-256 21b6674546b0fa58f03f8c7ca8dff5f4f3683d296485d18f7e68c857c36e55d6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.11-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 603.5 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.11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7b24a2238e9b4f8fa001898f909b88474d66a5dd598a241b7ef3974df2e8e2b6
MD5 71df58955e120ac76da1b69d929809c1
BLAKE2b-256 3d2204ed9e8201f28476a28f5d419d0f6c22149bdea34633cb014b1f0a6a4d7f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ea8910fe03661af495c0460d8691b5d3210bfc0a8f9a18ff076fa7bd64bca398
MD5 3c8eaf43b92755b11be2fa74c4236d5c
BLAKE2b-256 1a5406edfd4c3247c887b5ac29e64603c0da119fbe3fea7c0420922751e1390c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1719735b1f78ab4b905a639b365cbff51f32f109fb6610e20ee923245067a463
MD5 4e87b024c416dd29cd75d698bbd7524c
BLAKE2b-256 09041c768a23245254258d108098c675fcded9f67b7af6153a63a3bcd3901717

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.11-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e2e8467e2ef513247f5ffd7c44bb7926305dac9304a714a79d80a36ca39ac24
MD5 f1b9b1b2fddfa78232908d996778a05a
BLAKE2b-256 d0b24af7d588efc3b13bb80fa8511cfb9f53b613ed368d3df165967c04add99f

See more details on using hashes here.

Provenance

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