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.