Skip to main content

Objectfile library for Python

Project description

https://github.com/christoph2/objutils/raw/master/docs/objutils_banner.png

PyPI Python Versions License: GPLv2 Code style: black

Binary data stored in hex-files is in widespread use especially in embedded systems applications. objutils gives you programmatic access to a wide array of formats and offers a practical API to work with such data.

Get the latest version from Github

Installation

pip install objutils

For development (editable install):

pip install -e .

Or with Poetry:

poetry install

Prerequisites

  • Python >= 3.9

Features

  • Read ELF files (including symbols) and extract loadable sections.

  • Inspect PE/COFF files and symbols (optional PDB support).

  • Typed access (scalars, arrays, strings) to binary data.

Recent improvements

  • New oj-dwarf-import CLI replaces dwarfer.py/cu_info.py for DWARF imports, CU listing, summaries, and attribute traversal.

  • Faster DWARF imports: batched ORM writes, quiet flag propagation, and safe DWARF expression evaluation keep large ELF files stable.

  • Exception handling and typing tightened across DWARF/ELF/PECOFF modules and public APIs to surface real errors without masking them.

  • ElfParser.close() releases SQLite/mmap handles; examples/tests now close parsers to avoid database locks.

  • S-Record metadata stays minimal and numeric (no data records mixed in); Mostec/Tek SREC roundtrips now reproduce expected files.

  • Fortran-ordered ndarray reads/writes honor legacy column-major expectations; hexdump empty rows keep canonical spacing.

Supported HEX formats

objutils supports a bunch of HEX formats…

Current

  • codec / format name

  • ihex (Intel HEX)

  • shf (S Hexdump (rfc4194))

  • srec (Motorola S-Records)

  • titxt (Texas Instruments Text)

Historical

  • codec / format name

  • ash (ASCII Space Hex)

  • cosmac (RCA Cosmac)

  • emon52 (Elektor EMON52)

  • etek (Tektronix Extended Hexadecimal)

  • fpc (Four Packed Code)

  • mostec (MOS Technology)

  • rca (RCA)

  • sig (Signetics)

  • tek (Tektronix Hexadecimal)

codec is the first parameter to dump() / load() functions, e.g.:

img = objutils.load("ihex", "myHexFile.hex")     # Load an Intel HEX file...
objutils.dump("srec", "mySRecFile.srec", img)    # and save it as S-Records.

First steps

If you are interested, what objutils provides to you out-of-the-box, refer to Scripts documentation.

In any case, you should work through the following tutorial:

First import all classes and functions used in this tutorial.

from objutils import Image, Section, dump, dumps, load, loads

Everything starts with hello world…

sec0 = Section(start_address = 0x1000, data = "Hello HEX world!")

The constructor parameters to Section reflect what they are about: A continuous area of memory with an start address.

data is not necessarily a string, array.array**s, **byte, bytearray will also do, or from an internal point of view: everything that is convertible to bytearray could be used.

Note: start_address and data are positional arguments, so there is no need to use them as keywords (just for the sake of illustration).

Now let’s inspect our section.

sec0.hexdump()

00001000  48 65 6c 6c 6f 20 48 45 58 20 77 6f 72 6c 64 21  |Hello HEX world!|
---------------
       16 bytes
---------------

hexdump() gives us, what in the world of hackers is known as a canonical hexdump.

HEX files usually consist of more than one section, so let’s create another one.

sec1 = Section(0x2000, range(1, 17))
sec1.hexdump()

00002000  01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10  |................|
---------------
       16 bytes
---------------

Now, let’s glue together our sections.

img0 = Image([sec0, sec1])
print(img0)

Section(address = 0X00001000, length = 16, data = b'Hello HEX world!')
Section(address = 0X00002000, length = 16, data = b'\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10')

Images are obviously a container for sections, and they are always involved if you are interacting with disk based HEX files.

dump("srec", "example0.srec", img0)

