IO modules for handling Arma 3 file formats.
Project description
ArmaIO is a Python package providing utilities to read and write file formats specific to the Arma 3 game, and its Real Virtuality 4 engine.
- Download: https://pypi.org/project/armaio/
- Documentation: https://armaio.readthedocs.io/
- Source: https://github.com/MrClock8163/ArmaIO
- Bug reports: https://github.com/MrClock8163/ArmaIO/issues
Overview
The package supports most notable file formats used in Arma 3. Reading is implemented for all supported formats, but writing is only available for some, where it makes sense.
ArmaIO does not come with in-depth authoring utilities. The data is read and presented in relatively thin wrapper structures, with minimal transformation of the data structures of the files themselves. As such, ArmaIO is most suited to be used as a middle layer to handle file IO in a more complex authoring application built on top of it.
Supported formats
- PAA
- reading
- processing with Pillow
- DXT1
- DXT5
- ARGB8888
- ARGB4444
- ARGB1555
- AI88
- RTM (plain)
- reading
- writing
- RTM (binarized)
- reading
- conversion to plain
[!NOTE] The modules coming with this package were originally developed as part of the Arma 3 Object Builder plugin for Blender. They are released in this standalone package to facilitate independent use, and easier maintenance.
Requirements
To use the ArmaIO package, Python 3.11 or higher is required.
For some operations, the package depends on NumPy. Some of the extra features might require further dependencies. These are indicated in their respective documentations.
Installation
The preferred method to install ArmaIO is through PyPI, where both wheel and source distributions are made available.
python -m pip install armaio
If not yet published changes/fixes are needed, that are only available in source, ArmaIO can also be installed locally from source, without any external tools. Once the repository is cloned to a directory, it can be installed with pip.
git clone https://github.com/MrClock8163/ArmaIO.git
cd ArmaIO
python -m pip install .
Example
from armaio.paa import PaaFile
from armaio.paa.pillow import open_paa_image # extra, requires Pillow
paa = PaaFile.read_file("texture_co.paa")
print(paa.format)
with open_paa_image("texture_co.paa") as img:
print(img.getpixel((1, 2)))
License
The ArmaIO package distributed under the terms of the GNU General Public License version 3.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see the GNU licenses.
Files created using this software are not covered by this 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 Distribution
Built Distribution
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 armaio-0.1.0.tar.gz.
File metadata
- Download URL: armaio-0.1.0.tar.gz
- Upload date:
- Size: 93.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee1b0133ca714534c8d5cf5d8933682855d613b43b710cc39d35b504ff86f7ec
|
|
| MD5 |
00f454f370214aab9cc914782c659423
|
|
| BLAKE2b-256 |
b17475445d149366a9dfbc0a2b7a283040c447701698b8926bf25d2a069536cf
|
Provenance
The following attestation bundles were made for armaio-0.1.0.tar.gz:
Publisher:
publish.yml on MrClock8163/armaio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
armaio-0.1.0.tar.gz -
Subject digest:
ee1b0133ca714534c8d5cf5d8933682855d613b43b710cc39d35b504ff86f7ec - Sigstore transparency entry: 906532216
- Sigstore integration time:
-
Permalink:
MrClock8163/armaio@e67985e50fc682852feae3123ce3684aaab92ec7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/MrClock8163
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e67985e50fc682852feae3123ce3684aaab92ec7 -
Trigger Event:
release
-
Statement type:
File details
Details for the file armaio-0.1.0-py3-none-any.whl.
File metadata
- Download URL: armaio-0.1.0-py3-none-any.whl
- Upload date:
- Size: 38.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cb7ad8373731dd819941d87c50363b65ae2f2608b060be342131e4b9a321193
|
|
| MD5 |
122fe784933abc78ec9906263a982a53
|
|
| BLAKE2b-256 |
8f39b14dfe452a7c5c5be7372a1d0134aa3a431a5a3c53b23784962c72e7ca73
|
Provenance
The following attestation bundles were made for armaio-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on MrClock8163/armaio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
armaio-0.1.0-py3-none-any.whl -
Subject digest:
2cb7ad8373731dd819941d87c50363b65ae2f2608b060be342131e4b9a321193 - Sigstore transparency entry: 906532218
- Sigstore integration time:
-
Permalink:
MrClock8163/armaio@e67985e50fc682852feae3123ce3684aaab92ec7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/MrClock8163
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e67985e50fc682852feae3123ce3684aaab92ec7 -
Trigger Event:
release
-
Statement type: