Coverage for src/qdrant_loader/config/graph.py: 100%
17 statements
« prev ^ index » next coverage.py v7.15.0, created at 2026-07-20 10:15 +0000
« prev ^ index » next coverage.py v7.15.0, created at 2026-07-20 10:15 +0000
1"""Graph configuration settings.
3This module defines the Graph-specific configuration settings.
4"""
6from pydantic import BaseModel, Field, PositiveInt, SecretStr
9class GraphConnectionConfig(BaseModel):
10 host: str = Field(default="localhost", min_length=1, description="Graph DB host")
11 port: int = Field(default=6379, ge=1, le=65535, description="Graph DB port")
12 password: SecretStr | None = Field(default=None, description="Graph DB password")
15class GraphPoolConfig(BaseModel):
16 max_connections: PositiveInt = Field(default=10, description="Max connections")
19class GraphConfig(BaseModel):
20 """Configuration for Graph database."""
22 enabled: bool = Field(default=False, description="Enable graph processing")
23 backend: str = Field(
24 default="falkordb", min_length=1, description="Graph backend type"
25 )
27 connection: GraphConnectionConfig = Field(
28 default_factory=GraphConnectionConfig, description="Connection settings"
29 )
31 graph_name: str = Field(
32 default="default_graph", min_length=1, description="Graph name / namespace"
33 )
35 pool: GraphPoolConfig = Field(
36 default_factory=GraphPoolConfig, description="Connection pool settings"
37 )
39 def store_kwargs(self) -> dict:
40 """Kwargs for qdrant_loader_core.graph.get_graph_store()."""
41 return {
42 "host": self.connection.host,
43 "port": self.connection.port,
44 "password": (
45 self.connection.password.get_secret_value()
46 if self.connection.password is not None
47 else None
48 ),
49 "graph_name": self.graph_name,
50 "max_connections": self.pool.max_connections,
51 }
53 def to_dict(self) -> dict:
54 """Convert config to dictionary (useful for client init)."""
55 return {
56 "enabled": self.enabled,
57 "backend": self.backend,
58 "host": self.connection.host,
59 "port": self.connection.port,
60 "password": self.connection.password, # keep SecretStr; call get_secret_value() at client init only
61 "graph_name": self.graph_name,
62 "max_connections": self.pool.max_connections,
63 }