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 access**default_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