Skip to main content

IO modules for handling Arma 3 file formats.

Project description

ArmaIO logo


PyPI - Version Python Version GPLv3 Docs status Typed

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.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

armaio-0.1.0.tar.gz (93.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

armaio-0.1.0-py3-none-any.whl (38.3 kB view details)

Uploaded Python 3

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

Hashes for armaio-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ee1b0133ca714534c8d5cf5d8933682855d613b43b710cc39d35b504ff86f7ec
MD5 00f454f370214aab9cc914782c659423
BLAKE2b-256 b17475445d149366a9dfbc0a2b7a283040c447701698b8926bf25d2a069536cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for armaio-0.1.0.tar.gz:

Publisher: publish.yml on MrClock8163/armaio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for armaio-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2cb7ad8373731dd819941d87c50363b65ae2f2608b060be342131e4b9a321193
MD5 122fe784933abc78ec9906263a982a53
BLAKE2b-256 8f39b14dfe452a7c5c5be7372a1d0134aa3a431a5a3c53b23784962c72e7ca73

See more details on using hashes here.

Provenance

The following attestation bundles were made for armaio-0.1.0-py3-none-any.whl:

Publisher: publish.yml on MrClock8163/armaio

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