Skip to main content

FalkorDB client library for kiarina namespace

Project description

kiarina-lib-falkordb

A Python client library for FalkorDB with configuration management and connection pooling.

Features

  • Configuration Management: Flexible settings with pydantic-settings-manager
  • Connection Pooling: Automatic caching and reuse
  • Retry Support: Built-in retry mechanism for connection failures
  • Sync & Async: Support for both synchronous and asynchronous operations
  • Type Safety: Full type hints and Pydantic validation

Installation

pip install kiarina-lib-falkordb

Quick Start

Basic Usage

from kiarina.lib.falkordb import get_falkordb

# Get a FalkorDB client
db = get_falkordb()

# Run a query
graph = db.select_graph("social")
result = graph.query("CREATE (p:Person {name: 'Alice', age: 30}) RETURN p")
print(result.result_set)

# Connections are cached by default
db2 = get_falkordb()
assert db is db2

# Use different cache keys for separate connections
db3 = get_falkordb(cache_key="secondary")
assert db is not db3

Async Usage

from kiarina.lib.falkordb.asyncio import get_falkordb

async def main():
    db = get_falkordb()
    graph = db.select_graph("social")
    result = await graph.query("CREATE (p:Person {name: 'Bob', age: 25}) RETURN p")
    print(result.result_set)

Runtime Overrides

# Override settings at runtime
db = get_falkordb(
    url="falkor://custom-server:6379",
    use_retry=True
)

API Reference

get_falkordb()

Get a FalkorDB client with configuration management.

def get_falkordb(
    settings_key: str | None = None,
    *,
    cache_key: str | None = None,
    use_retry: bool | None = None,
    url: str | None = None,
    **kwargs: Any,
) -> FalkorDB

Parameters:

  • settings_key: Configuration key to use (for multi-config setups)
  • cache_key: Cache key for connection pooling (defaults to URL)
  • use_retry: Override retry setting
  • url: Override connection URL
  • **kwargs: Additional parameters for FalkorDB client

Returns: FalkorDB client instance (cached)

Configuration

This library uses pydantic-settings-manager for configuration management.

YAML Configuration (Recommended)

# config.yaml
kiarina.lib.falkordb:
  development:
    url: "falkor://localhost:6379"
    use_retry: true
    retry_attempts: 3

  production:
    url: "falkor://prod-server:6379"
    use_retry: true
    retry_attempts: 5
    socket_timeout: 10.0
import yaml
from kiarina.lib.falkordb import settings_manager, get_falkordb

# Load configuration
with open("config.yaml") as f:
    config = yaml.safe_load(f)

settings_manager.user_config = config["kiarina.lib.falkordb"]

# Use specific configuration
settings_manager.active_key = "production"
db = get_falkordb()

Configuration Reference

Setting Default Description
url "falkor://localhost:6379" FalkorDB connection URL (supports falkor://, falkors:// with optional auth)
use_retry false Enable automatic retries on connection errors
socket_timeout 6.0 Socket timeout in seconds
socket_connect_timeout 3.0 Connection timeout in seconds
health_check_interval 60 Health check interval in seconds
retry_attempts 3 Number of retry attempts
retry_delay 1.0 Delay between retries in seconds

All settings can be configured via environment variables with the KIARINA_LIB_FALKORDB_ prefix.

Testing

# Start FalkorDB
docker compose up -d falkordb

# Run tests
mise run package:test kiarina-lib-falkordb

# With coverage
mise run package:test kiarina-lib-falkordb --coverage

Dependencies

Note: This library uses a fork of the official FalkorDB client that supports redis-py 6.x and includes async bug fixes. Once these improvements are merged upstream, we'll migrate back to the official client.

License

MIT License - see the LICENSE file for details.

Related Projects

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kiarina_lib_falkordb-1.24.0.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kiarina_lib_falkordb-1.24.0-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file kiarina_lib_falkordb-1.24.0.tar.gz.

File metadata

  • Download URL: kiarina_lib_falkordb-1.24.0.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kiarina_lib_falkordb-1.24.0.tar.gz
Algorithm Hash digest
SHA256 5275570e5afd8a109b9821a044ee399c6d521a8e0bc8ca763714b0f1543e739c
MD5 af2be09590290aa6a9e75ac156bfec10
BLAKE2b-256 76a4f91d115806ec4784ebf6744ac1a0ccc309cb3a78223b1aa38c48831ebc98

See more details on using hashes here.

File details

Details for the file kiarina_lib_falkordb-1.24.0-py3-none-any.whl.

File metadata

File hashes

Hashes for kiarina_lib_falkordb-1.24.0-py3-none-any.whl
Algorithm Hash digest
SHA256 01cf7f985b6f28aac4c27f448740fde387cdfc68b9494b42d37b55db4740e0f0
MD5 9be20357a0e256bf8201d1877e45f4c0
BLAKE2b-256 c60dd43c21f6dd40bd8ad322bee603686d34f5fc0d77d3098286e33ae8cb613d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page