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

Uploaded CPython 3.7+Windows x86-64

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

Uploaded CPython 3.7+Windows x86

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

File metadata

  • Download URL: autoangel-0.8.4-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.4-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 086699fbbed2caa4a9f3241d74e6df79a1f6a0673be3f07ad7562b5e2cdeb390
MD5 395c53c57c3fc1f272af580d069888d4
BLAKE2b-256 08c492cbb85382616ec9eb6781ebfbe8469f6501fd26a17252c2dc54f8d1670c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: autoangel-0.8.4-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.4-cp37-abi3-win32.whl
Algorithm Hash digest
SHA256 26027c8eb9f1b2298bd01d6877d7e30a4712d1be1cdcfdd51988f23535253fb3
MD5 a26fe478e02a51362c1aaf8cc85945f1
BLAKE2b-256 5882d2609ce88bb606e63e0678ae0aeccc277fc051c605b64b8cbd107ff8a79b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for autoangel-0.8.4-cp37-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 89aebcee1f6d338256a59c1ddefb2bac267ea7d01a5df095cd12ccff58c573b5
MD5 de35c374611f4a021ccf4b307233e6c7
BLAKE2b-256 a042bb82ae6768e73fab4d38a85c3d7342b5e33c8a8c9b3d39a171a0195a5128

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoangel-0.8.4-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.4-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.4-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 c4989b98b12e90706c11975a47f3cb0376581a22522ca98d51693262ed8f3f2f
MD5 bebdd69f4724b284328c2fec7948752c
BLAKE2b-256 ae685fd8201d8c0979c4cf9f7c4938d570f7d3c0ba9360d6a4593ca711ac7a7f

See more details on using hashes here.

Provenance

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