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.8.12.tar.gz (416.3 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.8.12-cp314-cp314-win_arm64.whl (910.1 kB view details)

Uploaded CPython 3.14Windows ARM64

objutils-0.8.12-cp314-cp314-win_amd64.whl (937.0 kB view details)

Uploaded CPython 3.14Windows x86-64

objutils-0.8.12-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.8.12-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (978.5 kB view details)

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

objutils-0.8.12-cp314-cp314-macosx_11_0_arm64.whl (896.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

objutils-0.8.12-cp313-cp313-win_arm64.whl (812.0 kB view details)

Uploaded CPython 3.13Windows ARM64

objutils-0.8.12-cp313-cp313-win_amd64.whl (833.8 kB view details)

Uploaded CPython 3.13Windows x86-64

objutils-0.8.12-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (917.0 kB view details)

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

objutils-0.8.12-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (875.8 kB view details)

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

objutils-0.8.12-cp313-cp313-macosx_11_0_arm64.whl (810.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

objutils-0.8.12-cp312-cp312-win_arm64.whl (726.2 kB view details)

Uploaded CPython 3.12Windows ARM64

objutils-0.8.12-cp312-cp312-win_amd64.whl (742.1 kB view details)

Uploaded CPython 3.12Windows x86-64

objutils-0.8.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (804.4 kB view details)

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

objutils-0.8.12-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (773.2 kB view details)

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

objutils-0.8.12-cp312-cp312-macosx_11_0_arm64.whl (724.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

objutils-0.8.12-cp311-cp311-win_arm64.whl (640.4 kB view details)

Uploaded CPython 3.11Windows ARM64

objutils-0.8.12-cp311-cp311-win_amd64.whl (650.5 kB view details)

Uploaded CPython 3.11Windows x86-64

objutils-0.8.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (692.1 kB view details)

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

objutils-0.8.12-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (671.1 kB view details)

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

objutils-0.8.12-cp311-cp311-macosx_11_0_arm64.whl (638.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

objutils-0.8.12-cp310-cp310-win_arm64.whl (554.6 kB view details)

Uploaded CPython 3.10Windows ARM64

objutils-0.8.12-cp310-cp310-win_amd64.whl (559.6 kB view details)

Uploaded CPython 3.10Windows x86-64

objutils-0.8.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (579.7 kB view details)

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

objutils-0.8.12-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (568.9 kB view details)

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

objutils-0.8.12-cp310-cp310-macosx_11_0_arm64.whl (552.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for objutils-0.8.12.tar.gz
Algorithm Hash digest
SHA256 8011c0b76713077bad3272fa29c47307bb91aca0e718c1a9d5e914c42c9f9ed5
MD5 7fc322a64a76c7690f2f1666a19587ce
BLAKE2b-256 0cef2cb0c23c64f1ac5a2f7c5d8f6b14ec606a4f2c7c8d40ae5332405e70998d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.8.12-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 910.1 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.8.12-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 3b12976e7578f3b3d143c402a173d5983a7ffbe8e3402e397b53c31216cff0fd
MD5 171a43db9225e8599b8c40346d86f33d
BLAKE2b-256 a16e52b62ba78d1dfc7adb1f8e2adfd9fdcbd401b5a2090a4b2182dc0247f4b9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.8.12-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 937.0 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.8.12-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f4987b7e0825487c10ad2c1705a081a3fb836b3987ffeab2008e2f1e33e938fb
MD5 91345cc67fa206a4e6d4a37653a34257
BLAKE2b-256 d5ed6c63e31fa4fbda4ae94d6ed84ff17388ae68b823825cd91a217f29ef9b99

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1dde2e7bf1c897b0bdaa44817838b54cb9b5efdfafdb673e20a029e055defedf
MD5 79b3b15d44baf6d63b9dfcb3499d1f04
BLAKE2b-256 2adaef214dad4eeaa50a233e6ddececc2cdeaebdff2fac8ad049aacd9f79b50f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 70a2ef53eb2aa9c4b45b965b85beea99f27884d78daa57572baadf5942c09f0b
MD5 fc3f6a3e933380f2161905455f4a222c
BLAKE2b-256 e397182cb3adf27c6572de7d3b5e0b763396b3aad7903f3ca471683983f10d9d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f014f36ac56f6d9f52ebb89b6290df0fc47e5d77343709b16f9c62e33453d9b
MD5 5924365e6056b790ca577f22e6e3eda3
BLAKE2b-256 f4261d3a67cfa47250b1d4bb41aa47037aee35d7d4533982e92b78470e2c0d0b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.8.12-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 812.0 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.8.12-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 f15de92e0b88962d7b75bcd76dcb1b199f77d628c55bf44dbc639ddb60bfb8ab
MD5 1b5421310b366ae5d62f1acae2aa4cea
BLAKE2b-256 c6cfb0086906dd04105595aec115df85091b95e7a2afd95714b0057110bf76e0

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.8.12-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 833.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.8.12-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 766bd4b3dfb1892fc0ec50dfddce6bb9579b6dce63449a1e8fd34a70291b656d
MD5 df9837b6ad32ca2ed44b21eef8821e5a
BLAKE2b-256 1160942fa90f8a9e452307189796aba66b6ba6ffafeed33144577e28c577830a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8ec3e7b817274465af3792391e0ffeba77979f224f4bdb67abefd00ffaab5599
MD5 63a3d479c1e1f7ef50c26c353fa8960f
BLAKE2b-256 bb1701d78d40f83d9f6cb5828f172a9b1e42e64bb7bbe4315027517b33312e21

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fb6dde0610475a12c155f37baa4ab5026aef76274bc07f1af266bda8195e32cf
MD5 8762750c2d7ca203a6f6c2a91ae93af0
BLAKE2b-256 ba6953db06ad797178d29ec97fb5baddcd89cdfd98e57879fa05a3ded1a1a4d6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4503bbb238c2a30ca6c823839cf9de896baa96a88948dc297bf5b76ac2b58e67
MD5 d67200fe9659a834788b8459dd1b7f12
BLAKE2b-256 21e541b4e9c581922dda0175f8c2554f1ee7f0efcdd226ff59ab9ea720de586f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.8.12-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 726.2 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.8.12-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 5d107f21179f28da16c513985b39b39ac35a4137d4b348e6549a80c6c919ace6
MD5 e1d8cfac1a02493df1704c15e11e1c73
BLAKE2b-256 cc2d680921f00d6701f0fe5b76932d4d4abdf7a0991ea0ee8f2a35c93cef129e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.8.12-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 742.1 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.8.12-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 235b01b3e28b5b96222a2951e9496c29201dfa68946f1deda1ce2418f3793b11
MD5 4a41f2ddce9bab506a518579c43c8c7a
BLAKE2b-256 c47906e251d44fd88a35d7808dce308bcad8ed1d5e9080d717ab0d9af25c464c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3abe6a62b8ac7f62cd59fad951fd2944ab538edd0da88c698971c4b9fe7b504e
MD5 2f7536e109ebb62b63ff981afaee03a8
BLAKE2b-256 cec043a5ca042f3e529480900973890749fd016e6a2b746cec4fe9ac9112b405

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7640611e17ba4ccafe509bcc11a6036245b8901bd690589225953028e0d8f69c
MD5 3d5033c0b65ff4f4cb2148e00698673c
BLAKE2b-256 aec21d06edc1daf207f610855be9715b3ea78d0493632378c4a40234baa5073e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1239d7b64f12c00fa7493887981b04b9957b478c08360123bcf131d5cf0f78b7
MD5 6645af568d558a547fae8c62f018bd7c
BLAKE2b-256 514903054bcfa4e867f292e199c1023cfe61f9c27e54780b497da6ffc5188998

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.8.12-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 640.4 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.8.12-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 d6c44dad80358137d4c2bb49c1f21561cea13e519e13273facd1a8703b2e86a0
MD5 3a8bc3fe9e593ed3b9b99d02d68458ea
BLAKE2b-256 72cb1ba769127ab16fae1849655597349c5bf9b03882eba0f7498143006b853e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.8.12-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 650.5 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.8.12-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fc069a7888f083c158aa145a41eedc317d5b85a56f268fa3e04aa0320efe22df
MD5 b063c257cd9e6a9619db9dd982139dce
BLAKE2b-256 c75a247d6fd3f0d1855b845b56d887d7418014137e835e650ff0d0ab1a1c408f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ebe7540b2ebad428a17a03bc401a800c0674c79f3fc68580be87e1dd75076ba9
MD5 c49984f762d80c3bd4c5fa0765a36fb3
BLAKE2b-256 258810138bda5d3327ffd695b85243f0b00b64fb18be42b1b57b25c93311c5bd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 14a38d3256125784f3dbaca2737a5110f90ee8b742094167e14a2d9f26587ed8
MD5 4122ab0d0b3137c364220274efef4c9d
BLAKE2b-256 a0c46857e5f1688d719e6e2a1b0514dc788b38afa3398fa9e2e5ffd49a4c3c53

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5b50239897c03d3d7795b05e54d86569e5205ac6c6ac707b9c4543d4e804d562
MD5 d215b5e9c381d0e69d303a378d14aa93
BLAKE2b-256 b769b0e801ab518358492219ba441b6d03a11160dc9da66fdc2ca3c8304b067e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.8.12-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 554.6 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.8.12-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 d7dcfc9faca6a5d063aba6c8f83d53f0f551b12286a6c2524b11f953b0c82731
MD5 7a548b86b3d56e397069af9fd5721894
BLAKE2b-256 7d2a4d04b8a8be63e05301db6d87fa513ff13e1b521239ffbe983117593e65aa

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.8.12-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 559.6 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.8.12-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 53d749d0f621459a764b41db40c01c5811466ad3ecf34e087cd9f2dfa087b090
MD5 1e5c80938a792840829c1b584c8b7541
BLAKE2b-256 0047c1fd58e9b4880c3201cb653c403122df37bf947e786ce46e8684b68e3c6a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 829ebbef0c4f6a631a80bf0bf39b2c6067ae1c0fdc7b3e628479c4b0d83fb49e
MD5 a6500d9a97ee909ec589b2d5e49b0acf
BLAKE2b-256 44569d605b00a1f37559878c5952b169176ae67eb881fa175307fa23ed2cc88c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1b589a7dddd791ac0b8d529a8b8ec1c4a6b47c10cf2ae7d733c99a2db9734323
MD5 24733d2265bad71d348f4614e5a3238b
BLAKE2b-256 90cc6eaa7e999209dfbb60fd1706d3826014ee33c44cc0e8d4df7751aeba51f7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.8.12-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bf8d03deec6f27781be765321263e5d2de6199861bd4dba0bf4d13a3a9e04375
MD5 48823486e411e4bf2e282bf55801332e
BLAKE2b-256 134b09943bc60b3f6cdae26f9ef8f5a60b8de753aa461ba57b7d4f0901143196

See more details on using hashes here.

Provenance

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