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

Uploaded CPython 3.7+Windows x86-64

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

Uploaded CPython 3.7+Windows x86

autoangel-0.8.0-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.0-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.0-cp37-abi3-win_amd64.whl.

File metadata

  • Download URL: autoangel-0.8.0-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.0-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9d827cb8423ee16aefafb74636739ae53ce29f89e26d522e62847f5eb6b82caa
MD5 4ed46844961fa0c3d15942efac8bbff5
BLAKE2b-256 25d679c4023b3cc776ff69b6cf5f09db20c83ee4ecbb20372cb3297b2f322454

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: autoangel-0.8.0-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.0-cp37-abi3-win32.whl
Algorithm Hash digest
SHA256 3d0db188839f83de25d03c92ac5850506a8097ef9016de79e60f64eb28cd8c7f
MD5 63860cee1a662262761004f80f73c73c
BLAKE2b-256 fc5c0ed57bafc5f0c4f463c10d2c306fdfdda6368a742bedde652896d4947b44

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for autoangel-0.8.0-cp37-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b72ea457a9e421176f174df19b428b49dd82b80b855e058e47e481c51ebbc4c4
MD5 91dfb5914a1c064afb4900af45887807
BLAKE2b-256 42cd0410be1ef0f55b3a650a50884bd95d047b4077fb51a4168b8e8ab943aa36

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoangel-0.8.0-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.0-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.0-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 cb90c6d9ecc27dc13631f9c89a9ffa0691a8264f653efed4bea168e0346bd0c5
MD5 69951f62931a4904aea07952d33d7511
BLAKE2b-256 ef1a6b82f8aa5319e48444ee9ad9aabe6ac049c53c0825bccca494152efd1dbc

See more details on using hashes here.

Provenance

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