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

Uploaded CPython 3.14Windows ARM64

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

Uploaded CPython 3.14Windows x86-64

objutils-0.10.7-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.7-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.7-cp314-cp314-macosx_11_0_arm64.whl (926.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows ARM64

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

Uploaded CPython 3.13Windows x86-64

objutils-0.10.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (946.1 kB view details)

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

objutils-0.10.7-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (905.1 kB view details)

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

objutils-0.10.7-cp313-cp313-macosx_11_0_arm64.whl (839.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows ARM64

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

Uploaded CPython 3.12Windows x86-64

objutils-0.10.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (833.5 kB view details)

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

objutils-0.10.7-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (802.2 kB view details)

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

objutils-0.10.7-cp312-cp312-macosx_11_0_arm64.whl (753.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows ARM64

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

Uploaded CPython 3.11Windows x86-64

objutils-0.10.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (720.9 kB view details)

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

objutils-0.10.7-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (699.8 kB view details)

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

objutils-0.10.7-cp311-cp311-macosx_11_0_arm64.whl (666.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows ARM64

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

Uploaded CPython 3.10Windows x86-64

objutils-0.10.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (608.2 kB view details)

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

objutils-0.10.7-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (597.4 kB view details)

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

objutils-0.10.7-cp310-cp310-macosx_11_0_arm64.whl (581.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: objutils-0.10.7.tar.gz
  • Upload date:
  • Size: 442.7 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.7.tar.gz
Algorithm Hash digest
SHA256 cd205fed4ccc0bdec5e65674db5512dada3d4ce09fd8210bbd2af5fbce0a7ae2
MD5 d500e85f4668a455ea087d84414c0293
BLAKE2b-256 5dc8ef4be1c35cb80f592f1bd298ebe49f0cd862b0f5fea54c7cda3ecc98f894

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.7-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.7-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 b48c3b6952bbe553cd04851a05f0015a4c6aa45525caecc91b101002a0ccb2ef
MD5 2986e6e7bd8427681ec01af712633b55
BLAKE2b-256 2bab76e70073d8a8dbbe47c378bd6f4835c5255962301c7ea1941c6c8c8d1d18

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.7-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.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7cb504ac0e3657f9201394f10a24c094efa9c495fbc0bc74dda13a4f2c03706b
MD5 a320426c67a6c59a9731973b3f0224be
BLAKE2b-256 2896c556b1c0c98d7093f2f691b59402ea490610aaae58605a9ee21977e585ca

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1bcc254724b68b043b2efb486487fb992655b2b7792682cf719b4c6730d28b4e
MD5 c32c420cb9e395e9b785aad87314573d
BLAKE2b-256 7ce0df564aa8705ad43621031f475b2109e160980d7dc24c0a4ab4dafc4e142e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9cc56f018f7aecfa2ec5a0fcdf86b3f7bb9b80db81f0ee367007226956eddb95
MD5 836223d048d8d1a9b94a4e6cedcd821f
BLAKE2b-256 b880099b3dcabac876544c1e1db439c7055c407d36b9d45d677af6e607a33ba4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2011fbcdb2663994fff0e9c02ca973552c6da4601075bf46f93648d1200d2d5f
MD5 7e912e238bc8767fd524afb5be48dd6d
BLAKE2b-256 48919c9edba66e8d595864d644457aba8dd69634a4e4db1270af450a39a55bf6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.7-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.7-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 ee027266a7c3151d02e2172b61a70b07f78c0f2fb9437025c20659c9e13c67d2
MD5 093aa2de43da7a10dd148318667fe4be
BLAKE2b-256 0fddb68bef896f6e0dd5d555b5dff6fd2b3ea77bc167c4213446aff7f22dad4b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.7-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.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 49f8723d56bdd28bc08e216753df6275016beb299dee83180e682f4603020ba6
MD5 efae43cd32d13b8ff85995ad22449583
BLAKE2b-256 0f473994087e2ea586e2af72f390dfad5e197f0e88413555b60c9600340eb874

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 367d047ee6d0e8f903813b78036b3d6561fc5f17b4571c9192955d01260714e2
MD5 59a355cd981de74f3514678324792047
BLAKE2b-256 d28c27f2dab8e1513a51140d7099e09fe3f2e338679c10081d03fce3d8195dea

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c06ab11a6a0c831f15488a312f78e5598db7f21c935458c7418082651958d302
MD5 4bee37abbfa4379d0e3db0ab695c2a6a
BLAKE2b-256 671ccb5f82332ccea763ad5963f4dba72db4c586bef9e54bfd0403e75bbd8358

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b41adefd4fc33eb1c74eebcf7ead92d511a4e5ecd5965ada4a077a8d1d5e0b9a
MD5 f90129c0f6dbb79ad7733ad23531d715
BLAKE2b-256 09cd2bcc0c1b764918cd9ce09faa91d4ca3024935b4a077cb3f5dbe51cde7526

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.7-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.7-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 844f619c9ecfcc43a0baef79e3ad8b8160156719c81875e7bb4aa0d33e8224a0
MD5 fac2542cac5bda033facc9d9a27721a4
BLAKE2b-256 8ca85f815004123c217b308475135d4bf48a0e2699bc52c4bffc27da1a06432f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.7-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.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 61381820988ac5e9f083abb6bdd63592fdb2ac4b0e72d59c2d75fef83241856d
MD5 5914320954ac844684a52fbbce67821d
BLAKE2b-256 ae6b6d271496a198f2f8ce57e753582bd01f303d8b42e045c5dc86a21afb770f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 294fba19fdcebc03118e9b85ec85e9d39270b01905f20878d2644630648909b1
MD5 65ea3da7c835aee4ed8b433cd0710c23
BLAKE2b-256 e3313ee2c5c102dced02da32a5bf9416b74f77fcb68f3a404e8900a5dca15210

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 69e277990fd081f61e9f28809466080cde87a9b077083c72d264b3d979a28c57
MD5 f7bc85e9dc45912c661d2322e2f0d3bf
BLAKE2b-256 7aa9cab1723ee0da635bc92da7e37e2c3f112935038d06f494debd3187a7074c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9dbb8da8944b141c033adc58debc3b34bc2dd1deca5649e2376dacd52d42d9ef
MD5 fd3ff10bfd9bed7aebe9af18b9a7022c
BLAKE2b-256 5497b71153ea0ac92171c0b40ac5d3df9952b4dd00cf0e4245d86c5d5fd10230

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.7-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.7-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 c4bddaf8b90d9d26cdab78384878892d3af41410937ec26b909c985a00920942
MD5 dcfb203fd3cd7d4d8a3d9d796112b0ff
BLAKE2b-256 5e40f8aa882cf7ae08e5d1583eedc5aa8bf5a1667a1964b970b2d85a20812849

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.7-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.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7caa3545f90b443d3fff456b5d0d0638323c9cba55dff030cf8a0c5cb7dd5ac7
MD5 d24ec3edd806fcea4b3330457e40b91b
BLAKE2b-256 06936fb1133c421823d02efd851039b09842a61e688a6740b69fbc80e2d60b66

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0e7359a07535f7c1717b448494a4b75815a8a512ef1be2d3f206d0f030e19fd1
MD5 10cb00f46cd1f12988604d68ec7e0747
BLAKE2b-256 134f506c37d92ebd184d582a43290cb2217f1602878075e08da7b3488f74078c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e46e4a6a4d9484760d6ae8595d74ded7853022d041fc70c7d4db8128515fdba5
MD5 b2cf32fa083f747a1754d3989b94f706
BLAKE2b-256 3b5655967cbd199b5e6de07d745c571a513c17f856f0fa458da3a3f3452a1ef5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 397c3de63c4b92ac3d2ce458961528cd29314443e3d0465572fff8aebb9cdc48
MD5 c8d774228999f69d18db2832f2f8e59c
BLAKE2b-256 52e195083d1d19e56af970bc4f0dc901e966ac3a247fa5ad7eda6a48d243008a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.7-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.7-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 4fd41ade02591168a3ef738077e46d0c54dc061c5511da83ee5a6705dca09ca8
MD5 fe4738c9b95d9bf14526998b3a92da54
BLAKE2b-256 052554788d7c1725d292898ab29c48ddf1d70f54ae8dc49d9968cd849f89576b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.7-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.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5534329ced90ed358c41ee28076cc48cb62ce0f4a7f744c1e8ee4e92113fd02d
MD5 f5990c78cb61388bfae03249edd9db1a
BLAKE2b-256 5d664ee6f3d5a583566360e959cec191ee022512c4d24ba881a5604234807d0f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d8ebe1575902bd02c3a8c5b3c38019f0717aefc86df0ae1ba19af89aade8eabf
MD5 2213fa6226c32bb27a1010e09e24648c
BLAKE2b-256 074591deaaabde647755de35795d308be03ccba1d7fac3aa761658917b5adc19

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b50cb3e7b19de642dff7f06b7ed32aed61c23af1fd171e434b4bec657a33ae9d
MD5 7eaf54ae6c1def79840739ba25d3bd3a
BLAKE2b-256 5296ce5555258ad65f4a698be910c66c4344edfb11b9902b18ce32a3be3674e5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5193b7d4cc84d9d0b0ef9b97cba6630d861da2e6883abe3e2e53b2c026a70c9b
MD5 7e1769994afda790f2793dbde7c234bc
BLAKE2b-256 a5bfdc195c7125e29757faf897a74c204e27e97a245ebe8d1a808c70ed903237

See more details on using hashes here.

Provenance

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