The resulting file could be inspected from command line.

$ cat example0.srec
S113100048656C6C6F2048455820776F726C64217A
S11320000102030405060708090A0B0C0D0E0F1044

And loaded again…

img1 = load("srec", "example0.srec")
print(img1)

Section(address = 0X00001000, length = 16, data = b'Hello HEX world!')
Section(address = 0X00002000, length = 16, data = b'\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10')

This leads to the conversion idiom.

img1 = load("srec", "example0.srec")
dump("ihex", "example0.hex", img1)

Note: the formats above listed as historical are for one good reason historical: they are only 16bit wide, so if you want to convert, say a srec file for a 32bit MCU to them, you’re out of luck.

OK, we’re starting another session.

sec0 = Section(0x100, range(1, 9))
sec1 = Section(0x108, range(9, 17))
img0 = Image([sec0, sec1])
print(img0)

Section(address = 0X00000100, length = 16, data = b'\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10')

img0.hexdump()

Section #0000
-------------
00000100  01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10  |................|
---------------
       16 bytes
---------------

Two sections with consecutive address ranges concatenated to one, this may or may not what you are expected.

For this reason Image has a join parameter.

sec0 = Section(0x100, range(1, 9))
sec1 = Section(0x108, range(9, 17))
img0 = Image([sec0, sec1], join = False)
print(img0)

Section(address = 0X00000100, length = 8, data = b'\x01\x02\x03\x04\x05\x06\x07\x08')
Section(address = 0X00000108, length = 8, data = b'\t\n\x0b\x0c\r\x0e\x0f\x10')

img0.hexdump()

Section #0000
-------------
00000100  01 02 03 04 05 06 07 08                          |........        |
---------------
        8 bytes
---------------

Section #0001
-------------
00000108  09 0a 0b 0c 0d 0e 0f 10                          |........        |
---------------
        8 bytes
---------------

One feature that sets objutils apart from other libraries of this breed is typified access.

We are starting with a new image.

img0 = Image([Section(0x1000, bytes(64))])
print(img0)

Section(address = 0X00001000, length = 64, data = b'\x00\x00\x00\x00\x00\x00\x00...00\x00\x00\x00\x00\x00\x00\x00')

We are now writing a string to our image.

img0 = Image([Section(0x1000, bytes(64))])
img0.write(0x1010, [0xff])
img0.hexdump()

Section #0000
-------------
00001000  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00001010  ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00001020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00001030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|

img0.write_string(0x1000, "Hello HEX world!")
img0.hexdump()

Section #0000
-------------
00001000  48 65 6c 6c 6f 20 48 45 58 20 77 6f 72 6c 64 21  |Hello HEX world!|
00001010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
          *
00001030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
---------------
       64 bytes
---------------

Notice the difference? In our Section example above, the string passed as a data parameter was just a bunch of bytes, but now it is a “real” C-string (there is a opposite function, read_string, that scans for a terminating NULL character).

Use write() and read() functions, if you want to access plain bytes.

But there is also support for numerical types.

img0 = Image([Section(0x1000, bytes(64))])
img0.write_numeric(0x1000, 0x10203040, "uint32_be")
img0.write_numeric(0x1004, 0x50607080, "uint32_le")
img0.hexdump()

Section #0000
-------------
00001000  10 20 30 40 80 70 60 50 00 00 00 00 00 00 00 00  |. 0@.p`P........|
00001010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
          *
00001030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
---------------
       64 bytes
---------------

The folling types are supported:

  • uint8

  • int8

  • uint16

  • int16

  • uint32

  • int32

  • uint64

  • int64

  • float32

  • float64

In any case, endianess suffixes _be or _le are required.

Arrays are also supported.

img0 = Image([Section(0x1000, bytes(64))])
img0.write_numeric_array(0x1000, [0x1000, 0x2000, 0x3000, 0x4000, 0x5000, 0x6000, 0x7000, 0x8000], "uint16_le")
img0.hexdump()

Section #0000
-------------
00001000  00 10 00 20 00 30 00 40 00 50 00 60 00 70 00 80  |... .0.@.P.`.p..|
00001010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
          *
