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.

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.2.tar.gz (427.4 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.2-cp314-cp314-win_arm64.whl (921.3 kB view details)

Uploaded CPython 3.14Windows ARM64

objutils-0.10.2-cp314-cp314-win_amd64.whl (948.2 kB view details)

Uploaded CPython 3.14Windows x86-64

objutils-0.10.2-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.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (989.7 kB view details)

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

objutils-0.10.2-cp314-cp314-macosx_11_0_arm64.whl (908.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

objutils-0.10.2-cp313-cp313-win_arm64.whl (823.3 kB view details)

Uploaded CPython 3.13Windows ARM64

objutils-0.10.2-cp313-cp313-win_amd64.whl (845.0 kB view details)

Uploaded CPython 3.13Windows x86-64

objutils-0.10.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (928.2 kB view details)

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

objutils-0.10.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (887.0 kB view details)

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

objutils-0.10.2-cp313-cp313-macosx_11_0_arm64.whl (821.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

objutils-0.10.2-cp312-cp312-win_arm64.whl (737.4 kB view details)

Uploaded CPython 3.12Windows ARM64

objutils-0.10.2-cp312-cp312-win_amd64.whl (753.4 kB view details)

Uploaded CPython 3.12Windows x86-64

objutils-0.10.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (815.6 kB view details)

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

objutils-0.10.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (784.4 kB view details)

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

objutils-0.10.2-cp312-cp312-macosx_11_0_arm64.whl (735.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

objutils-0.10.2-cp311-cp311-win_arm64.whl (651.7 kB view details)

Uploaded CPython 3.11Windows ARM64

objutils-0.10.2-cp311-cp311-win_amd64.whl (661.8 kB view details)

Uploaded CPython 3.11Windows x86-64

objutils-0.10.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (703.3 kB view details)

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

objutils-0.10.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (682.3 kB view details)

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

objutils-0.10.2-cp311-cp311-macosx_11_0_arm64.whl (649.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

objutils-0.10.2-cp310-cp310-win_arm64.whl (565.9 kB view details)

Uploaded CPython 3.10Windows ARM64

objutils-0.10.2-cp310-cp310-win_amd64.whl (570.9 kB view details)

Uploaded CPython 3.10Windows x86-64

objutils-0.10.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (590.9 kB view details)

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

objutils-0.10.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (580.1 kB view details)

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

objutils-0.10.2-cp310-cp310-macosx_11_0_arm64.whl (563.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: objutils-0.10.2.tar.gz
  • Upload date:
  • Size: 427.4 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.2.tar.gz
Algorithm Hash digest
SHA256 113f0e39e567343c27330c1dafe7484a769a29cfb2dc58b09b895e79ec341893
MD5 8bc5b2732ccce2dd27f2178f7d43aa5a
BLAKE2b-256 75b9d06d101e5e5ff7fbc019724301342405de041d3d2c616eb7cb6df1293b10

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.2-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 921.3 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.2-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 aea88d1c8662b4c45d4cf49aec0ab44c0eb86a28e2390515f4f9bc594ee45305
MD5 86ee2e6f3cf3d5585e06ac1968096e31
BLAKE2b-256 085670dd99493a418d5b362298a074bf022904c708abcfb9cc7eb7ba9f16ed16

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 948.2 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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3f191c28ca750f989327fb243d4d80b689dc123cefbfd1c9348c47ba5ce6dfaa
MD5 0e0480d479b631befadbb3bca1f8bbfa
BLAKE2b-256 f7fb0795e45be3a738d26ebd3ae9b8ea04f0592b1e6274e71b0f02bb6a010f48

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6d07a7aa71ab3a8ce8162197bff2f8fd97539d9e0e213351ab8a735093656812
MD5 5746507fb57d4cf180e48ec5235cd6b4
BLAKE2b-256 73d04c07af7c5e3f39c8f378b23e2a1e89a0362605ecf3cd9c52dea2d85ba567

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 31246c1ba8c8f52c8480ec35d24dee7e1d2ad3c8a7adf60becb9d290a99c5237
MD5 9cb2705b62764a2325faa5c1d7df400b
BLAKE2b-256 74ba56ad098f5de4b7411ba0ddb84988d711f846c5a52b685ee5a34d3d347822

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0230a1a493869f54a6c87fbdf961e37fcb76e1f42ad7b3b43e58973ed031a535
MD5 2d23b9ff9a755a061041b3f4ed7aebb0
BLAKE2b-256 ffeafbfd0086294aff2a88c647cd60ebdb2b93be24e90a1d21b611818ce454bd

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.2-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 823.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.2-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 d2496dd64fc0d21f8079c384c46dfd940e11b6e05bd8a53ba07c03bc8d4f36b5
MD5 798610fe2eb368569945768dfaf8c6da
BLAKE2b-256 0d7059b251c68865621d65d96b4a78498734680c92242e575c530a0751f083ab

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 845.0 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9e09c97a2d2f1e7526422dc21eaabf23400b9cb1559a2eaedf99006e3866324c
MD5 7981633e0a4051f731f5ef7c80c5e04d
BLAKE2b-256 74c75cfa818610ad995fc3d6bd30be65bddf52185045b5ab16e505d326ca2094

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 088079317d2f7ed26bfe54391f553f4a6ba7770bb1b17d4cd7d79ff665208c3c
MD5 0f62fe55850c4aba41f63a3580a4314b
BLAKE2b-256 30702f8841a4e44b308fb03e0c5d127753cd53e8df0437017c8bb822392a712e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e7f08a02d586eb954b05f8b99ed5eebb2aa9bb83cf434f9aac2ff1cb359f66ed
MD5 491c3f5bf1a045656a83782edb00df1a
BLAKE2b-256 b9f64427337e257ec67a6deaa41b974a41f9297135b1315208507b04a91bf394

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9f4ceae2cad9da53c4346243d36c2c06c8c85b2a3cee38e41e4aec0860389d21
MD5 2f6fa49378c0bbbd3b093407c19d3996
BLAKE2b-256 c6ae7dec38608418c5b9dbf20fe5db40883b1fe2542859631768675fe5cca461

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.2-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 737.4 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.2-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 e235f8f8d3c7463c65f56d8943ed9c7d69ccf441e4db744788e0ffc1acb9abc8
MD5 856601baeaa211a4372d92a1f4af7545
BLAKE2b-256 c8aa92c8254a0e8220519f4c6d602611a7dbf16729acd1639662b99d4120df32

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 753.4 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 767b51f7293462a659ab45e192686d466c9946f5a3262e6f6999c10649448e77
MD5 7177cf7496c50b4d4d0d41c3a0019caf
BLAKE2b-256 e3d1f4e00c5ac39a22569820f0c3ebff4efd119988857b1bf2cf3f5222832948

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9ffa5ffd0a6bcb1b6dddf588182646cf33dfbeedc112269ba952ce8a44974fa8
MD5 beb08ace5f464879768fd9bf9c3b9f0e
BLAKE2b-256 6ad7a89f29c201c3f1f0a2c84d3a992d7e5a31da93b3fad8865e7feb675baa3b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1c5a7a83118bad6e9893d69851bc88295b960ac7411f7209d0a5dc473bdbe658
MD5 5795b8ca72656a9d2a3609f929a7a783
BLAKE2b-256 e02e9d19164bba1eacb8deb4717be9ee047876d0e94752c049a00137fa10ae54

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4115545f7ca2a5000f30d9c31256239ed155056cc502ed3356e6f9074356b8e8
MD5 32bdc7daabeaa8c9d958a4586f5d9a10
BLAKE2b-256 9ba0d3d959763d6c732a6e767aa9c914a5e867bed7c30f864495f2701c47ca42

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.2-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 651.7 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.2-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 130c6b5463735196489ac06406cef17c08957c0dee4dc3f058d0fac4052895d1
MD5 ab7f3c1a68157bde277e946715ffb89c
BLAKE2b-256 38a4fae66de8d4047d9010b2ab103d754e63c1ef5743b948f3fcc0bbac84a0b5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 661.8 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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e356a0b01a0d5f82c3d1b4413a8f6d7c7ce562a18124af0af6a1b61f06f39dbc
MD5 6ca1a4741ce80286aec5a9a1921a6caa
BLAKE2b-256 77b1dfffd9d6052c233c9d9bbcd86af879e138dd898ec280f25895ae9939425d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 08a7abc4ba06718a51f1bc7b7efa572775c7ac7d2bee2013e7ad76427d03e802
MD5 61b599aa05d68c62934c28a07c2fe2cb
BLAKE2b-256 f604791578624931fc2b3258bc64cc2fd5801b664bd808f7d7a644a8fdc64f89

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 51ef7068e0fcb8495547ea63291037273b099baa84466c703bba1f34a59b54e9
MD5 4bb950c97b9cf21eef8fc7b14451bcc6
BLAKE2b-256 4a945909e1d780086a3e05825af3ef983e14a9aef9dc87633bd3b7821dcfde60

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81e36f32f7408562aeca35cacc44f15fd92c527eb61307ed427db46aa5785611
MD5 8c7fb2fc962f8ef5ca2d2c8423f4c010
BLAKE2b-256 c4b310313d5ad114c5e4653e3cd5b2a447a14f04263cbb7da9e12d390a6c747d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.2-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 565.9 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.2-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 c9612823b2752cd0ea7a1124e0d34ab77be570e07857cbf17913657437fc1ea0
MD5 6573785b2f59c3df2a41b70118fa6b98
BLAKE2b-256 b35ee8c12679a11f77078d6e6bada0a3a41d8b8a6b7bed7de183ef2f3da47d82

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 570.9 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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 62c886b2ca5b07453855e81e928dd8853eaed7902d0f1127910b805879e7e533
MD5 438ce9b40d44d5e51ab5c964bc8b5ff7
BLAKE2b-256 e07545d2644d7c061f1fae44211765004d2244e5c744c1d7dcfc634c7a51bf6d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 588080c599f0732bec2b66e86a6617b2140160afc3f2275d54207103dc537a34
MD5 ea554669be15852106273d6a35dd22ed
BLAKE2b-256 62d25db10bb07cf305e739c511241c466582ccd81bfc15b6f53323ff06ad4bfa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 88148a7783a9c1f45f5e65cdafdf5a095cd49daaf0911f43aced597cbc52672d
MD5 43ae1c46dc47f70a455b0508f90e2d18
BLAKE2b-256 de74cba3747f7128898dfe4c6e1999128ae9a6efdbacf7588bcaf555ebc80741

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a2c1b8b578ce5a767aeb80d68304edb3cca36ae325cf5ddd46d191b7d8d182c6
MD5 beb345f2bb23b0bbee0da9b9093cba67
BLAKE2b-256 b1b1ab27ce94c3ff076603bc1135f972a7f087e1a7bf6855d70be39b6c8177df

See more details on using hashes here.

Provenance

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