hoops_ai.storage
Quick Overview
Modules
Classes
JsonStorageHandler(json_dir_path)Handles the storage and retrieval of data using JSON files.
OptStorage(store_path[, compress_extension])Handles storage and retrieval of data using Zarr, including:
LabelStorage(path_for_storing[, ...])Class for encoding and decoding labels.
MetricStorage(store)Abstract class defining the interface for storing machine learning metrics based on their type of data and visualization.
CADFileRetriever(storage_provider[, ...])
LocalStorageProvider(directory_path)Functions
convert_storage(source_handler, dest_handler)Converts data from one storage handler to another.
Data Storage Module
The Storage module provides persistent storage solutions for CAD data, ML models, and analysis results. It offers a unified interface for various storage backends, optimized for the unique requirements of CAD data processing and machine learning workflows.
This module handles the efficient storage and retrieval of large-scale CAD datasets, encoded geometric data, trained ML models, and experimental results. It provides both high-performance options for production use and convenient formats for development and prototyping.
For storage architecture details and usage patterns, see the Data Storage Programming Guide.
- class hoops_ai.storage.CADFileRetriever(storage_provider, formats=None, filter_pattern=None, use_regex=False)
Bases:
object- Parameters:
- class hoops_ai.storage.DataStorage
Bases:
ABC- abstract close()
Handles any necessary cleanup or resource deallocation.
- Return type:
None
- abstract get_file_path(data_key)
Retrieves the file path for a given data key.
- get_group_for_array(array_name)
Determines which group an array belongs to based on the schema.
- abstract get_keys()
Retrieves a list of all keys in the storage. :returns: A list of all keys in the storage. :rtype: list
- Return type:
- get_schema()
Retrieves the schema definition for this storage instance.
- Returns:
The schema definition, or empty dict if no schema is set
- Return type:
- abstract load_data(data_key)
Loads data associated with a specific key.
- Parameters:
data_key (str) – The key of the data to load.
- Returns:
The loaded data.
- Return type:
Any
- abstract load_metadata(key)
Loads metadata associated with a specific key.
- Parameters:
key (str) – The metadata key.
- Returns:
The loaded metadata value.
- Return type:
Any
- abstract save_data(data_key, data)
Saves data associated with a specific key.
- Parameters:
data_key (str) – The key under which to store the data.
data (Any) – The data to store.
- Return type:
None
- abstract save_metadata(key, value)
Saves metadata as a key-value pair into the metadata JSON file. If the file doesn’t exist, it will be created.
- Parameters:
key (str) – The metadata key.
value (Any) – The metadata value (bool, int, float, string, list, or array).
- Return type:
None
- class hoops_ai.storage.JsonStorageHandler(json_dir_path)
Bases:
DataStorageHandles the storage and retrieval of data using JSON files.
Each data_key is stored as a separate JSON file within a specified directory.
- Parameters:
json_dir_path (str)
- close()
Closes the JsonStorageHandler. Since JSON operations are stateless, there’s nothing to close.
- Return type:
None
- get_file_path(data_key)
Retrieves the file path for a given data key.
- get_group_for_array(array_name)
Determines which group an array belongs to based on the schema.
- get_keys()
Lists all data keys available in the JSON storage directory.
- Returns:
A list of data keys.
- Return type:
- get_schema()
Retrieves the schema definition for this storage instance.
- Returns:
The schema definition, or empty dict if no schema is set
- Return type:
- load_data(data_key)
Loads data from a JSON file using the specified key.
- Parameters:
data_key (str) – The key of the data to load.
- Returns:
The loaded data.
- Return type:
Any
- Raises:
KeyError – If the data_key does not exist.
ValueError – If the JSON data cannot be deserialized.
- load_metadata(key)
Loads metadata by key from the metadata JSON file. Supports nested keys using ‘/’ as a separator.
- save_data(data_key, data)
Saves data to a JSON file under the specified key.
- Parameters:
data_key (str) – The key under which to store the data.
data (Any) – The data to store.
- Raises:
ValueError – If the data cannot be serialized to JSON.
- Return type:
None
- save_metadata(key, value)
Saves metadata as a key-value pair into the metadata JSON file. If the file doesn’t exist, it will be created.
- Parameters:
key (str) – The metadata key, which can be a nested key using ‘/’ as a separator.
value (Any) – The metadata value (bool, int, float, string, list, or array).
- Return type:
None
- class hoops_ai.storage.LocalStorageProvider(directory_path)
Bases:
StorageProvider- Parameters:
directory_path (str)
- hoops_ai.storage.convert_storage(source_handler, dest_handler)
Converts data from one storage handler to another.
- Parameters:
source_handler (DataStorageHandlerBase) – The source storage handler (e.g., JSON handler).
dest_handler (DataStorageHandlerBase) – The destination storage handler (e.g., Zarr handler).
- Return type:
None