00001030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
---------------
       64 bytes
---------------

This concludes our tutorial for now, but there is more stuff to follow…

Documentation

For full documentation, including installation, tutorials and PDF documents, please see Readthedocs

Bugs/Requests

Please use the GitHub issue tracker to submit bugs or request features

References

Here is an overview of some of the classic hex-file formats.

Authors

License

This project is licensed under the GNU General Public License v2.0

Contribution

If you contribute code to this project, you are implicitly allowing your code to be distributed under the GNU General Public License v2.0. You are also implicitly verifying that all code is your original work.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

objutils-0.9.1.tar.gz (422.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

objutils-0.9.1-cp314-cp314-win_arm64.whl (916.4 kB view details)

Uploaded CPython 3.14Windows ARM64

objutils-0.9.1-cp314-cp314-win_amd64.whl (943.3 kB view details)

Uploaded CPython 3.14Windows x86-64

objutils-0.9.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.9.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (984.8 kB view details)

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

objutils-0.9.1-cp314-cp314-macosx_11_0_arm64.whl (903.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

objutils-0.9.1-cp313-cp313-win_arm64.whl (818.4 kB view details)

Uploaded CPython 3.13Windows ARM64

objutils-0.9.1-cp313-cp313-win_amd64.whl (840.2 kB view details)

Uploaded CPython 3.13Windows x86-64

objutils-0.9.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (923.3 kB view details)

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

objutils-0.9.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (882.2 kB view details)

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

objutils-0.9.1-cp313-cp313-macosx_11_0_arm64.whl (816.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

objutils-0.9.1-cp312-cp312-win_arm64.whl (732.6 kB view details)

Uploaded CPython 3.12Windows ARM64

objutils-0.9.1-cp312-cp312-win_amd64.whl (748.5 kB view details)

Uploaded CPython 3.12Windows x86-64

objutils-0.9.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (810.7 kB view details)

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

objutils-0.9.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (779.5 kB view details)

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

objutils-0.9.1-cp312-cp312-macosx_11_0_arm64.whl (730.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

objutils-0.9.1-cp311-cp311-win_arm64.whl (646.8 kB view details)

Uploaded CPython 3.11Windows ARM64

objutils-0.9.1-cp311-cp311-win_amd64.whl (656.9 kB view details)

Uploaded CPython 3.11Windows x86-64

objutils-0.9.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (698.4 kB view details)

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

objutils-0.9.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (677.4 kB view details)

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

objutils-0.9.1-cp311-cp311-macosx_11_0_arm64.whl (644.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

objutils-0.9.1-cp310-cp310-win_arm64.whl (561.0 kB view details)

Uploaded CPython 3.10Windows ARM64

objutils-0.9.1-cp310-cp310-win_amd64.whl (566.0 kB view details)

Uploaded CPython 3.10Windows x86-64

objutils-0.9.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (586.0 kB view details)

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

objutils-0.9.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (575.2 kB view details)

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

objutils-0.9.1-cp310-cp310-macosx_11_0_arm64.whl (558.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for objutils-0.9.1.tar.gz
Algorithm Hash digest
SHA256 ad1a6745318e7e4e935b985c6e3f7adb5487d68e1217c76ecc1c201b4f22b05f
MD5 1ecb28225d6b9cf08c51dee797db6e6a
BLAKE2b-256 ba601c9491a356fbcf3159bee573c604ab59e9b2660c9bf032c8829ba443493d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.1-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 916.4 kB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.9.1-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 81a822665bcf91787912d3ad9f80d270b8b399992655b36771fb73b5866e2367
MD5 3807fe6213981f2cede64d27ba416e72
BLAKE2b-256 3fc3a9107bb44ba066715a281a203158ee53d9453be5037180d8410906cfe954

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for objutils-0.9.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 21886ef43965c07ae53e0f9c04ef3c25bece08c7676cb461ad8b474efd5c95cf
MD5 c36357385212e5e14f943aa3f149ea21
BLAKE2b-256 b8d16fcada89a522d005bbb502f8732b3a3be018e1bf65c2a0dbb48bc2f64770

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 941b53448758dcd50ddb934dd3bbbbc34297f21750c904555b8f2a04c1c2f517
MD5 358976ac7b6a38bbc9aedec79c4bcb24
BLAKE2b-256 45f006dac27e84c22aae2464dce59e6cb7c14a750ec7aa840b04b61e4c3b064c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4b296f34da6c6dafe586dcf8442e0c69d43c6b639f139c5ed11ac9d31be64429
MD5 dd9728bb835963e94fd5c8f1a475fd8b
BLAKE2b-256 aa1704f97b10f6be0b43933cf1d8593d808e75a8e90b9e88bbc4304caa01573a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fd9bd4c48d897dc6f6fb8ba5d8bc57e2215d607acac304eb0d44b0dea8e39784
MD5 50e4f9c454735ff509f50cd8e878d297
BLAKE2b-256 ab198165d0c05a50126888b5e0f3754bfc89e915d335500ce68fd9c2b8b9a71f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.1-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 818.4 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.9.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 cfed660583cda708ba33e2465425f9ef07e6ffcd079f5c954b3629ce6ddc3533
MD5 d62efa7dee60537c1d2c50b44bf734d5
BLAKE2b-256 cf900c04870008f3f103cecb83dcb3dc7190427b6a66a3c579a0fa8a5de32589

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 840.2 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.9.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d0ce969276171cff747661d8b6b40170c094d5e395dd41e4724cfb8b3c8e2cef
MD5 8654a2ded90115cb52d65f1f87cfe276
BLAKE2b-256 fc4b244b5d2817d6a64ef081925092c025c76fcbb93d953c2f09fb1c5d6e6137

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1b5ba22a8fc233b5d016142bc3ba580aa4b164600bed45ad45a9ed3b3c9fedba
MD5 29b1e87503b1668626034ec2affeca84
BLAKE2b-256 0a71633dfc615639b74034a3722f2ee6680d652c41be6fb0e542e09762d09edf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a9a77f5e1bbaaf100d1d28846d48329d9c9565866046482c68da5dba5ce57033
MD5 8f02905218b52b146234228cb227d9d7
BLAKE2b-256 61132bc50f26b724b0701271ec1e7dbf456c41f0e866a602e5dee7378b8d263e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d77d5af14119635c4a2cfce9f87989be994359b86f399e09b5f2cdb9ce3c977e
MD5 2b9ea9b90b76cca37df93b8ed3b56844
BLAKE2b-256 7c079e77f72bb395a17267de4141601529ee9d7e3e46d8e99f3e9c1541a9bc26

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for objutils-0.9.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 b621f53fb316c5a070426dca52b3f6f9aaeef02f16da4000583c369a411d70ed
MD5 da1917a5e98acb02963900f2ed7f714b
BLAKE2b-256 b7073283284ab83728e6f418cbb4b77b92e8e7f5b10912313a2ee8f9287cc8dd

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 748.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.9.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9c067d0f4d62a98a6a14647b5feff29760757042fb3457f80e7d944f44264727
MD5 256bd94e623599fd945a75343a4b8a5d
BLAKE2b-256 83cd20b24cac5a05755e22eafac532a2ed2b348682bb46e1d1eb619b8930f7c8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 45c5042c2da7d4d9cb26003a1d723cb2cce958b80516102114e6cb960e488d8e
MD5 71ddaf030188cdeccc26e2eb632913ea
BLAKE2b-256 920f20e65472589d84b4a26fa644acb372ddde98d1047a97c51956faaa466186

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 003cf6398880131b4f17d03adb3c0ba38685916fed33dda1cf31c6b5eff66c2b
MD5 1b06d8eb7361eea543897d31411db6b9
BLAKE2b-256 19f9c3f11541cbf0f7dd46045e0831a2ed6e729e7808259ab14432aed94665b1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 90cd59a7f444143bcf6ecedd8589d56f3b50cb91c2a2460ee03be76d2a1fa7c5
MD5 9daff0da251f380318cc309d5bed4134
BLAKE2b-256 cee2a205f2b6d0b33a81a8afd5a188b0e1a2cea42bf24459a9f83bb2c64355b4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.1-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 646.8 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.9.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 6fbdce83d90e149732bf52addb305e5d133023a9c802091701c370a1ed839e9f
MD5 722fc8e9e7180134a2261391cfb4e2d7
BLAKE2b-256 02124cc14d8c893f09234e1527eb039b1911a729fb02080620faf812356d4441

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 656.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.9.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ac550940c660c950611e86fa9924b9e7b490b9128656970e364213c047b89db5
MD5 d28e4f43d301dc85eccf8a15014c2102
BLAKE2b-256 e4439ff99d277a337f19000fbcb75e8c1cf142ea1d41ac8a27eb34d020ce4413

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3aa7751f6903e37432c73b4bb772042c3201576ee7f8c1b991292050b6653c15
MD5 5b837e1cd46f818fcaab72abf04668c8
BLAKE2b-256 32a8e75f30ccc57239cdb53759fa585bca630c1512b5b435bc8d977c41510252

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 460c24a1159ec58ff86fa36601fe2356e9165315c4fa46f7cdf479abf78670d7
MD5 f2439d231272ad31523930683e6f1633
BLAKE2b-256 e15ca1f828d7cd1fcc2ffdf7182a009e15587c749b424354b2a253fa3c2c7817

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 01b9a864e10d549a3cca9f60132d77e50f33a6bb5263fd86c7b96c6fc249c5d6
MD5 f088ffa18d6498c6aade2480d7f280d8
BLAKE2b-256 dcb3ed79a95b17126efb91d6e9ae11788c78d1e256adc1d6481b3c25eeb146fc

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.1-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 561.0 kB
  • Tags: CPython 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.9.1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 02c8d5883a0dc8f7fa1797d2c2e6a71d3d4cbd9ba27d2d8d2981711892a2427e
MD5 d9af88de84601810c9492708961093f5
BLAKE2b-256 60157a656b6b9a59771ef5f775fab4fbb2a46411f13d0f9090c62c10cedf6284

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: objutils-0.9.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 566.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for objutils-0.9.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4c794c4e4c69772ec9efbcb11cb7ae3425778f57069a6740ee720bfd909f78de
MD5 4c692668afa288bb6bb73f9119f64714
BLAKE2b-256 b7aca84c884d49fb88b21972e03834e963a7a8846810b0ed40d592121e456e21

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 22db0e2132aa45243d3493ad22e04b3d8336679d17366b0d457629dc695c49a1
MD5 bb47aa9d6f6484a84c0c27b11fe11c1a
BLAKE2b-256 4162b1ad56d445ce868e64965adbd973524c724ad8ee38b8ab43430655412ca7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 75619c9294250fb73d11797ea4f2630738a0c1b7cce301b5a3d787ba97ad39d5
MD5 74254169809e05adc1a2206f0bc22298
BLAKE2b-256 881b5acf97311fc34eabdb7a6acb09b6f52dfee683496b27a275633aef6f71ea

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for objutils-0.9.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 adccd014f4e37594cd86fc0ac47f1b66924724efb61031a318dce610847d2f79
MD5 8c600890b9b2160162972aab81ceac03
BLAKE2b-256 6598bc8ed8cfa8cfc462fb9c1ea829d5e3cb6e1806ecddf64d2b47a299b2985f

See more details on using hashes here.

Provenance

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