praval.storage.data_manager
Data Manager - Unified interface for storage operations
Provides a high-level interface for agents to interact with multiple storage providers through a single, consistent API.
Functions
|
Delete data using the global data manager. |
|
Retrieve data using the global data manager. |
Get the global data manager instance. |
|
|
Query data using the global data manager. |
|
Store data using the global data manager. |
Classes
|
Unified data management interface for agents. |
- class praval.storage.data_manager.DataManager(registry=None)[source]
Bases:
objectUnified data management interface for agents.
Provides high-level methods for storing, retrieving, and querying data across multiple storage backends through a single interface.
Features: - Automatic provider selection based on data type - Cross-provider queries and operations - Data reference management for spore communication - Storage optimization and caching - Transaction-like operations across providers
- Parameters:
registry (StorageRegistry | None)
- __init__(registry=None)[source]
Initialize data manager.
- Parameters:
registry (
Optional[StorageRegistry]) – Storage registry to use (defaults to global registry)
- set_agent_context(agent_name)[source]
Set the current agent context for permission checking.
- Parameters:
agent_name (str)
- async store(provider, resource, data, **kwargs)[source]
Store data in a specific provider.
- Parameters:
provider (
str) – Storage provider nameresource (
str) – Resource identifier (table, key, path, etc.)data (
Any) – Data to store**kwargs – Provider-specific parameters
- Return type:
- Returns:
StorageResult with operation outcome
- async get(provider, resource, **kwargs)[source]
Retrieve data from a specific provider.
- Parameters:
provider (
str) – Storage provider nameresource (
str) – Resource identifier**kwargs – Provider-specific parameters
- Return type:
- Returns:
StorageResult with retrieved data
- async query(provider, resource, query, **kwargs)[source]
Execute a query on a specific provider.
- Parameters:
provider (
str) – Storage provider nameresource (
str) – Resource to queryquery (
Union[str,Dict]) – Query string or structured query**kwargs – Query parameters
- Return type:
- Returns:
StorageResult with query results
- async delete(provider, resource, **kwargs)[source]
Delete data from a specific provider.
- Parameters:
provider (
str) – Storage provider nameresource (
str) – Resource to delete**kwargs – Delete parameters
- Return type:
- Returns:
StorageResult with operation outcome
- async smart_store(data, resource=None, preferred_provider=None, **kwargs)[source]
Intelligently store data by selecting the best provider.
- Parameters:
data (
Any) – Data to storeresource (
Optional[str]) – Optional resource identifierpreferred_provider (
Optional[str]) – Preferred storage provider**kwargs – Storage parameters
- Return type:
- Returns:
StorageResult with operation outcome
- async smart_search(query, providers=None, **kwargs)[source]
Search across multiple providers intelligently.
- Parameters:
query (
Union[str,List[float],Dict]) – Search query (text, vector, or structured)providers (
Optional[List[str]]) – Providers to search (defaults to all suitable)**kwargs – Search parameters
- Return type:
List[StorageResult]- Returns:
List of StorageResult from different providers
- create_data_reference(provider, resource, **metadata)[source]
Create a data reference for spore communication.
- Parameters:
provider (
str) – Storage provider nameresource (
str) – Resource identifier**metadata – Additional metadata
- Return type:
- Returns:
DataReference object
- async resolve_data_reference(data_ref, **kwargs)[source]
Resolve a data reference to actual data.
- Parameters:
data_ref (
Union[DataReference,str]) – DataReference object or URI string**kwargs – Retrieval parameters
- Return type:
- Returns:
StorageResult with resolved data
- async batch_store(operations)[source]
Execute multiple store operations in batch.
- Parameters:
operations (
List[Dict[str,Any]]) – List of operation dictionaries with keys: - provider: Storage provider name - resource: Resource identifier - data: Data to store - kwargs: Additional parameters- Return type:
List[StorageResult]- Returns:
List of StorageResult objects
- async batch_get(operations)[source]
Execute multiple get operations in batch.
- Parameters:
operations (
List[Dict[str,Any]]) – List of operation dictionaries with keys: - provider: Storage provider name - resource: Resource identifier - kwargs: Additional parameters- Return type:
List[StorageResult]- Returns:
List of StorageResult objects
- list_providers(storage_type=None)[source]
List available storage providers.
- Parameters:
storage_type (
Optional[str]) – Filter by storage type- Return type:
List[str]- Returns:
List of provider names
- praval.storage.data_manager.get_data_manager()[source]
Get the global data manager instance.
- Return type:
- async praval.storage.data_manager.store_data(provider, resource, data, **kwargs)[source]
Store data using the global data manager.
- Return type:
- Parameters:
provider (str)
resource (str)
data (Any)
- async praval.storage.data_manager.get_data(provider, resource, **kwargs)[source]
Retrieve data using the global data manager.
- Return type:
- Parameters:
provider (str)
resource (str)
- async praval.storage.data_manager.query_data(provider, resource, query, **kwargs)[source]
Query data using the global data manager.
- Return type:
- Parameters:
provider (str)
resource (str)
query (str | Dict)