praval.storage.base_provider๏
Base Storage Provider Framework
Defines the core interfaces and base classes for all Praval storage providers. This provides a standardized way to create, register, and use storage backends that agents can access uniformly.
Functions
|
Create a storage provider instance. |
Classes
|
Abstract base class for all storage providers. |
|
Reference to data stored in a backend |
|
Metadata describing a storage provider's capabilities |
|
Query parameters for storage operations |
|
Result from storage operation |
|
Types of storage backends |
- class praval.storage.base_provider.StorageType(*values)[source]๏
Bases:
EnumTypes of storage backends
- RELATIONAL = 'relational'๏
- DOCUMENT = 'document'๏
- KEY_VALUE = 'key_value'๏
- OBJECT = 'object'๏
- VECTOR = 'vector'๏
- SEARCH = 'search'๏
- GRAPH = 'graph'๏
- FILE_SYSTEM = 'file_system'๏
- CACHE = 'cache'๏
- QUEUE = 'queue'๏
- class praval.storage.base_provider.DataReference(provider, storage_type, resource_id, metadata=<factory>, created_at=<factory>, expires_at=None)[source]๏
Bases:
objectReference to data stored in a backend
- Parameters:
-
storage_type:
StorageType๏
- class praval.storage.base_provider.StorageQuery(operation, resource, parameters=<factory>, filters=<factory>, limit=None, offset=None, timeout=None)[source]๏
Bases:
objectQuery parameters for storage operations
- Parameters:
- class praval.storage.base_provider.StorageResult(success, data=None, error=None, execution_time=0.0, metadata=<factory>, data_reference=None, timestamp=<factory>)[source]๏
Bases:
objectResult from storage operation
- Parameters:
-
data_reference:
Optional[DataReference] = None๏
- __init__(success, data=None, error=None, execution_time=0.0, metadata=<factory>, data_reference=None, timestamp=<factory>)๏
- class praval.storage.base_provider.StorageMetadata(name, description, storage_type, version='1.0.0', supports_async=True, supports_transactions=False, supports_schemas=False, supports_indexing=False, supports_search=False, supports_streaming=False, max_connection_pool=10, default_timeout=30.0, required_config=<factory>, optional_config=<factory>, connection_string_template=None)[source]๏
Bases:
objectMetadata describing a storage providerโs capabilities
- Parameters:
name (str)
description (str)
storage_type (StorageType)
version (str)
supports_async (bool)
supports_transactions (bool)
supports_schemas (bool)
supports_indexing (bool)
supports_search (bool)
supports_streaming (bool)
max_connection_pool (int)
default_timeout (float)
connection_string_template (str | None)
-
storage_type:
StorageType๏
- __init__(name, description, storage_type, version='1.0.0', supports_async=True, supports_transactions=False, supports_schemas=False, supports_indexing=False, supports_search=False, supports_streaming=False, max_connection_pool=10, default_timeout=30.0, required_config=<factory>, optional_config=<factory>, connection_string_template=None)๏
- Parameters:
name (str)
description (str)
storage_type (StorageType)
version (str)
supports_async (bool)
supports_transactions (bool)
supports_schemas (bool)
supports_indexing (bool)
supports_search (bool)
supports_streaming (bool)
max_connection_pool (int)
default_timeout (float)
connection_string_template (str | None)
- Return type:
None
- class praval.storage.base_provider.BaseStorageProvider(name, config)[source]๏
Bases:
ABCAbstract base class for all storage providers.
All storage backends must inherit from this class and implement the required methods. This ensures a consistent interface across all storage types while allowing for provider-specific optimizations.
- abstractmethod async connect()[source]๏
Establish connection to the storage backend.
- Return type:
- Returns:
True if connection successful, False otherwise
- abstractmethod async store(resource, data, **kwargs)[source]๏
Store data in the backend.
- Parameters:
- Return type:
- Returns:
StorageResult with operation outcome
- abstractmethod async retrieve(resource, **kwargs)[source]๏
Retrieve data from the backend.
- Parameters:
resource (
str) โ Resource identifier**kwargs โ Provider-specific parameters
- Return type:
- Returns:
StorageResult with retrieved data
- abstractmethod async query(resource, query, **kwargs)[source]๏
Execute a query against the backend.
- Parameters:
- Return type:
- Returns:
StorageResult with query results
- abstractmethod async delete(resource, **kwargs)[source]๏
Delete data from the backend.
- Parameters:
resource (
str) โ Resource to delete**kwargs โ Provider-specific parameters
- Return type:
- Returns:
StorageResult with operation outcome
- async list_resources(prefix='', **kwargs)[source]๏
List available resources.
- Parameters:
prefix (
str) โ Resource prefix to filter by**kwargs โ Provider-specific parameters
- Return type:
- Returns:
StorageResult with list of resources