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

Uploaded CPython 3.7+Windows x86-64

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

Uploaded CPython 3.7+Windows x86

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

File metadata

  • Download URL: autoangel-0.8.7-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.7-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 699aeceb190b88bf5b3b107cb7f6ee7df6de290bef879e1d31a3f32e9e428e11
MD5 31ea92e5ec63240d63eacc02339a4cc5
BLAKE2b-256 d6e86913a75e871ca7294e2d577133d6e4ea7f4925b66049f23dbcf87dd8145c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: autoangel-0.8.7-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.7-cp37-abi3-win32.whl
Algorithm Hash digest
SHA256 9842693ce3f192f4c28de69f94a102e6d9aa6de4b5d57599149877df1e24b4fa
MD5 42c55c0ca135eb1acc7a97cd577b97c7
BLAKE2b-256 4dceb9e19260e76358d473b21a51365fd2392b69b58af92597415792e500c4d6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for autoangel-0.8.7-cp37-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 cf810a461d7dc7a351839a71c5976b06c3e9f994a24be636717dc2c599584c01
MD5 646bfe6854c8fad6fbeecf56a5409659
BLAKE2b-256 f0463e33ac6d35e8c1d99df2f5ff879177f4a24d8b99122c00d18ed0b3c0534c

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoangel-0.8.7-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.7-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.7-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 81ccfa9302ab1fd3a0efde30f2ca6d86ea61b8569c786a3fbb02c413b0e6d8a7
MD5 2fd29f81a9b3a6b785226ba36cf95498
BLAKE2b-256 946c47beb70bd287cbdcf36805228c99b14cb3c9284d003911dbd7115945b566

See more details on using hashes here.

Provenance

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