praval.storage.providers๏ƒ

Built-in storage providers for Praval framework

This module contains ready-to-use storage provider implementations for common backends like PostgreSQL, Redis, S3, and file systems.

class praval.storage.providers.PostgreSQLProvider(name, config)[source]๏ƒ

Bases: BaseStorageProvider

PostgreSQL storage provider with async connection pooling.

Features: - Async connection pooling - SQL query execution - Transaction support - Schema management - JSON column support - Full-text search capabilities

Parameters:
async connect()[source]๏ƒ

Establish connection pool to PostgreSQL.

Return type:

bool

async delete(resource, **kwargs)[source]๏ƒ

Delete data from PostgreSQL table.

Parameters:
  • resource (str) โ€“ Table name

  • **kwargs โ€“ Delete parameters (where clause required)

Return type:

StorageResult

Returns:

StorageResult with operation outcome

async disconnect()[source]๏ƒ

Close connection pool.

async list_resources(prefix='', **kwargs)[source]๏ƒ

List tables in the database.

Return type:

StorageResult

Parameters:

prefix (str)

async query(resource, query, **kwargs)[source]๏ƒ

Execute SQL query against PostgreSQL.

Parameters:
  • resource (str) โ€“ Table name (ignored for raw SQL)

  • query (Union[str, Dict]) โ€“ SQL query string or structured query dict

  • **kwargs โ€“ Query parameters

Return type:

StorageResult

Returns:

StorageResult with query results

async retrieve(resource, **kwargs)[source]๏ƒ

Retrieve data from PostgreSQL table.

Parameters:
  • resource (str) โ€“ Table name

  • **kwargs โ€“ Query parameters (where, limit, offset, order_by, etc.)

Return type:

StorageResult

Returns:

StorageResult with retrieved data

async store(resource, data, **kwargs)[source]๏ƒ

Store data in PostgreSQL table.

Parameters:
  • resource (str) โ€“ Table name

  • data (Any) โ€“ Data to store (dict or list of dicts)

  • **kwargs โ€“ Additional parameters (upsert, returning, etc.)

Return type:

StorageResult

Returns:

StorageResult with operation outcome

class praval.storage.providers.RedisProvider(name, config)[source]๏ƒ

Bases: BaseStorageProvider

Redis key-value storage provider with async support.

Features: - Key-value operations (GET, SET, DEL) - Hash operations (HGET, HSET, HGETALL) - List operations (LPUSH, RPUSH, LRANGE) - Set operations (SADD, SMEMBERS) - Expiration and TTL management - Pub/Sub messaging - Lua script execution

Parameters:
async connect()[source]๏ƒ

Establish connection to Redis.

Return type:

bool

async delete(resource, **kwargs)[source]๏ƒ

Delete keys from Redis.

Parameters:
  • resource (str) โ€“ Key or pattern to delete

  • **kwargs โ€“ Delete parameters

Return type:

StorageResult

Returns:

StorageResult with operation outcome

async disconnect()[source]๏ƒ

Close Redis connection.

async list_resources(prefix='', **kwargs)[source]๏ƒ

List keys in Redis.

Return type:

StorageResult

Parameters:

prefix (str)

async query(resource, query, **kwargs)[source]๏ƒ

Execute Redis operations or search queries.

Parameters:
  • resource (str) โ€“ Pattern or specific key

  • query (Union[str, Dict]) โ€“ Query type or Redis command

  • **kwargs โ€“ Query parameters

Return type:

StorageResult

Returns:

StorageResult with query results

async retrieve(resource, **kwargs)[source]๏ƒ

Retrieve data from Redis.

Parameters:
  • resource (str) โ€“ Redis key

  • **kwargs โ€“ Additional parameters (decode_json, etc.)

Return type:

StorageResult

Returns:

StorageResult with retrieved data

async store(resource, data, **kwargs)[source]๏ƒ

Store data in Redis.

Parameters:
  • resource (str) โ€“ Redis key

  • data (Any) โ€“ Data to store (will be JSON serialized if not string)

  • **kwargs โ€“ Redis parameters (ex, px, nx, xx, etc.)

Return type:

StorageResult

Returns:

StorageResult with operation outcome

class praval.storage.providers.S3Provider(name, config)[source]๏ƒ

Bases: BaseStorageProvider

S3-compatible object storage provider.

Features: - Object upload, download, and deletion - Bucket management - Presigned URLs for secure access - Metadata and tagging support - Multipart uploads for large files - Lifecycle management - Cross-region replication support

Parameters:
async connect()[source]๏ƒ

Establish connection to S3.

Return type:

bool

async delete(resource, **kwargs)[source]๏ƒ

Delete object(s) from S3.

Parameters:
  • resource (str) โ€“ Object key or prefix

  • **kwargs โ€“ Delete parameters (recursive, etc.)

Return type:

StorageResult

Returns:

StorageResult with operation outcome

async disconnect()[source]๏ƒ

Close S3 connection.

async list_resources(prefix='', **kwargs)[source]๏ƒ

List objects in S3 bucket.

Return type:

StorageResult

Parameters:

prefix (str)

async query(resource, query, **kwargs)[source]๏ƒ

Execute S3 operations or list objects.

Parameters:
  • resource (str) โ€“ Prefix or specific key

  • query (Union[str, Dict]) โ€“ Query type (โ€œlistโ€, โ€œsearchโ€, โ€œmetadataโ€, etc.)

  • **kwargs โ€“ Query parameters

