Skip to main content

No project description provided

Project description

autoangel

Python bindings for parsing and manipulating Angelica Engine game files.

Installation

pip install autoangel

Quick Start

Working with elements.data

import autoangel

# Load elements.data file
data = autoangel.read_elements('/path/to/elements.data')

# Inspect data
print(f'Version: {data.version}')
print(f'Number of lists: {len(data)}')

# Access a specific list (e.g., weapons list)
weapons_list = data[3]
print(f'List: {weapons_list.config.caption}')

# Iterate through entries
for i in range(10):
    weapon = weapons_list[i]
    print(f'ID: {weapon.ID}, name: {weapon.Name}')

# Modify entries
for weapon in weapons_list:
    weapon.durability_min = weapon.durability_max = 99999

# Save modifications
data.save('modified_elements.data')

Working with pck/pkx files

import autoangel

# Load package
package = autoangel.read_pck('/path/to/package.pck')

# Or load a paired pck+pkx package
package = autoangel.read_pck('/path/to/package.pck', '/path/to/package.pkx')

# List all files in the package
files = package.file_list()
print(f'Number of files: {len(files)}')

# Find files with a specific prefix
textures = package.find_prefix('textures/')
print(f'Number of texture files: {len(textures)}')

# Extract a specific file
file_content = package.get_file('some/path/in/package.txt')
if file_content:
    with open('extracted_file.txt', 'wb') as f:
        f.write(file_content)

API Reference

Functions

Function Description
read_elements(path, config?) Parse elements.data from file (memory-mapped)
read_elements_bytes(content, config?) Parse elements.data from bytes
read_elements_config(path) Parse elements config from file
read_elements_config_string(content) Parse elements config from string
read_pck(path, pkx_path?, config?) Parse pck package from file (memory-mapped)
read_pck_bytes(content, config?) Parse pck package from bytes

Classes

ElementsData, ElementsDataList, ElementsDataEntry, ElementsConfig, ElementsListConfig, PackageConfig, PckPackage

Full type stubs are included with the package. See autoangel.pyi for details.

API documentation is available on GitHub Pages.

Key Details

  • File-backed parsing uses memory-mapped I/O — source files cannot be modified while ElementsData / PckPackage objects are alive
  • Byte array parsing available via read_elements_bytes() / read_pck_bytes() when mmap is not desired
  • Bundled configs auto-detect game version from the data header; pass your own ElementsConfig to override
  • Entry fields support both attribute-style (entry.Name) and dict-style (entry['Name']) access
  • Modify fields in-place, then call data.save(path) or data.save_bytes() to serialize

Development

Requires uv and a Rust toolchain.

# Build (dev)
uv run maturin develop

# Build (release)
uv run maturin build --release

# Run tests (Python 3.10+ required)
uv run pytest

# Run stubtest
uv run --with mypy python -m mypy.stubtest autoangel --ignore-missing-stub --allowlist stubtest_allowlist.txt

Test data uses Git LFS — run git lfs pull if tests fail on missing files.

License

MIT License

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

autoangel-0.8.1-cp37-abi3-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.7+Windows x86-64

autoangel-0.8.1-cp37-abi3-win32.whl (3.3 MB view details)

Uploaded CPython 3.7+Windows x86

autoangel-0.8.1-cp37-abi3-manylinux_2_34_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.34+ x86-64

autoangel-0.8.1-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.1 MB view details)

Uploaded CPython 3.7+macOS 10.9+ universal2 (ARM64, x86-64)macOS 10.9+ x86-64macOS 11.0+ ARM64

File details

Details for the file autoangel-0.8.1-cp37-abi3-win_amd64.whl.

File metadata

  • Download URL: autoangel-0.8.1-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 3.7+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for autoangel-0.8.1-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ae322896034af31f75b8d09ee3fd58664b652959000a33cd3715a8edf4470b68
MD5 23522a2916161e8ff0249e8842752ae1
BLAKE2b-256 2452d7855461878841e3b70231f298df636b0eaacec8c33788fc57299b2e20e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoangel-0.8.1-cp37-abi3-win_amd64.whl:

Publisher: publish.yml on Smertig/autoangel-rs

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

File details

Details for the file autoangel-0.8.1-cp37-abi3-win32.whl.

File metadata

  • Download URL: autoangel-0.8.1-cp37-abi3-win32.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 3.7+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for autoangel-0.8.1-cp37-abi3-win32.whl
Algorithm Hash digest
SHA256 5b5c9eaf61405b25f125aeafe1e41f0af19c5c7a5ea237b97aaeb1bad84e3770
MD5 1e6ba55eab4375a1ba5fdea45eeb1c46
BLAKE2b-256 7efa9473d4667aee933f1b72081e1ec0f287fbf3057bee4e60b92eebdf580836

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoangel-0.8.1-cp37-abi3-win32.whl:

Publisher: publish.yml on Smertig/autoangel-rs

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

File details

Details for the file autoangel-0.8.1-cp37-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for autoangel-0.8.1-cp37-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6cc92517307b9f1c91f1289498a87ca8212901bee264fa7df38b3225ca19f265
MD5 0dbf4a865cccbb99fc5beedc4bb3f04f
BLAKE2b-256 2007cbb03072f25ae31aba1f7ef9589518d75f15ff6681180d2c0f3d9c955397

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoangel-0.8.1-cp37-abi3-manylinux_2_34_x86_64.whl:

Publisher: publish.yml on Smertig/autoangel-rs

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

File details

Details for the file autoangel-0.8.1-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for autoangel-0.8.1-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f4b4e470909ba583a85c4fdd938699b44349b6aa5aea48c006263d5d64affb9a
MD5 e3594cbfdb790abf238a0162f765c60f
BLAKE2b-256 0f8ce3b0a3aeacd20fe88d12bc5eecc5f5f8920eff6106f0c8caf78673aae796

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoangel-0.8.1-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl:

Publisher: publish.yml on Smertig/autoangel-rs

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