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.1.tar.gz (426.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.1-cp314-cp314-win_arm64.whl (920.2 kB view details)

Uploaded CPython 3.14Windows ARM64

objutils-0.10.1-cp314-cp314-win_amd64.whl (947.1 kB view details)

Uploaded CPython 3.14Windows x86-64

objutils-0.10.1-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.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (988.6 kB view details)

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

objutils-0.10.1-cp314-cp314-macosx_11_0_arm64.whl (907.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

objutils-0.10.1-cp313-cp313-win_arm64.whl (822.2 kB view details)

Uploaded CPython 3.13Windows ARM64

objutils-0.10.1-cp313-cp313-win_amd64.whl (843.9 kB view details)

Uploaded CPython 3.13Windows x86-64

objutils-0.10.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (927.1 kB view details)

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

objutils-0.10.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (886.0 kB view details)

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

objutils-0.10.1-cp313-cp313-macosx_11_0_arm64.whl (820.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

objutils-0.10.1-cp312-cp312-win_arm64.whl (736.4 kB view details)

Uploaded CPython 3.12Windows ARM64

objutils-0.10.1-cp312-cp312-win_amd64.whl (752.3 kB view details)

Uploaded CPython 3.12Windows x86-64

objutils-0.10.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (814.5 kB view details)

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

objutils-0.10.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (783.3 kB view details)

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

objutils-0.10.1-cp312-cp312-macosx_11_0_arm64.whl (734.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

objutils-0.10.1-cp311-cp311-win_arm64.whl (650.6 kB view details)

Uploaded CPython 3.11Windows ARM64

objutils-0.10.1-cp311-cp311-win_amd64.whl (660.7 kB view details)

Uploaded CPython 3.11Windows x86-64

objutils-0.10.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (702.2 kB view details)

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

objutils-0.10.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (681.2 kB view details)

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

objutils-0.10.1-cp311-cp311-macosx_11_0_arm64.whl (648.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

objutils-0.10.1-cp310-cp310-win_arm64.whl (564.8 kB view details)

Uploaded CPython 3.10Windows ARM64

objutils-0.10.1-cp310-cp310-win_amd64.whl (569.8 kB view details)

Uploaded CPython 3.10Windows x86-64

objutils-0.10.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (589.8 kB view details)

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

objutils-0.10.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (579.0 kB view details)

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

objutils-0.10.1-cp310-cp310-macosx_11_0_arm64.whl (562.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: objutils-0.10.1.tar.gz
  • Upload date:
  • Size: 426.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.1.tar.gz
Algorithm Hash digest
SHA256 e8baba1ab258fb63949d8e8fb95f6b26ed93df0a03f1af8e81aac98c181bcd30
MD5 fb08b73d322a27c1e4518550d5fbdf68
BLAKE2b-256 3a5b1dcac12c8a1b56e8fef4c505e0684b5190347441f4cc505aed2bfdab3363

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.1-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 920.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.10.1-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 1b94c9cfd526dab0d9dfb7776e210540ea79a1039745518a6d7193c2e39cdbe5
MD5 a6e154319d635a816ebf070390fc0c36
BLAKE2b-256 0c60d820cd1ee3a0c3f25f1e93277a3801bc7ff5230fd1210cf7b35fc88e6a50

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 947.1 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.10.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 575855bb6929a1b291e52091f01bffe2c78fedfe40d51b0a398e7dd7f2f30844
MD5 486482dfcd09a054c5d7fb2fc23f3533
BLAKE2b-256 c6547e0480d4d85888d98ad7bf077b4ed9d96b2a97c7af3c64f69990f4106972

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 573647af3fbeca594df8091785b6c92b3b034333071453af9adac14d9004ff33
MD5 6146614c6c9c93927582febce75b57d9
BLAKE2b-256 ce295bdb19450e22ae429cb8ee46ce46fdd7ee1d1b00430d054e1f08e477897f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 42fefc02da11b364fcee20ee8ba4a7c01998a1db48d0c5fcd668775dc239cca8
MD5 d37a273bc234c32ef4a3908df5f8c52e
BLAKE2b-256 61cf0686416e83ddc3a49c4d2ad26bb73e982cf5dac7ce79eff0b046553e34e1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c14d24ddb4b371a2b386291d3720f7a8f8607690ef375f97b042cf09089b5487
MD5 c5c8e6a8f213c30ea6507c0dda4d3a1e
BLAKE2b-256 38cac0a644b215affd40c2e75440aecbb8cf0befa3b79571080d728a5c6ca9db

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.1-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 822.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.10.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 57ed37298b198804e23df05880814619ad30723e3928e1a318ff031fcb7bad26
MD5 09cd0fadeab32fd491e8ef72c8671fbf
BLAKE2b-256 32671c667089ba1d9afd3474988db0cc74ffef3354b1f9aab9105b19c7b44fd8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 843.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.10.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d9e1ed6859eca613347e20ebe20bc84947dec50d50430c247b71d38621feee1c
MD5 ee31f2911bfe82e8ee2f9f46800e531d
BLAKE2b-256 32d9ac6b228ad61b7a7d2fce75b15c3dfb6921d203cd5262932c317ec0dbc552

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 57595f4b5db2dd17a10c6617f01ed7498432a986a353f1f2b683293217e1c5a1
MD5 95bc8ed5162a03a0abad63683cbc8500
BLAKE2b-256 c356d80040f62d6d7a4a9222f0c8571dbc8af76846f8bd9ed46ef6f34efd2db5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8f241028d0fbc74486d769af932235840cdb6e39336b463341ec35d55a6b2493
MD5 3f6972a799b4e6f05a244f9f949a3bc0
BLAKE2b-256 b725ecd333181779784121658b0cd3d3c370ba416259a4a9263ed89156cd7c00

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 afd2bfe3e6140e902e7ab96ced1ac5286d4a77c59f915b3723dd1f9928e4be02
MD5 0fdd2bb8f4fcb1b1b6ebdf765f4c9868
BLAKE2b-256 dcd81fb8908e087a0e97c3b19900862c072238cad8b912af9c9cb86f36f2fae5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.1-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 736.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.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 9b0758ccef66779f95c4bcef45b60f2ca09bf782361b9e517198d4cabe2ffb03
MD5 c36f38d41ec7bfe391d7bc38d7228840
BLAKE2b-256 23c5e9e02ce1a48d82ae249d78ce4df9b6c174d4811bbd7afb3c384aea7b4e7c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 752.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.10.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a15d75d220772ffca4bfc3d11bccfa3895d82393f2b162872c43d64884c52a38
MD5 83d175fe7acea66823c0f26df4c5a187
BLAKE2b-256 2660b28e9a8ec6177ddb07321ec344db5a6801b47c37d345c65cec35ffc32942

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 404e3c07640189b051f8c01e229efa51617fe44f0b3ecb06f46da57ea2c5a449
MD5 0d47fdcf45526c348f41f54d3ecf3703
BLAKE2b-256 721a1e6e05cb9bf885213e04a4632bf0c90d192d3c017e6a9727353520c7c546

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 413f815dee8a411970939c46be5a83fa690c434a33b3a5dd4deb15a8641449dc
MD5 5d20156f298d4ecd0232cbbf72d8e1f7
BLAKE2b-256 f22f8fe4200f33be0a91e3eac1dfeba18d81543f4c0c8f4ab99aa39d34d9b09c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c7665ecb95bdb706028fed08a8539e5155e85db24b16044a4c4b2a5de304bd28
MD5 64255bab2f723a600bb3e999cec2f076
BLAKE2b-256 717d935ecdda56f582c4242252678516bb48c352a126d66d172233910ff92ce5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.1-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 650.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.10.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 94cbe4854590f703473629fd47ac759bfa80e92286403a06da1cf8a7bd0e772e
MD5 9b229cc12d262c0e682c3ae52367aaa4
BLAKE2b-256 a20755b72874e40059508adc5d9a600dd1a5472437d23da4cff428e2fc3a5185

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 660.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.10.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 474122f85cbe065b82299ebe73cceefca0c7ffb5051e29ce2cde9cdce206a510
MD5 bdbc3176f7012f1d6227ec1108309ed2
BLAKE2b-256 bce73ccee2826f273453aab24974aa4e5443fbd96b1c31042c14b921eac1bcc9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6df4497efef50dfbfe64b64ac518633a11dd59504f5942b9d7b0f7f8a3e9bb5e
MD5 600f669352f9debbcd8cff0359e54d88
BLAKE2b-256 1ae1c62f7ead4958f82c92f0b11e03d10651098f08b7ca96ae4e758df5fb73b3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5da438426c99e309e9f8469630cbc140031d8f7ba436c79a6ec8b20c3fa8f96d
MD5 553411e0b43f608fb523f298cb04f121
BLAKE2b-256 190504f4f51b99b279b4b0875448915b92899ee4c79632901c79b5064b27f2d8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 85b73d8f6e0695c1a05363d49a5c5f2fe18330708a6827cdfa874500d1bbf5b3
MD5 73ec2a9c131ac882365f58ff266591a7
BLAKE2b-256 2d1e633fd42bfe259c9e5bbe3832b0f8703e18cf0234c159b0eb82c278533379

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.1-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 564.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.10.1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 860cac3e4efd5ca62b72120532ac70f08bc15e39c29151e13e639836c33305f0
MD5 61d121074d6e05a9b44bba23df41eccc
BLAKE2b-256 0d902597e93755b7b481c730b91217d4fba90cb53445b74f00c6c67c78beaa3d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.10.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 569.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.10.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b8ada14ac5c713a78357b94cc3cb2dfcd8eeee02e5deb04c658f6b95247347fb
MD5 d683b2e685d0a1ab3226246a5857dd2a
BLAKE2b-256 a5fee6fe4d9d77712a5d73a14b0ce067183ad44382e3650c52df5482e619d016

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7a854e637fd2fd6f9ea45ea6b6ca62fcc1e24ee2b00708a7a30c9d5b0b491270
MD5 afe2475a11526754f74abe82414fcc43
BLAKE2b-256 848875780fba48e9351663637a1ac788dcce4fbd2529408caa24a44404f655e3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4a248fc5b5a5d60e640ea554b15777b3e752e153a859e8d8599e48070521d932
MD5 cfd3bf1ac936ac474c8a82db0805e11b
BLAKE2b-256 aea5a1263246ff3042760bf6a7cbb317f7429a970a68e7877410b6193bdf0d03

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.10.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 05209c78e89ffa218448de490ed08b4262f694364ccb598e63c2633b387fe416
MD5 503a23d47b07a76a8a76c6789088fb26
BLAKE2b-256 9bee987362cc7b9dad99e1f543ad545ee7a45974d7adf7509d0e2b1c0c3f4940

See more details on using hashes here.

Provenance

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