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-2.0.0.tar.gz (6.6 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-2.0.0-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for kiarina_lib_falkordb-2.0.0.tar.gz
Algorithm Hash digest
SHA256 ee57e719f92d27b403c6d5b4005c6b538be409d61fe7e73ff1a8db9ea7de4b7f
MD5 8ae28af62d25b6cd32115a17be2522bd
BLAKE2b-256 15caed8ed71fa90ac5652d951d68a62337195d4a5e6d709a09265a9721243d28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kiarina_lib_falkordb-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 16bd46f091b20bc282c744f34485d42ee6b9b6ab4628477e520b3a70d79355f8
MD5 be3e79d3b136d3aea531b8d1d58ebf96
BLAKE2b-256 7693a797e075fa7c67f169f8e84322aa8f10ac096ccd90a274cb60d657480a78

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