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/PckPackageobjects 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
ElementsConfigto override - Entry fields support both attribute-style (
entry.Name) and dict-style (entry['Name']) access - Modify fields in-place, then call
data.save(path)ordata.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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file autoangel-0.9.0-cp37-abi3-win_amd64.whl.
File metadata
- Download URL: autoangel-0.9.0-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a11fa9256f82247c7c0e5be4601f6f1b0cc8575f2871ff5235d6d7bafd98d569
|
|
| MD5 |
70ad7791af248f01f817a6294f416706
|
|
| BLAKE2b-256 |
aefec4fc0a3f37874ea395fb8cfc9688023826d5a1bcdca1b6031b4673507c4b
|
Provenance
The following attestation bundles were made for autoangel-0.9.0-cp37-abi3-win_amd64.whl:
Publisher:
publish.yml on Smertig/autoangel-rs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autoangel-0.9.0-cp37-abi3-win_amd64.whl -
Subject digest:
a11fa9256f82247c7c0e5be4601f6f1b0cc8575f2871ff5235d6d7bafd98d569 - Sigstore transparency entry: 1262455640
- Sigstore integration time:
-
Permalink:
Smertig/autoangel-rs@d727d6cd4d317dc3358710202c70522f4254c95d -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Smertig
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d727d6cd4d317dc3358710202c70522f4254c95d -
Trigger Event:
push
-
Statement type:
File details
Details for the file autoangel-0.9.0-cp37-abi3-win32.whl.
File metadata
- Download URL: autoangel-0.9.0-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c9f26a61b7d0608b225f727cc360b68742700c105ca0526c46254c9fa9df6a4
|
|
| MD5 |
d6e929361906f831f1054450818a2455
|
|
| BLAKE2b-256 |
665fb2d0a2be00d54c114e19052ce5a90f4c20b233e643da0493b8b513e3bb21
|
Provenance
The following attestation bundles were made for autoangel-0.9.0-cp37-abi3-win32.whl:
Publisher:
publish.yml on Smertig/autoangel-rs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autoangel-0.9.0-cp37-abi3-win32.whl -
Subject digest:
3c9f26a61b7d0608b225f727cc360b68742700c105ca0526c46254c9fa9df6a4 - Sigstore transparency entry: 1262455609
- Sigstore integration time:
-
Permalink:
Smertig/autoangel-rs@d727d6cd4d317dc3358710202c70522f4254c95d -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Smertig
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d727d6cd4d317dc3358710202c70522f4254c95d -
Trigger Event:
push
-
Statement type:
File details
Details for the file autoangel-0.9.0-cp37-abi3-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: autoangel-0.9.0-cp37-abi3-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.7+, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a21befa28c05068eb6ced90986462240f8e584bda3d48cc12a6be304cee09c0
|
|
| MD5 |
bebf7f18a24ab21b9eb58cda7e8ff5c8
|
|
| BLAKE2b-256 |
774478cb68ed80ec7cc7d55e05552c1ba9699811527bbd76cc0be71615ddf877
|
Provenance
The following attestation bundles were made for autoangel-0.9.0-cp37-abi3-manylinux_2_34_x86_64.whl:
Publisher:
publish.yml on Smertig/autoangel-rs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autoangel-0.9.0-cp37-abi3-manylinux_2_34_x86_64.whl -
Subject digest:
8a21befa28c05068eb6ced90986462240f8e584bda3d48cc12a6be304cee09c0 - Sigstore transparency entry: 1262455625
- Sigstore integration time:
-
Permalink:
Smertig/autoangel-rs@d727d6cd4d317dc3358710202c70522f4254c95d -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Smertig
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d727d6cd4d317dc3358710202c70522f4254c95d -
Trigger Event:
push
-
Statement type:
File details
Details for the file autoangel-0.9.0-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.
File metadata
- Download URL: autoangel-0.9.0-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
- Upload date:
- Size: 7.3 MB
- Tags: CPython 3.7+, macOS 10.9+ universal2 (ARM64, x86-64), macOS 10.9+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c774a040ea9cb69b11a7bec093355c7eff2ff9740b10615174dc26b9b6f73ac
|
|
| MD5 |
8b64fd870d65c9b4fbc13c800d28aef5
|
|
| BLAKE2b-256 |
e2fd983ab13b9863621f39e2b742e48d610d4f4d73d04cba3b9a37f7cc1cf334
|
Provenance
The following attestation bundles were made for autoangel-0.9.0-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl:
Publisher:
publish.yml on Smertig/autoangel-rs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autoangel-0.9.0-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl -
Subject digest:
5c774a040ea9cb69b11a7bec093355c7eff2ff9740b10615174dc26b9b6f73ac - Sigstore transparency entry: 1262455631
- Sigstore integration time:
-
Permalink:
Smertig/autoangel-rs@d727d6cd4d317dc3358710202c70522f4254c95d -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Smertig
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d727d6cd4d317dc3358710202c70522f4254c95d -
Trigger Event:
push
-
Statement type: