Skip to main content

ra2mix is a python library for working with Red Alert 2 / Yuri's Revenge *.mix files

Project description

ra2mix

PyPI - Version PyPI - Python Version PyPI - License

A python library for working with Red Alert 2 / Yuri's Revenge *.mix files

Mix files are archive files used to store most game files from the games Command And Conquer Red Alert 2 and its expansion pack Yuri's Revenge.

This library allows you to interact with the mix files much like you'd interact with zip files using a program like 7-zip -- except programmatically, of course 😎. You can create mix files by archiving a list of several files, or read existing mix files and do something with the archived files contained within it.

Table of Contents

Installation

pip install ra2mix

Usage

Import the package

import ra2mix

Reading a *.mix file

  • Read:

    The ra2mix.read function can take a *.mix filepath and return a dict[str, bytes] object. The keys are filenames and the values are file data as bytes.

    import ra2mix
    mix_filepath = "path/to/mixfile.mix"
    
    filemap = ra2mix.read(mix_filepath)
    print(f"filenames: {list(filemap.keys())}")
    
    for filename, file_data in filemap.items():
        # do something with the file data
    
  • Extract:

    The ra2mix.extract function takes a *.mix filepath and an extraction folder path. The files contained in the mix file will be written to the folder.

    import ra2mix
    mix_filepath = "path/to/mixfile.mix"
    extract_folder = "extract/to/folder"
    
    ra2mix.extract(mix_filepath, extract_folder)
    

Creating a *.mix file

The ra2mix.write function supports three methods for specifying files to include in a new *.mix file:

  • filemap: A dict[str, bytes] object consisting of filenames and file data
  • folder_path: A path to a folder; all files in the folder are added to the mix
  • filepaths: A list[str] containing exact filepaths to include in the mix
import ra2mix
mix_filepath = "path/to/mixfile.mix"

target_folder = "read/from/folder"

mix_data = ra2mix.write(mix_filepath, folder_path=target_folder)

# Optionally do something with mix_data if you want; file is already written to
# `mix_filepath`

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

ra2mix-0.0.12.tar.gz (137.0 kB view details)

Uploaded Source

Built Distribution

ra2mix-0.0.12-py3-none-any.whl (138.8 kB view details)

Uploaded Python 3

File details

Details for the file ra2mix-0.0.12.tar.gz.

File metadata

  • Download URL: ra2mix-0.0.12.tar.gz
  • Upload date:
  • Size: 137.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for ra2mix-0.0.12.tar.gz
Algorithm Hash digest
SHA256 84c5a1d3fee8f80afd16c4f7226d734bd24167b579c3c213ad281c77e7541f7a
MD5 06c9f1d0b4f13beabfc96e53a4816abe
BLAKE2b-256 bc505e4ab38cae15a827be2dcda572be9460e8f67c55f840ce9155cff5cc245a

See more details on using hashes here.

File details

Details for the file ra2mix-0.0.12-py3-none-any.whl.

File metadata

  • Download URL: ra2mix-0.0.12-py3-none-any.whl
  • Upload date:
  • Size: 138.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for ra2mix-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 363827bdc577e44a3ebbe26889d28a45c95a3108d37e95e39bfcc5a0316a7a0e
MD5 1206855de250f93c52256944ba4fea76
BLAKE2b-256 76a547a0d1b1e97daec71973f359ec2fdcfa6050919921f0bf41e0ddc79b2b31

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page