Skip to content

serialization

plantdb.commons.fsdb.serialization Link

Filesystem Database SerializationLink

This module provides functionality for serializing and deserializing filesystem database (FSDB) objects, facilitating the structured management and manipulation of files and filesets within a scan-based hierarchical storage system.

Key FeaturesLink

  • Parsing and conversion of filesystem database components (Scans, Filesets, and Files)
  • Validation of filesystem entries and their required attributes
  • Hierarchical data structure serialization to dictionary format
  • Error handling for missing IDs, filenames, and non-existent files
  • Path validation and verification for filesystem integrity

Usage ExamplesLink

# Example of converting a scan to a dictionary representation
from plantdb.commons.fsdb.core import Scan

# Assuming we have a scan object
scan = Scan(...)

# Convert scan structure to dictionary
scan_dict = _scan_to_dict(scan)
# Result format:
# {
#     "filesets": [
#         {
#             "id": "fileset_id",
#             "files": [
#                 {
#                     "id": "file_id",
#                     "file": "filename.ext"
#                 }
#             ]
#         }
#     ]
# }

# Parse a fileset from dictionary
fileset_info = {"id": "fileset_id"}
fileset = _parse_fileset(scan, fileset_info)

# Parse a file from dictionary
file_info = {"id": "file_id", "file": "example.txt"}
file = _parse_file(fileset, file_info)