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

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.

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.9.0.tar.gz (416.5 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.9.0-cp314-cp314-win_arm64.whl (910.2 kB view details)

Uploaded CPython 3.14Windows ARM64

objutils-0.9.0-cp314-cp314-win_amd64.whl (937.1 kB view details)

Uploaded CPython 3.14Windows x86-64

objutils-0.9.0-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.9.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (978.6 kB view details)

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

objutils-0.9.0-cp314-cp314-macosx_11_0_arm64.whl (897.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

objutils-0.9.0-cp313-cp313-win_arm64.whl (812.2 kB view details)

Uploaded CPython 3.13Windows ARM64

objutils-0.9.0-cp313-cp313-win_amd64.whl (833.9 kB view details)

Uploaded CPython 3.13Windows x86-64

objutils-0.9.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (917.2 kB view details)

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

objutils-0.9.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (876.0 kB view details)

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

objutils-0.9.0-cp313-cp313-macosx_11_0_arm64.whl (810.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

objutils-0.9.0-cp312-cp312-win_arm64.whl (726.3 kB view details)

Uploaded CPython 3.12Windows ARM64

objutils-0.9.0-cp312-cp312-win_amd64.whl (742.3 kB view details)

Uploaded CPython 3.12Windows x86-64

objutils-0.9.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (804.5 kB view details)

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

objutils-0.9.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (773.3 kB view details)

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

objutils-0.9.0-cp312-cp312-macosx_11_0_arm64.whl (724.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

objutils-0.9.0-cp311-cp311-win_arm64.whl (640.6 kB view details)

Uploaded CPython 3.11Windows ARM64

objutils-0.9.0-cp311-cp311-win_amd64.whl (650.7 kB view details)

Uploaded CPython 3.11Windows x86-64

objutils-0.9.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (692.3 kB view details)

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

objutils-0.9.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (671.2 kB view details)

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

objutils-0.9.0-cp311-cp311-macosx_11_0_arm64.whl (638.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

objutils-0.9.0-cp310-cp310-win_arm64.whl (554.8 kB view details)

Uploaded CPython 3.10Windows ARM64

objutils-0.9.0-cp310-cp310-win_amd64.whl (559.8 kB view details)

Uploaded CPython 3.10Windows x86-64

objutils-0.9.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (579.8 kB view details)

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

objutils-0.9.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (569.0 kB view details)

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

objutils-0.9.0-cp310-cp310-macosx_11_0_arm64.whl (552.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for objutils-0.9.0.tar.gz
Algorithm Hash digest
SHA256 8d52f269c9c86b03724b1243d813de01ba683b1e5893b5c9bdb6671d77de32c1
MD5 ceaf8a9b43fb1ec5230b6204c0329cb7
BLAKE2b-256 62adee727ad44d5fa51430f3a7c91298ef0ced456144234759c109bfd9771122

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.0-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 910.2 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.9.0-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 d3451b46fcbb8113ea2cc21fcd15508d8ab315c60cf406a81739e45447793a7c
MD5 784052bcf3817dda908a1be1e70b07a5
BLAKE2b-256 32863c17ea2d0283efe91aa4b48044a76fce8f749d3b5b291508b3f5c6efe473

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 937.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.9.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 fe839a2ac5df0413de074c310a4d98628f85ff9b7d35f31bda1dc5cbfd5c09c4
MD5 2041c018e6cb3b07d6820c23554878d7
BLAKE2b-256 84daf11ce1d5f682fd780320d42fe154e22554bfaedfecba7936f43e3a04f957

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8e6871d97815d065f1f4a579fd172bc79b9da52d4576742c048b17cb20250065
MD5 da8fd3efbfb9337f7c106d0050afe429
BLAKE2b-256 0c1f67663281e7237d68d1912dbc96b2b3b9d1a1dd72e29a78893574eed81f22

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2fee95b37392f9501b52adea2bff0233df8e828f9b56e9cd579e859ad4e3f18c
MD5 252a7015a30d57bebd0d196eadc9d60f
BLAKE2b-256 ad3abe79c18d308ba8a0f078fc56e184e06f93a8b3a8c237dd7bbf3488bf7985

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 70223be8020c64bf279bac008fb06d4338a810702c09c001613d8793c9ea85f9
MD5 4053c389ad65e367705d47ac70d0065c
BLAKE2b-256 48ff4694fd381f3fc00e2e59ac1403033f7cbdba43d39dae2643188262b07e25

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.0-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 812.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.9.0-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 2e73edd9aef46ef2e2376fb0547356aa694e6f01cbe90a2711060803ff8473d9
MD5 1db5f9e5bab8b404165ea14975991f1d
BLAKE2b-256 63b24e812cc91cfcf8e89cfc75f7f14d627fcc10dde0c2efbe53e9f735edce3e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 833.9 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.9.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7e0bebd181ebeb366ae630249e59744c5fbc20d403e9c5a40b7d28b2724926b6
MD5 b2b9fa9b36616684eddba2045687415e
BLAKE2b-256 a278bbd5ec18ca12b2c0a312b4e9dbd29da328b9efa2a04d7e0eb139f747258b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3d63d0074e609de5fe461fb9492adaf594ad2d10de809673e20516ba77344a14
MD5 426e67ce2c6c845114301526f7b022dd
BLAKE2b-256 1305143f819e83a453d3ecd73be041d7bbc7ef6a51d13812e420e3523c607c7c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 da2b82b844e648b391ca6ba8a3ed90f04882a4a78068e4f069fb7bc31a5b8532
MD5 8b78cd4773ac02680d9805fc3c867747
BLAKE2b-256 8b2d2025823f44bbc9da529ad48ded2719df661b9740383e03329823a1b564ab

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f87d128bb8ca7c96bcd2d3d15c8de51364ed06e9ad73da7603d23a1e0ac37b45
MD5 836c886218ff3a6eff7e0529d0832da4
BLAKE2b-256 057e5cbd396e286d96a552dc71232cb93a40fb740795ca9c15f45c88a7a06e3b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.0-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 726.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.9.0-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 057e41630313fa897584ef1137ffffe31d9c687208ed2ba01964ca087fbea4db
MD5 74b03c5a0105168526a56dc77e5997f5
BLAKE2b-256 764f37c5a7fdc4e9fe8a92035ebf3c4474ee049bbabb7f47822b0c39aec2c17c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 742.3 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.9.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9e4be39f0a8b8526f0fb2bef767ccc8599e6d593a8bceaebab46391856e6e899
MD5 a33406921cfe03ff41e4c85880927057
BLAKE2b-256 8081225a949751e7facb4980e7459ba9f5c2506014663ea908ec90146eec321e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 22cea824702a3d986733d59a19742de1b2574622d828232a69c1828bc0f313d4
MD5 97abee20067ea4834481b791af609c70
BLAKE2b-256 3329178d7408ddb4bddc3b8bb502516bcba6ebef2d1d3908892052d512034228

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d94397475b69d0e7d8574286305a81075820fb9edb9d3ebb4e8c41c897377bef
MD5 561bc34b2e9b9415ad3a441b4be74a30
BLAKE2b-256 f2c96714d8c1eb996d1cd519310da91fd58751f87600b2538e42d22fa61bb5d1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e403e7e542691c2ae46d522c84c90a30022193f872ec99d40c2255697302b1b
MD5 6ad071f03c19579c41f1b96761eb5cc4
BLAKE2b-256 0d557ee6674b559b0a1456fb93bb545d02f4aa56b4b54849f14abb4728ed3791

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.0-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 640.6 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.9.0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 4c3835e64cd09347caf8419fbaa11500ffd5e420be18ad26348d5f83948a73c5
MD5 f6a3e23e917e0f1c70eacc56b05c0000
BLAKE2b-256 f29832a7415b26de4f7b688240ebdc7d13e7736e03fce2daa01e436fa0bfb737

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 650.7 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.9.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 60a6562292f399f6b9a3d8c456b92e5110864ce73c03ce655e1eee45800ea7c9
MD5 6407e1ce0c963a24a52ba8a787898c78
BLAKE2b-256 87edf619054b44623914274570c4ee2771d3010e2b70fec5224c784524132ec1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8a8429a5af8f4fb56b20798ab0e6d66431cd38257d8e59caa1ff315abb0c5080
MD5 a22f29bf769c5c5ad396d17685324322
BLAKE2b-256 57b2c815a2f4d0b51700829bfb0fd2811f890224d06300662ffffd9ff00ce286

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eb44e5658463e917faa580b31fcceada95ab28c44000780ecf7f33be6c72560f
MD5 52f95fb0accc24c76ec29ec78e7e5580
BLAKE2b-256 d93982e7ad9347beee678b915704a1298ff36380ab0dba7f60feb0da92f8d434

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3df8335c356641af1298c87647482fb7c5388ca39ab36e8e522b3a9baa5526a7
MD5 e9259534f0d563b9c3d68191c1f58bd3
BLAKE2b-256 a3975bd734cc7cd73b2a7312e2cf7b67932546bf65a9a793c5dc9b2cc6f38d18

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.0-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 554.8 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.9.0-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 e3db13a87768220ad49384568982f3a4fba82ec54303232eed83764b299ea17e
MD5 970968de34215f087b454f49318fcefa
BLAKE2b-256 5a4276734144fdf13a583fe8c658b1eda33d99c93a285b986998a4208bbfe916

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 559.8 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.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1893eae8ef15583c7373978c2b570edee4eb953e63530b8378ee540943c08758
MD5 eb2216391e83ec5b99b332aa3bd84907
BLAKE2b-256 a3528f8da616afebfe3a29f3152d53e62f507439cf6f044d09c3e1d28f829fec

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1d4f7f79930661ada0eb8faa8401ccc209406383ed05a79fba54c8a4c547116e
MD5 9453dfbf0e4796c544ddc22b08344af6
BLAKE2b-256 8f21ef91fff446fe0229b3cfe3931e15242ba5366f0d985d6748ac43006f6075

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a26a867c74695ad8b3badd21cde87fb3df2da5d90f0bf4bfbb211ee94a5e855f
MD5 de064e9aaa09479d405f679c11ff6356
BLAKE2b-256 0b7be0cb0b1f9cc5221bec13eb96e5a8dc7c98720bba70d533e4f72005869332

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11d0583b834f65854f3f35f8f53134937e747c2466ba60d553bede8a6d998abe
MD5 271465b7021cc7912c0289bebcfae76e
BLAKE2b-256 f7ad77d6489bdc8fa75c961c5e8b81acf81c928ad1ce501bef233b7e756d390b

See more details on using hashes here.

Provenance

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