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

Uploaded CPython 3.7+Windows x86-64

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

Uploaded CPython 3.7+Windows x86

autoangel-0.8.8-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.8-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.2 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.8-cp37-abi3-win_amd64.whl.

File metadata

  • Download URL: autoangel-0.8.8-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.8-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d84c5852ad0d6765f0939f7c4f154ab99a6c873d4a4d15148a90c63cf17b1526
MD5 5e40954d402015bb12d387a3302e4a2e
BLAKE2b-256 ad9cb2e136de0124239f5ef207edec583b41cac795c63f819ec7495ba7727278

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: autoangel-0.8.8-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.8-cp37-abi3-win32.whl
Algorithm Hash digest
SHA256 2a2a388ed42217933c5ca47efe441d09d2318dbda6dafa89bda87c018aaa2563
MD5 4bc3c29e65a9f9e9ffcebca9a3c9f4e0
BLAKE2b-256 a4e4eecac1b9fe25f1f34e55dfa583f37b984bc364c40680a34212c0e454adf2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for autoangel-0.8.8-cp37-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 379d7ccdbc6b302d6ed411e6df09726bb92b583ee4ba392068bfa194779ff7ce
MD5 61365c381755f1aa7a097ce6f62ab8b1
BLAKE2b-256 a44f9291230c2ac46539422137f0ae38f6d9d26d63693d202400b4a670871a43

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoangel-0.8.8-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.8-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.8-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 eac378bc529005c72dba52f5f09d96f9c1d2723fbac4b8c9a11df5b837a83356
MD5 b00a00704500885772946dfdc214bcf7
BLAKE2b-256 4cffc19cb99adbefee93a0accc49ecd0a659ee5f348e567223b772af5705f5b2

See more details on using hashes here.

Provenance

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