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

requires_storage(*provider_names[,ย permissions])

Decorator to require specific storage providers for a function.

storage_enabled([providers,ย auto_register,ย ...])

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 mapping

  • auto_register (bool) โ€“ Whether to auto-register providers from environment

  • permissions (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:
  • *provider_names (str) โ€“ Names of required storage providers

  • permissions (Optional[List[str]]) โ€“ Required permissions for storage access

Example:

@requires_storage("postgres", "s3")
@agent("data_processor")
def process_customer_data(spore):
    # Function requires both postgres and s3 to be available
    pass