Library System (zentral_systems)¶
Central data layer for the PlantDesign template library. No user-facing UI lives here -- only models, persistence, validation and R2 operations.
Sub-packages¶
| Directory | Purpose |
|---|---|
models/ |
Dataclasses: LibraryContainer, LibraryItem, Folder, Variant, BoundChild, UserLibrarySettings, enums |
controllers/ |
LibraryController -- CRUD, search, validation for one library |
persistence/ |
ContainerSerializer (msgpack.gz), atomic_writer, settings_persistence |
validation/ |
ReferenceIntegrityValidator (6 rules) |
Key files (root level)¶
| File | Purpose |
|---|---|
r2_master_library_manager.py |
Versioned R2 upload/download with write-lock |
serialization.py |
Low-level msgpack helpers |
library_property_options_manager.py |
Property-dialog option lists |
exceptions.py |
Domain exceptions (LibrarySystemError hierarchy) |
R2 Master Library Workflow¶
get_master_bib() -- read-only download (cached)
request_write_access() -- acquire lock + work copy
... edit locally ...
sign_and_release_library() -- upload new version, release lock
UI Phase (upcoming)¶
The UI phase will add Qt widgets in
startup_system/bound_subsystems/library_orchestration/.
Widgets should be promoted via Qt Designer and communicate with
LibraryController through signals. No QSS in this package -- styling
is handled externally via StylesheetManager.