capturegraph.data.load.manifest
#
Procedure Manifest Data Classes#
Data structures for parsing and representing the capture_target_manifest.json file that defines the structure and types of data captured by a CaptureGraph procedure.
The manifest is a recursive structure where:
- files: Named single files with a type and extensions
- file_sequences: Named arrays of numbered files (e.g., sequence_0.dng, sequence_1.dng)
- directories: Nested subdirectories with their own manifest
- sessions: Timestamped subdirectories (e.g., hex timestamps) with shared manifest
JSONDataClassMixin
dataclass
#
Mixin providing JSON serialization for dataclasses.
Source code in capturegraph-lib/capturegraph/data/load/manifest.py
FileManifest
dataclass
#
Bases: JSONDataClassMixin
Manifest entry for a single file or file sequence.
Attributes:
| Name | Type | Description |
|---|---|---|
type_name |
str
|
The PType name (e.g., 'PBool', 'PImage', 'PUserID') |
file_extensions |
list[str]
|
List of possible file extensions (e.g., ['heic', 'dng', 'jpeg']) |
Source code in capturegraph-lib/capturegraph/data/load/manifest.py
ProcedureManifest
dataclass
#
Bases: JSONDataClassMixin
Complete manifest defining the structure of a capture target directory.
This is a recursive structure that can describe arbitrarily nested directories.
Attributes:
| Name | Type | Description |
|---|---|---|
files |
dict[str, FileManifest]
|
Map of filename -> FileManifest for single files |
file_sequences |
dict[str, FileManifest]
|
Map of sequence name -> FileManifest for numbered file sequences |
directories |
dict[str, ProcedureManifest]
|
Map of directory name -> ProcedureManifest for nested directories |
sessions |
dict[str, ProcedureManifest]
|
Map of session container name -> ProcedureManifest for timestamped sessions |
Example manifest structure
{ "files": {"reference": {"type_name": "PImage", "file_extensions": ["heic"]}}, "sessions": { "captures": { "files": {"photo": {"type_name": "PImage", "file_extensions": ["heic"]}} } } }
Source code in capturegraph-lib/capturegraph/data/load/manifest.py
__post_init__()
#
Convert deserialized dicts to defaultdicts for auto-creating behavior.