Initial public release. Companion to cpp-cpm-engine.
Features
- Parse any Primavera P6 XER file into a structured Python dict with all tables, fields, and records preserved.
- Generate valid P6 24.12 XER files from parsed or hand-built data.
- Calendar decoding including full work-week patterns, special workdays, and holidays.
- Cross-reference maps for WBS hierarchy, resource assignments, predecessors/successors, activity codes, and UDFs.
- MIP 3.4 half-step XER generator (
compute_half_step_xer) — AACE 29R-03 MIP 3.4 (Modelled / Additive / Multiple Base — Contemporaneous Split). - BOM-aware encoding detection (UTF-8 BOM / UTF-16 LE/BE BOM).
- Schedule integrity manifest with SHA-256 source hash and AACE 31R-03 compliance scoring.
- Schema drift detection between two parsed XERs.
Engine compatibility
Tested against cpp-cpm-engine v2.9.x (current as of 2026-05-16: v2.9.11+). The parse output is consumed by cpm-engine.parseXER() and is independent of the engine math.
Security
See SECURITY.md — 90-day coordinated disclosure, hello@criticalpathpartners.ca with SECURITY in the subject.
See CHANGELOG.md for the full v0.1.0 entry.