Return type:

StorageResult

Returns:

StorageResult with query results

async retrieve(resource, **kwargs)[source]๏ƒ

Retrieve object from S3.

Parameters:
  • resource (str) โ€“ S3 object key

  • **kwargs โ€“ Retrieval parameters (range, decode_json, etc.)

Return type:

StorageResult

Returns:

StorageResult with retrieved data

async store(resource, data, **kwargs)[source]๏ƒ

Store object in S3.

Parameters:
  • resource (str) โ€“ S3 object key

  • data (Any) โ€“ Data to store (bytes, string, file-like object, or dict/list for JSON)

  • **kwargs โ€“ S3 parameters (content_type, metadata, acl, etc.)

Return type:

StorageResult

Returns:

StorageResult with operation outcome

class praval.storage.providers.FileSystemProvider(name, config)[source]๏ƒ

Bases: BaseStorageProvider

Local file system storage provider.

Features: - File and directory operations - Path management and validation - File metadata and permissions - Recursive operations - Pattern-based file listing - Atomic file operations

Parameters:
async connect()[source]๏ƒ

Verify file system access.

Return type:

bool

async delete(resource, **kwargs)[source]๏ƒ

Delete file or directory from file system.

Parameters:
  • resource (str) โ€“ Path to delete

  • **kwargs โ€“ Delete parameters (recursive, etc.)

Return type:

StorageResult

Returns:

StorageResult with operation outcome

async disconnect()[source]๏ƒ

No explicit disconnection needed for file system.

async list_resources(prefix='', **kwargs)[source]๏ƒ

List files and directories.

Return type:

StorageResult

Parameters:

prefix (str)

async query(resource, query, **kwargs)[source]๏ƒ

Execute file system operations.

Parameters:
  • resource (str) โ€“ Path or pattern

  • query (Union[str, Dict]) โ€“ Query type (โ€œlistโ€, โ€œfindโ€, โ€œmetadataโ€, etc.)

  • **kwargs โ€“ Query parameters

Return type:

StorageResult

Returns:

StorageResult with query results

async retrieve(resource, **kwargs)[source]๏ƒ

Retrieve data from file system.

Parameters:
  • resource (str) โ€“ File path relative to base_path

  • **kwargs โ€“ Read parameters (encoding, decode_json, etc.)

Return type:

StorageResult

Returns:

StorageResult with retrieved data

async store(resource, data, **kwargs)[source]๏ƒ

Store data to file system.

Parameters:
  • resource (str) โ€“ File path relative to base_path

  • data (Any) โ€“ Data to store (string, bytes, dict/list for JSON, or file-like object)

  • **kwargs โ€“ File parameters (encoding, mode, etc.)

Return type:

StorageResult

Returns:

StorageResult with operation outcome

class praval.storage.providers.QdrantProvider(name, config)[source]๏ƒ

Bases: BaseStorageProvider

Qdrant vector database storage provider.

Features: - Vector similarity search - Collection management - Point insertion and retrieval - Filtering and metadata search - Batch operations - Integration with Praval memory system

Parameters:
async connect()[source]๏ƒ

Establish connection to Qdrant.

Return type:

bool

async delete(resource, **kwargs)[source]๏ƒ

Delete points from Qdrant.

Parameters:
  • resource (str) โ€“ Collection name or โ€œcollection:point_idโ€

  • **kwargs โ€“ Delete parameters (point_ids, filter)

Return type:

StorageResult

Returns:

StorageResult with operation outcome

async disconnect()[source]๏ƒ

Close Qdrant connection.

async list_resources(prefix='', **kwargs)[source]๏ƒ

List collections in Qdrant.

Return type:

StorageResult

Parameters:

prefix (str)

async query(resource, query, **kwargs)[source]๏ƒ

Execute vector search or other operations.

Parameters:
  • resource (str) โ€“ Collection name

  • query (Union[str, Dict]) โ€“ Query type or search vector

  • **kwargs โ€“ Query parameters

Return type:

StorageResult

Returns:

StorageResult with query results

async retrieve(resource, **kwargs)[source]๏ƒ

Retrieve vectors from Qdrant.

Parameters:
  • resource (str) โ€“ Collection name or โ€œcollection:point_idโ€

  • **kwargs โ€“ Retrieval parameters (point_ids, with_vectors, with_payload)

Return type:

StorageResult

Returns:

StorageResult with retrieved data

async store(resource, data, **kwargs)[source]๏ƒ

Store vector data in Qdrant.

Parameters:
  • resource (str) โ€“ Collection name (optional, uses default if not specified)

  • data (Any) โ€“ Data to store - can be: - Single point: {โ€œidโ€: โ€œโ€ฆโ€, โ€œvectorโ€: [โ€ฆ], โ€œpayloadโ€: {โ€ฆ}} - Multiple points: [{โ€œidโ€: โ€œโ€ฆโ€, โ€œvectorโ€: [โ€ฆ], โ€œpayloadโ€: {โ€ฆ}}, โ€ฆ] - Just vector: [0.1, 0.2, โ€ฆ] (will generate ID)

  • **kwargs โ€“ Additional parameters

Return type:

StorageResult

Returns:

StorageResult with operation outcome

Modules

filesystem

File system storage provider for Praval framework

postgresql

PostgreSQL storage provider for Praval framework

qdrant_provider

Qdrant vector storage provider for Praval framework

redis_provider

Redis storage provider for Praval framework

s3_provider

S3 object storage provider for Praval framework