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.9-cp37-abi3-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.7+Windows x86-64

autoangel-0.8.9-cp37-abi3-win32.whl (3.4 MB view details)

Uploaded CPython 3.7+Windows x86

autoangel-0.8.9-cp37-abi3-manylinux_2_34_x86_64.whl (3.6 MB view details)

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

autoangel-0.8.9-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.3 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.9-cp37-abi3-win_amd64.whl.

File metadata

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

File hashes

Hashes for autoangel-0.8.9-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6aaf0511d4b57ff8f15bdd89163bb7c258281da423fcd0d4308a4580c5b6fcef
MD5 af7b115d2b1729b2babc9f748b275787
BLAKE2b-256 5d6745a13d27b98364d685e11a0ffa3a3fb84157fc3fbb385055721c7df982d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoangel-0.8.9-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.9-cp37-abi3-win32.whl.

File metadata

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

File hashes

Hashes for autoangel-0.8.9-cp37-abi3-win32.whl
Algorithm Hash digest
SHA256 0880860c2747ff72f522cbab775faa3920037feda2d1a6f0b4f84bcc2dd1f640
MD5 2800a2f31143dd1cb8b11c9cc860cf4a
BLAKE2b-256 15b0da16396ca60505f64d7e5a0cfd6a5adf4883bd1b549284b99ef37b83b3c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoangel-0.8.9-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.9-cp37-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for autoangel-0.8.9-cp37-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fc824e4f72cd9ea01824a8f255b228f21664bcebd766b95e2ec336aaa3d3146b
MD5 a8f02f49f8651311fe0bd208ae85a9b3
BLAKE2b-256 bb1b849c5526fe2bb6335e0896ec48e547b26e5ac005c6e42b071940c2a03c71

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoangel-0.8.9-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.9-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.9-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 26e924774b3e1d59d85f2e0c6d6006561cb8cfad6ed63552ad6e944d66cba4d0
MD5 c1793c0fb509dc8d554b374112bbe84d
BLAKE2b-256 196edcea71947db3e0bba9be6f1eb8a584a95a5316367637b54fcbac9147b1b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoangel-0.8.9-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