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.4.tar.gz (432.2 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.4-cp314-cp314-win_arm64.whl (927.7 kB view details)

Uploaded CPython 3.14Windows ARM64

objutils-0.10.4-cp314-cp314-win_amd64.whl (954.1 kB view details)

Uploaded CPython 3.14Windows x86-64

objutils-0.10.4-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.4-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (996.0 kB view details)

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

objutils-0.10.4-cp314-cp314-macosx_11_0_arm64.whl (914.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

objutils-0.10.4-cp313-cp313-win_arm64.whl (829.3 kB view details)

Uploaded CPython 3.13Windows ARM64

objutils-0.10.4-cp313-cp313-win_amd64.whl (850.8 kB view details)

Uploaded CPython 3.13Windows x86-64

objutils-0.10.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (934.2 kB view details)

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

objutils-0.10.4-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (893.1 kB view details)

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

objutils-0.10.4-cp313-cp313-macosx_11_0_arm64.whl (827.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

objutils-0.10.4-cp312-cp312-win_arm64.whl (743.3 kB view details)

Uploaded CPython 3.12Windows ARM64

objutils-0.10.4-cp312-cp312-win_amd64.whl (759.0 kB view details)

Uploaded CPython 3.12Windows x86-64

objutils-0.10.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (821.6 kB view details)

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

objutils-0.10.4-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (790.3 kB view details)

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

objutils-0.10.4-cp312-cp312-macosx_11_0_arm64.whl (741.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

objutils-0.10.4-cp311-cp311-win_arm64.whl (657.3 kB view details)

Uploaded CPython 3.11Windows ARM64

objutils-0.10.4-cp311-cp311-win_amd64.whl (667.2 kB view details)

Uploaded CPython 3.11Windows x86-64

objutils-0.10.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (708.9 kB view details)

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

objutils-0.10.4-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (687.9 kB view details)

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

objutils-0.10.4-cp311-cp311-macosx_11_0_arm64.whl (655.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

objutils-0.10.4-cp310-cp310-win_arm64.whl (571.3 kB view details)

Uploaded CPython 3.10Windows ARM64

objutils-0.10.4-cp310-cp310-win_amd64.whl (576.1 kB view details)

Uploaded CPython 3.10Windows x86-64

objutils-0.10.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (596.3 kB view details)

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

objutils-0.10.4-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (585.5 kB view details)

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

objutils-0.10.4-cp310-cp310-macosx_11_0_arm64.whl (569.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: objutils-0.10.4.tar.gz
  • Upload date:
  • Size: 432.2 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.4.tar.gz
Algorithm Hash digest
SHA256 dfa297fe1c871f5fc38a328482611aafddb07118df651ef2fd6fe68510cb452c
MD5 3db8e33e6fb441cb65eb3a669071d117
BLAKE2b-256 972cc9ab5824736d46359d2b287dc2026ab7d93eb1dea523eddd190cd93f0feb

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.4-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 927.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.4-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 75657c7c87c8f898e9210cbdd7014d5828b74bd09ab02cf88c060f357fdcff69
MD5 f9ad67e312347c92475acd965c214a03
BLAKE2b-256 0c268267cacc8c3b4795552bc5d8661d3528a23d23e312b3555eea5bbbeff183

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.4-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 954.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.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 238a32785dc1e89e2c3c742bd079ed53b0ae301e3d92389404d36a002c65cf21
MD5 8448ce0a2b3cc1dc61535fac98569885
BLAKE2b-256 2250c43bd7f0a1e2e5519bf5d853cd0b8cfe29832353ca70053ecc8427d7bbbc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6aab7eb4031546a6db40387d6e6c25c5775732e1defb4c6fc0ec232b3e985c3f
MD5 6b589f6fecca47cf150a1b029b2f7f06
BLAKE2b-256 cea0151dd988e9d4b375a720c10794046e2c6d08140925f544a248806a48b016

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b79116c0d73d1dccbb1cbd75c20dda574a7d9f85f6bf2fe2bc1f12109e47efc3
MD5 8bf00cfb32515b972b63c2a82b283c34
BLAKE2b-256 3f920359900de2c6b0ec6a0954790eca3c525e20f11a33bb1762a2fd486396a2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5239425a0c6202e1cc8ebab200ff07fefeaa81696756f6898914d86b97c40ab8
MD5 31722e20284926b9f17754c29012ab8b
BLAKE2b-256 98f84e2e9db17418283616de2c9bfe8860319d38f2d78926fc6df5ed52404ed3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.4-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 829.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.4-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 59d6237c9eabcd267f330c59f8fbf77138a015b17771177ccdddc0b43f9b3f70
MD5 cd20da83384596d1853f02b875339f33
BLAKE2b-256 efd3c5dbf362c6efc23538cbcf8f7fd7ff526127ea2311020aaeb51ed45b8f84

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 850.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.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9da0d248a3225d58e4e94174b0ac51755a34eff516f6420b3b243a559e3ff0fd
MD5 6f015da677f220115b8824fa63853480
BLAKE2b-256 016dbabeb241b44d9ff6a7285fb515ae660d77eb9d691d403726f5cc9696d0c3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6060954c432f4b09b758afa972f89756f3d78601bad4e8e5752dc8be11f9ef47
MD5 8b483019da6d171d4bde4a1d6459ef83
BLAKE2b-256 a7b11d0a2ae4fddb78c910c0de8185d59ce5a7d6c3f20a694b2b3d52bb13044f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dfeb870b9ae4e80501911b40613afda0388fdb57f2d726c2fa8b81c60c42a553
MD5 746be108cb70c079ce4de368018308e1
BLAKE2b-256 fc1caa97272613b5413fc5734599f41268b5f6dde481523dd8d8c9309b7a9b96

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 57807a9427179cc880c96f3f7ba3f1771ceb5fa213f51011652ceba78623639c
MD5 e306a55740a4e9f25f78db86c65cd68a
BLAKE2b-256 f8a64ec3f417095b3457e6ee4b70212654a9ae283b3589ef1150451936a0d60b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.4-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 743.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.4-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 95b6ff4457c539f8f38c8b259fe461697b6f2ea170016dd8aadf23681d657bce
MD5 e007591167b8d5ebc4a62f2af549b3cb
BLAKE2b-256 7002a3df5d79495f94850dccb5124decd0e94507bcfe65a139d2fc049cd11846

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 759.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.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a0f0c911f16c930e8457db9a923a20328d8cfa45a33069a6c083ab95eb1eaed2
MD5 2898e7f4f745087de2f7af0dcccedb8e
BLAKE2b-256 7fc0d8825caaa05051aa6c66e858dd0a09d7c634d66be0d6829fbbfc972fab50

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37f023564ef00226fbd207e462e6566dd246d2f2680ca56820b26f61cbf5f25e
MD5 860f88b359ec581527c258160d502a72
BLAKE2b-256 2073f8f99b361cfa3597d87d5574350187c7014558621c5aea6f73605d127c0c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 935c3c54ea5af53dadf6997751229255b4913f08b759d50fad09919cc19c88cc
MD5 c7685394b5341a070fd1ac671aba3fad
BLAKE2b-256 0524ebb063f24711aa5f0b4cada43443fedd9b8d7e1a5d1c407280bb165e0d7e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb574358623085d0d2fa17340fbc60f415399fdcd73ec6803e4931393234e587
MD5 445c579c8fc02a586ea26b84d0aec3b7
BLAKE2b-256 efc9733a52ae394a80b6c293f6dded18255472a746bcf086f34326b780e60850

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.4-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 657.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.4-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 7a2b9f4e6819746bc9d864b1bee96778e47fe0b786b21405b52b5ba31b765240
MD5 ea634e27daf468437c2304e29ecdd663
BLAKE2b-256 59ae963c80a241fbf79e38052ffb1deef2183eaba1d6349ff77d20bcd8b19eb7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 667.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.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ee1106f8aaf332da8e98d8b59fc2c4135a5ab7a6cc3154f2b9e26ecbc36a0d56
MD5 03d305ddfb83a15e927d8825f1566d09
BLAKE2b-256 c9222da0cc69763918e1e8af9f8ccad7f3727cbc57b28a9a678a85d37b9f6b87

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5d58c280c856843c7e3035e076ce75b09565f3c1e385bd5bfb3aa20a6edd45da
MD5 59f7285b12367946cc47dde96a88f752
BLAKE2b-256 3aa91801afb60e71acc5bebd9f415840745171e0994e867c3a3f3b550fb52d7f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0495949562a5e815500a33e6be920cd37a9b1f525e9c31ac0f511b77d57fb773
MD5 e5d39e92bf9862c99daf99003e54e423
BLAKE2b-256 32708261b5d7d50a1d7982ceaede707aaf54b0dd69ed6a586ceffed5ccdd2261

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 65694381e9f4425881fddae869ff40b22103b71f1d01c3ea2ec4e60c705495a8
MD5 6046292e879ecde83ea9de7aceabd735
BLAKE2b-256 e3ce47c3783c0863ff6030c8d1b2fb262748f6cbaa1d3fb9bb95c052798fe16a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.4-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 571.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.4-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 833c7ecd05895206a4a0aa92b20512a147b312ece750307cd094a2bb43e8fda0
MD5 72aa9a89caa417fa92754a8c4c427aa2
BLAKE2b-256 2909f8a06c080d1ab765ab8a6e7eb14a990c593bcc37db9c4968c232f116fa74

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 576.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.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b791431af51889b6a5bfe2f93399df8e44e0f4ae2d12ac1480e8ce75cd676473
MD5 d38aefb3738eab09eb7d160edcc1f685
BLAKE2b-256 dd990e17477e0021b489936352e6e692aa17662fe50e90f0893a93f686b385e7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f4f7a7e9f77c05180c85e3c2fa4ca709fc06aedb737099081f5505e4995170b2
MD5 0895ee84aa7e3d50af1fec0d71b00354
BLAKE2b-256 6918b780728aa7fd154fa8d60f87adf21e6d2225f5976f8b56edaf32f99be2b4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0f756b48856a6689725993d53d1fe2a8a6292404553dde617732fdc857957672
MD5 2194cea3007aa7a8783d5e50984aff84
BLAKE2b-256 99cb444b64dc2ea5aeea443e84fdbe8db3a1d85c6a294a63e17a89a2c6643788

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c4f5651951ca21ef8d0e27cd938b7ac08e5e036c8a16ee395fe81d65e740333
MD5 7c033aea12449df1404ad33e4c19be3c
BLAKE2b-256 a35fb3a379fe2c5a1fbbea677cb8cad9146f495a43ac99d60ae3f4365db90a8a

See more details on using hashes here.

Provenance

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