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.5.tar.gz (432.6 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.5-cp314-cp314-win_arm64.whl (929.7 kB view details)

Uploaded CPython 3.14Windows ARM64

objutils-0.10.5-cp314-cp314-win_amd64.whl (956.1 kB view details)

Uploaded CPython 3.14Windows x86-64

objutils-0.10.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

objutils-0.10.5-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (998.0 kB view details)

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

objutils-0.10.5-cp314-cp314-macosx_11_0_arm64.whl (916.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

objutils-0.10.5-cp313-cp313-win_arm64.whl (831.3 kB view details)

Uploaded CPython 3.13Windows ARM64

objutils-0.10.5-cp313-cp313-win_amd64.whl (852.8 kB view details)

Uploaded CPython 3.13Windows x86-64

objutils-0.10.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (936.2 kB view details)

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

objutils-0.10.5-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (895.1 kB view details)

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

objutils-0.10.5-cp313-cp313-macosx_11_0_arm64.whl (829.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

objutils-0.10.5-cp312-cp312-win_arm64.whl (745.3 kB view details)

Uploaded CPython 3.12Windows ARM64

objutils-0.10.5-cp312-cp312-win_amd64.whl (761.0 kB view details)

Uploaded CPython 3.12Windows x86-64

objutils-0.10.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (823.5 kB view details)

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

objutils-0.10.5-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (792.3 kB view details)

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

objutils-0.10.5-cp312-cp312-macosx_11_0_arm64.whl (743.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

objutils-0.10.5-cp311-cp311-win_arm64.whl (659.3 kB view details)

Uploaded CPython 3.11Windows ARM64

objutils-0.10.5-cp311-cp311-win_amd64.whl (669.2 kB view details)

Uploaded CPython 3.11Windows x86-64

objutils-0.10.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (710.9 kB view details)

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

objutils-0.10.5-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (689.8 kB view details)

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

objutils-0.10.5-cp311-cp311-macosx_11_0_arm64.whl (657.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

objutils-0.10.5-cp310-cp310-win_arm64.whl (573.3 kB view details)

Uploaded CPython 3.10Windows ARM64

objutils-0.10.5-cp310-cp310-win_amd64.whl (578.1 kB view details)

Uploaded CPython 3.10Windows x86-64

objutils-0.10.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (598.2 kB view details)

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

objutils-0.10.5-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (587.4 kB view details)

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

objutils-0.10.5-cp310-cp310-macosx_11_0_arm64.whl (571.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: objutils-0.10.5.tar.gz
  • Upload date:
  • Size: 432.6 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.5.tar.gz
Algorithm Hash digest
SHA256 afa42a5f821627008016b4400ab12fc8a1f07ee0ce7a3e6825b3d77a65d865cb
MD5 583c93eb5ae61a78d0cb0850ffdf9293
BLAKE2b-256 533e4a8606e98de184da5a287947362bad71917fbee3d315353a561f33cc8b2b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.5-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 929.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.5-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 45b7d3e7fcb8afebc0b6f66356e98519994d0f743be61c2ff7097f24a4ac82db
MD5 9e05f5cd5481f5bb59eb90bf7635aa80
BLAKE2b-256 10c2e9062c482cb33479b5cb7d0229ae16d10dea5632ddfaadad842e0253690d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.5-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 956.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.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3de06b7435d541fcaed656148491d5a0410ae38f2a16e492d95f14f0bd232b09
MD5 dc67755f6234e0329bfa0f4ba8634ab5
BLAKE2b-256 7a6a0a5702a8092ff99cfe7f582fa30cebf0ad91d5731c54750959dd971fb549

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2349d72b3cb065aafbc34a835121307f07249ed93ca48d78f29d4727d152d868
MD5 e4fcd6d081579c43c66eb5e8e2b6a8c7
BLAKE2b-256 9e8421a3aa6c51a1c7a47b724836336adb59e8513fa7c2c64d117473b8a59a16

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4f31f9faea1fb8675c6afd99f05ed27092313ef43aad4e92747112aa95c53fd0
MD5 422540a4b259a9864d765f1c8f13fec4
BLAKE2b-256 e0481f17004581ef5d2b043b0f8bf076d558fcee16127f4b145feaff6cd5d998

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bae83a3c2446bff0b0647c6452df64f00748b9534a626207e512311d53a5f279
MD5 a78f197e4c970499b5f151c6cff51a99
BLAKE2b-256 0fb36ed78252f95207a14e16c9dc6ad4a10a70b04af9c9767fedaddc1358900c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.5-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 831.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.5-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 87e7ac6bbef3b4a682c4b738a0f8fee722e03ac4e1724e46fb962264266f8412
MD5 ec6a49cbb3171544b914e400e50cb748
BLAKE2b-256 516e65331b90777f01e490566d84b4323dbd43fa0e16f0a9911a4729d879b5cb

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.5-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 852.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.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 707a536b51e2908d721dffb9841a5405febe8869fc4507f09d6c881f396a881d
MD5 339e3ff05314ed00aaa2cc02709423ba
BLAKE2b-256 c5860b2fcc43c1b2de1b103bc6dfcae37a7106bb2f94ae92f04de26c12fb2ce3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e5f83189e6af410d95f49e0e90ff022643bbf6334c89bfe054bb908104307373
MD5 4f201bb337b79efb04000e35c70220c7
BLAKE2b-256 5e3f1c060418f8cbfaf0f11724aa7827bd8bccecf2f2f6dada8af3bb6a819aa4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 92c36c1a749952d56b355f1c08a08bebf27809bf5c563479e31949e0d9c50b65
MD5 18a5a7846dec567680570a655ecf6a0b
BLAKE2b-256 57e13946554425f84e745705476aaf3b3819037857581e88bc28ec76affa8e6c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a210aa2a63fbf6f3c712db8c0e42454c366488dc6119cb7172352bd959c46463
MD5 82ca0197fc3c515b0d543daa58f840e7
BLAKE2b-256 d04f731ab1fe08cc6c0dfc70d44e2c7f9a8b4bf7ccdf8222dd6408a7b2a112e6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.5-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 745.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.5-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 fb11bc3aec3626344c4ac09be961c53474870b980bc6ecd6e7a3e4bd0fe0a46b
MD5 e41699633be570e172aa056ed6ce8c8f
BLAKE2b-256 e643eb83b1e70f0f1b0f2ad709b03540560e5117e25e922b5095b143903e0ec2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 761.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.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d7a8fc3a167c6d4e552aa1df6472ee82ce7f7e3ee04ec6bab0cf3f92c59ebe43
MD5 f8333df74070f4385c909d90e0ba4606
BLAKE2b-256 a65a66436d8497698d0bc0181a0d4cf32ab131c3b870a9339caff451ff1897dc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 34a7b947022e836b014913e5b5a387e661b5cedc49bcde8c53f7fce67148847b
MD5 ec009d4a910f13e6a3dfcf37d519dad9
BLAKE2b-256 cd30ba4061886cd617b3f3cf3bfa1862a930b8ce5233b5b98177e6d43f0b566f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d00d891247a904f253281329a4748d44157aea8332126e457b84aee0668e3482
MD5 c67dcd7056b077a83e4c65b1ffc5ee81
BLAKE2b-256 ea2faf023b87db5bcb7480c57fdefc2a52bec1021a26bdcd26be10e1d3bee7f8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 264094cd5bcb217955b43fc5eb6e1cf191a24f5390e1fe1c5be1952299c4de32
MD5 9178cba695062f4bd1c37e853f5a2325
BLAKE2b-256 cd4bfa8dbc09a07f46980fc58aae20e1785020174928426a8180738a8b4e30c9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.5-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 659.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.5-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 94ff533f571ee9004b4ca6c777b8feb566234dd3bc510db449d14e080a3f4ff5
MD5 9efc3e2cca937c3d3c24d2c69316ef87
BLAKE2b-256 4ece28f57a526eed124de1ad0446982750bacba69a6a08cf88f88cdd278a6de9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 669.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.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 49523da1579a7fe0766fdcb05078862b6f25a97e292168a40bff189e83b606ef
MD5 661d987479494531481896eec34aac19
BLAKE2b-256 58d4c7517f989a6c6e9be3cfeaa55d58373003e7dae6205caff875df3bdb64aa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1c0a1d8dbc63b952d484bcf8e189690581fc9877d94c97ff3c9938873ec777df
MD5 4988a9d0aff81bc57fa3ea928e68c6ef
BLAKE2b-256 3806a51709419b394787548ee27e10a864d43a01c53923e8085a7effbaf159ba

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 86a9349122abbdc08eadf9456d60fff4d588bce47814958ecaa62be37a50da49
MD5 e6dc9bf4de88b9a47e9b32dca8d397c8
BLAKE2b-256 fe19a46dbc65974f0402ba9019eb7ba1f79874204637f3a2e35ec24877b304e5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 802461e33f69e068330f13a155cc93dd5be19ea1d5149d358400a8ffdafd4029
MD5 78086a7a8c0b53ec3acb66d4060851c9
BLAKE2b-256 fa5f91b45ffe4c49008d8dcc127f4272c90a31c538fdd937fa2070ff9940de97

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.5-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 573.3 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.5-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 81beff0a7c0fbc69705743f3f1553454ddf9ca215c456fa3ec5450e2f27b166a
MD5 5437e5833d7e501ccc74198f4cf571ab
BLAKE2b-256 befbefcf93d4dca0f7c3a9c74418eefa05605f9ee41fcf418a1498f41a167eaa

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.5-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 578.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.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 87d51b725b6bc770fa4199096bb90655fbe418928df87ceb6535077d2a2a3c26
MD5 290a43f0f000d72f19a6a68cfc26d52b
BLAKE2b-256 1fba6b69b53cdbc2dacac6944c871636cff3d9e4dd1f22728ceaa545cad05ed1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 08cfd8c94df709e52d5f866d2c4f2ae88b86afeee7faab55ea420009ea2fc06b
MD5 47f96273feaffd9073f57b9009b2cf12
BLAKE2b-256 6d3e5db3f880699601cfa8bd76cb7091bc07d42abf23d1e504e10bd3c8d443d6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f8de1500ac8184f75c6294fe05c6d8cd5080dad90b5ceb89089ebae30cfa81d3
MD5 c82b4c26ddbfb79e76fdd087b60ffa51
BLAKE2b-256 6f5f4831c1c21d9b8941023bb178f62383bf178cf0e602d5b05b45008eda7b43

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f7513ac2631201b0d7c204d3f1f90997bf4c69a6c7fa178677b4a2c69d1f6a64
MD5 08579094c271b906d29bcb3b0894267b
BLAKE2b-256 e3c10ab3d47edcb922f6ae5b33041c7efb13bbf4dd4be3e1a6d608dd3c94f512

See more details on using hashes here.

Provenance

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