icarus core

Icarus Core

Shared Python library used by all Icarus tools. Installed as a local pip package (pip install -e ../core). Not exposed through the portal.


Status

Complete — v0.02 milestone (issues #6-#11) closed. 84 pytest tests passing, ruff lint clean.

Project Details

Field Value
GitLab Project icarus/core
GitLab Project ID 7
Repository https://git.eurekaendeavors.com/icarus/core
Visibility private
License GPL v3
Package name icarus-core
Python ≥ 3.10
Tests 84 (pytest)
Consumed by icarus/pets, icarus/prospects, icarus/portal

Contents

icarus/core
├── icarus_core/
│   ├── __init__.py
│   ├── ue4_parser.py      # Binary save file parser
│   ├── ue4_serializer.py  # Binary save file serializer
│   └── save_io.py         # High-level read/write helpers
├── tests/
└── pyproject.toml

Why It Exists

ue4_parser.py and ue4_serializer.py were independently duplicated in both icarus-pets (desktop) and icarus-prospects (web). Any bug fix had to be applied in two places and kept in sync manually.

icarus/core is the single source of truth. All tools depend on it — changes flow everywhere at once.


Usage

# In each consuming project's virtualenv:
pip install -e path/to/icarus-core
# Parser
from icarus_core import BinaryReader, BinaryWriter, parse_properties, parse_property

# Serializer
from icarus_core import serialize_properties, props_to_binary_array

# Save I/O
from icarus_core import load_save, save_save, decompress_blob, parse_blob
from icarus_core import serialize_blob, compress_blob

On the server, the shared virtualenv has core installed once. The portal, pets Blueprint, and prospects Blueprint all import from the same installation.

Back to Docs