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 Ask DeepWiki PDF Manual

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).

  • Merge multiple HEX files into one (oj-hex-merge).

  • Split HEX files into separate sections (oj-hex-split).

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

Recent improvements

  • New oj-hex-merge and oj-hex-split CLI tools for combining and partitioning HEX files.

  • 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')

Or split it into its sections…

images = img1.split()
for i, img in enumerate(images):
    dump("srec", f"part_{i}.srec", img)

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.12.tar.gz (4.4 MB 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.12-cp314-cp314-win_arm64.whl (597.2 kB view details)

Uploaded CPython 3.14Windows ARM64

objutils-0.10.12-cp314-cp314-win_amd64.whl (613.0 kB view details)

Uploaded CPython 3.14Windows x86-64

objutils-0.10.12-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (609.4 kB view details)

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

objutils-0.10.12-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (600.0 kB view details)

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

objutils-0.10.12-cp314-cp314-macosx_11_0_arm64.whl (593.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

objutils-0.10.12-cp313-cp313-win_arm64.whl (594.1 kB view details)

Uploaded CPython 3.13Windows ARM64

objutils-0.10.12-cp313-cp313-win_amd64.whl (609.9 kB view details)

Uploaded CPython 3.13Windows x86-64

objutils-0.10.12-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (609.5 kB view details)

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

objutils-0.10.12-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (599.9 kB view details)

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

objutils-0.10.12-cp313-cp313-macosx_11_0_arm64.whl (593.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

objutils-0.10.12-cp312-cp312-win_arm64.whl (594.1 kB view details)

Uploaded CPython 3.12Windows ARM64

objutils-0.10.12-cp312-cp312-win_amd64.whl (609.8 kB view details)

Uploaded CPython 3.12Windows x86-64

objutils-0.10.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (609.5 kB view details)

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

objutils-0.10.12-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (599.9 kB view details)

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

objutils-0.10.12-cp312-cp312-macosx_11_0_arm64.whl (593.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

objutils-0.10.12-cp311-cp311-win_arm64.whl (594.0 kB view details)

Uploaded CPython 3.11Windows ARM64

objutils-0.10.12-cp311-cp311-win_amd64.whl (608.6 kB view details)

Uploaded CPython 3.11Windows x86-64

objutils-0.10.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (608.4 kB view details)

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

objutils-0.10.12-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (599.7 kB view details)

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

objutils-0.10.12-cp311-cp311-macosx_11_0_arm64.whl (593.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

objutils-0.10.12-cp310-cp310-win_arm64.whl (593.3 kB view details)

Uploaded CPython 3.10Windows ARM64

objutils-0.10.12-cp310-cp310-win_amd64.whl (607.2 kB view details)

Uploaded CPython 3.10Windows x86-64

objutils-0.10.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (607.3 kB view details)

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

objutils-0.10.12-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (598.6 kB view details)

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

objutils-0.10.12-cp310-cp310-macosx_11_0_arm64.whl (591.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for objutils-0.10.12.tar.gz
Algorithm Hash digest
SHA256 f33fcb1a6f8b3a66d5357889d437297264404e007dd6fea35f844886be925709
MD5 32da8b1b595861fc1ee6a017646e80fd
BLAKE2b-256 b5771d9f06b9e93ad509e3c2b50787e2a6d97d9c21c7cc7ab100d4ae74ab8fc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12.tar.gz:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.12-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 597.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.12-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 c78ec144fa1ce2d94b82b4f6d24fa45577507f1d359240eea68ab2b67afc9c78
MD5 4169f9aed0f4d156dd8a4b1d5f4b254a
BLAKE2b-256 60b6c03363f3647e18c62c3fbb32576db83d71925dbcd96c751a21e30dfb830d

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp314-cp314-win_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp314-cp314-win_amd64.whl.

File metadata

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

File hashes

Hashes for objutils-0.10.12-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 236cfb89693346c18ba608ed9702a45f29105c1967c58721e46cf3b988898c3e
MD5 bb1c6249f26578b31fbb0dd2abe4c17e
BLAKE2b-256 b2037dba1082c4f73f0a1e7aaa7a6d9583aacdfbe04d13f2ee6964b6876453bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp314-cp314-win_amd64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7dae21c1982c9008e47730150f7e3836f5639e689da685b1b311cf5a1b5845d9
MD5 379440cf0bd2d84456245ffb3ff9f237
BLAKE2b-256 b2c432564da8ce3c68fdfd46e2f3240c73a76b2c6ea0033a98ed7934e66d68e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e633fd0e28ab9ac15fa575355d8d6138c7a6749e731ed6b939345897d123736b
MD5 764b92774163a9c66460d4e74e960ded
BLAKE2b-256 b9ce9ff5a7e49f006a8732eb91c0b0d44884ee70a53969680ce39dda19c0581f

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2c6e13c5d26dbcebdbb4dd08171ace6d61f216a6dc4c551d1290240a79ece42f
MD5 8732b892f23ababbd62ab41210c99e35
BLAKE2b-256 1e3e21798d2b3f7a1a00e07e3f248b086707a8fb8c850cced6d02e1780bb3012

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.12-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 594.1 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.12-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 2bf4b57fc809d75b00e82dbbc5d624c7b7a5dc7bf08d8674e3ee6aff164a1296
MD5 1815e20a72bf4a41134a9ac784027e59
BLAKE2b-256 a6c4da4ec998e1214093aa3458276b815f2b7c1bd7d9bbc625739d8e072cf16a

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp313-cp313-win_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.12-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 609.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.12-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 dea7d0c99b614130b4f4a3fda39efce0a7433797fbcf11989ce61adcb29b57cd
MD5 5c22aaeb60ad4904e421cc9fb1e25f38
BLAKE2b-256 95a6810dae275ff186a65b752d5b14b6813c84e189e3eef9549c9ebdeddc678e

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp313-cp313-win_amd64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 62b3d277fc2aa7ba1be8ce7483d47abfc230f3a0176297000577e8efb23b7e2d
MD5 153e6850c28fc21d185ed15684a0dc67
BLAKE2b-256 802130d2490226d6d389acd4d7306eda004d21b94de020a7ade4161984e7504e

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 35af6b5596f20235bd15bb34d21e49826375f38265eca133dc86fe4f399f6afa
MD5 4a53d6269af0e5832c12cd3d415ba3f2
BLAKE2b-256 c1dcf70e7fc82e60c38935830f015b0fd6afbe3cc86deb45cbf2735ae3c3b052

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c900d57e257ddc99992cb35bfb07dcc9e7f7aa34f45cf55337f492499cffa42a
MD5 7ca41112fbbd8b89b007a2d6fe0ea87a
BLAKE2b-256 fec955c9dd7a32826f8b7d44705a769b8ba3f7b2bfb64172a6901ba2aa40d10f

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.12-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 594.1 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.12-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 1b3eed358e1e620dd468c7bf36153773f167ae4e8abf3bae9cea9ff02aa088cb
MD5 0173522c1d67f9aaa2af752ee7400db8
BLAKE2b-256 a11dc4f38dd85f98d57a7888f75e96f336453bc79da29f3aec39ff1706bf3b4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp312-cp312-win_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.12-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 609.8 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.12-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 258f5472cb76e348763f4631abe4755dd1ed50dfbce852752f6141797f01749d
MD5 639b6dd96f239bd318a826034c14e42c
BLAKE2b-256 0fcc6b8df64f11f65085c7ed5561ce962b8705640a63f559ce4080fb563b6d8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp312-cp312-win_amd64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1ee174b0ed34a4ee19b3ff321b6f968a9e5972c7d2f409e1ab58a9c1d321b57e
MD5 f0e0ef73c1399bc1d7a6df38109b922a
BLAKE2b-256 df90cd175ab23435c9c423cfd9800eea97029b9c71e9c06d651260bcb15bcda1

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ecc372bcc4c43b2838a187a017f4d47a507bf68c33470b1e6b538df5566a1431
MD5 eebaf01da0f59e0b970efa9d7a54d75b
BLAKE2b-256 b0904b0ef0b0eeca3a78db08a5d76da630276b8004513a9138e80cbdbcebbe3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e2db7116b460356d3d36dc9bede60b3f7c86b28bed7ff214091098d92a5dd63
MD5 fc3412e4f7d629284f2526a71d82b1dc
BLAKE2b-256 bc756129c01655e8e47ec384eed686984e359e7e3ba1dd082fba745a5e6dda3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.12-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 594.0 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.12-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 4206f2ba1d944c1cbb6ce420217010e0c31aaf50a550d3e153982c449fbb5a84
MD5 6228f3b7c54623530001e08e36ff9f0f
BLAKE2b-256 c7143d210f2db1b739c093140676e7ba72a9d62b10dbd9c0c91da05960760b96

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp311-cp311-win_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.12-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 608.6 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.12-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7df0660d9af9457f4fbbb632014d00b8da038c34b8d6631828caadda07ed1198
MD5 b5949737117400d32cec9c4b6b9a7b86
BLAKE2b-256 b6611be2318133b950a9802a4e6b1c9c25fba1a50208c6844f5e154226da59a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp311-cp311-win_amd64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 31fb72e287a9db20471dc726faa4b7204f741fac671f0a8d05e92def74f6d01e
MD5 6bfb1985e5f9c2ebdffcd041a0b38206
BLAKE2b-256 ab933b2f3203fecd36cfcf3a36c89dbdbfb473c7685aef63bd2f961020dc310b

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 56f3e5967c0c7585756d87bd9099eef4f8804f30e48d453898f20c14a773e4d8
MD5 fde31ee41262684733e63b5a01c1ecb9
BLAKE2b-256 df2c2d10d85a1e9490f14ac4cf186d35674f6f243afd47533f9f33d42b35d2be

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26d839d84c68f3512b7ab7c5bb99e8831da152dd2e3d2b2ac9cbcd4802f948ef
MD5 1911cc9b822f3c7ec89d2dd5f555d753
BLAKE2b-256 396fb568f8147b87a977124cbc59d1bf298698bb247d1dc3aedf1f743a01c0f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: objutils-0.10.12-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 593.3 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.12-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 6728f2d97fc5054d363cfa4cc15958a5a9b7f99a7ec6df375afd6e636c6c5cf8
MD5 de7e2fc2c68a0fdb7f0b1c241507c7aa
BLAKE2b-256 f219e5614606db82723345229240e53cdd0d4f4801183c29d14ed83ff15dfdfe

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp310-cp310-win_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: objutils-0.10.12-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 607.2 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.12-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 dfa4d02ebd128856222e42dc442ca4f82de0fe254d8a85cc95eebc338ca67af9
MD5 9aaa83294c9ac6bc9dd91c026708c927
BLAKE2b-256 66b61a06f6ff6ca2ef4a1a0e9a8a8505c8f7f0e6c85cdfa8bf22bd389df8829c

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp310-cp310-win_amd64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 386930ed7ee3f1591e2fc91cdb648b6c1edfc15b91f58098477466e16d59d33f
MD5 df3e21043f65cd35354dd6ba74685491
BLAKE2b-256 052333822f175a0ba1020f962421c5e79aafcb82813e3c96bb80c602638a1aff

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d5566b0395682897c16d3c898e31c685e3661ded0ca5b46e6c83b20a8a973791
MD5 98b3dc97bd7dd4b7e1dda3ad4a618a51
BLAKE2b-256 c0717600b108ffdf8362a1258a632469dfdd4bd6138d8cc608069a266523472d

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file objutils-0.10.12-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for objutils-0.10.12-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d406113e2b5aad0eb0280289f950a1f61feccd33c140a0ae7ffe466681ca897a
MD5 b80d498a34349aaa02e832c55cfecdd3
BLAKE2b-256 c5ef4062bf258ac70ca7861bbf873e1902780762f143aa115cdb86dde8bc4d6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for objutils-0.10.12-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: pythonapp.yml on christoph2/objutils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page