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(provider, resource, **kwargs)

Delete data using the global data manager.

get_data(provider, resource, **kwargs)

Retrieve data using the global data manager.

get_data_manager()

Get the global data manager instance.

query_data(provider, resource, query, **kwargs)

Query data using the global data manager.

store_data(provider, resource, data, **kwargs)

Store data using the global data manager.

Classes

DataManager([registry])

Unified data management interface for agents.

class praval.storage.data_manager.DataManager(registry=None)[source]

Bases: object

Unified 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)

get_agent_context()[source]

Get the current agent context.

Return type:

Optional[str]

async store(provider, resource, data, **kwargs)[source]

Store data in a specific provider.

Parameters:
  • provider (str) – Storage provider name

  • resource (str) – Resource identifier (table, key, path, etc.)

  • data (Any) – Data to store

  • **kwargs – Provider-specific parameters

Return type:

StorageResult

Returns:

StorageResult with operation outcome

async get(provider, resource, **kwargs)[source]

Retrieve data from a specific provider.

Parameters:
  • provider (str) – Storage provider name

  • resource (str) – Resource identifier

  • **kwargs – Provider-specific parameters

Return type:

StorageResult

Returns:

StorageResult with retrieved data

async query(provider, resource, query, **kwargs)[source]

Execute a query on a specific provider.

Parameters:
  • provider (str) – Storage provider name

  • resource (str) – Resource to query

  • query (Union[str, Dict]) – Query string or structured query

  • **kwargs – Query parameters

Return type:

StorageResult

Returns:

StorageResult with query results

async delete(provider, resource, **kwargs)[source]

Delete data from a specific provider.

Parameters:
  • provider (str) – Storage provider name

  • resource (str) – Resource to delete

  • **kwargs – Delete parameters

Return type:

StorageResult

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 store

  • resource (Optional[str]) – Optional resource identifier

  • preferred_provider (Optional[str]) – Preferred storage provider

  • **kwargs – Storage parameters

Return type:

StorageResult

Returns:

StorageResult with operation outcome

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 name

  • resource (str) – Resource identifier

  • **metadata – Additional metadata

Return type:

DataReference

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:

StorageResult

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

get_provider_info(provider)[source]

Get information about a storage provider.

Parameters:

provider (str) – Storage provider name

Return type:

Dict[str, Any]

Returns:

Provider information dictionary

async health_check(provider=None)[source]

Perform health check on providers.

Parameters:

provider (Optional[str]) – Specific provider to check (None for all)

Return type:

Dict[str, Any]

Returns:

Health check results

praval.storage.data_manager.get_data_manager()[source]

Get the global data manager instance.

Return type:

DataManager

async praval.storage.data_manager.store_data(provider, resource, data, **kwargs)[source]

Store data using the global data manager.

Return type:

StorageResult

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:

StorageResult

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:

StorageResult

Parameters:
  • provider (str)

  • resource (str)

  • query (str | Dict)

async praval.storage.data_manager.delete_data(provider, resource, **kwargs)[source]

Delete data using the global data manager.

Return type:

StorageResult

Parameters:
  • provider (str)

  • resource (str)