praval.storage.decorators๏
Storage decorators for Praval agents
Provides decorator-based integration between agents and storage providers, following the same patterns as the agent and tool decorators.
Functions
|
Decorator to require specific storage providers for a function. |
|
Decorator to enable storage access for agent functions. |
- praval.storage.decorators.storage_enabled(providers=None, auto_register=True, permissions=None, **default_configs)[source]๏
Decorator to enable storage access for agent functions.
- Parameters:
providers (
Union[str,List[str],Dict[str,Dict[str,Any]],None]) โ Storage providers to enable. Can be: - String: Single provider name - List: Multiple provider names - Dict: Provider name -> configuration mappingauto_register (
bool) โ Whether to auto-register providers from environmentpermissions (
Optional[List[str]]) โ Default permissions for storage accessdefault_configs โ Default configurations for providers
Examples:
@storage_enabled("postgres") @agent("data_analyst") def analyze_data(spore): data = storage.query("postgres", "SELECT * FROM customers") @storage_enabled(["postgres", "s3", "redis"]) @agent("business_intelligence") def generate_report(spore): # Access multiple storage backends pass @storage_enabled({ "postgres": {"host": "localhost", "database": "business"}, "s3": {"bucket_name": "reports"} }) @agent("report_generator") def create_analysis(spore): pass
- praval.storage.decorators.requires_storage(*provider_names, permissions=None)[source]๏
Decorator to require specific storage providers for a function.
- Parameters:
Example:
@requires_storage("postgres", "s3") @agent("data_processor") def process_customer_data(spore): # Function requires both postgres and s3 to be available pass