1515
1616
1717class Settings (BaseSettings ):
18+ """Environment-based configuration for the CBRKit API."""
19+
1820 model_config = SettingsConfigDict (env_prefix = "cbrkit_" )
1921 retriever : str = ""
2022 reuser : str = ""
@@ -28,6 +30,7 @@ class Settings(BaseSettings):
2830
2931
3032def load_callables (value : str ) -> dict [str , Any ]:
33+ """Load callable objects from a comma-separated string of module paths."""
3134 if value == "" :
3235 return {}
3336
@@ -56,6 +59,7 @@ def load_callables(value: str) -> dict[str, Any]:
5659
5760
5861def parse_dataset (obj : CasebaseSpec ) -> Mapping [str , Any ]:
62+ """Parse a casebase specification into a string-keyed mapping."""
5963 if isinstance (obj , dict ):
6064 return cast (dict [str , Any ], obj )
6165
@@ -78,6 +82,7 @@ def parse_callables[T](
7882 keys : list [str ] | str | None ,
7983 loaded : dict [str , T ],
8084) -> list [T ]:
85+ """Select loaded callables by name, defaulting to all available."""
8186 if not keys :
8287 keys = list (loaded .keys ())
8388 elif isinstance (keys , str ):
@@ -87,6 +92,8 @@ def parse_callables[T](
8792
8893
8994class RetrieveRequest (BaseModel ):
95+ """Request payload for the retrieval endpoint."""
96+
9097 casebase : CasebaseSpec
9198 queries : CasebaseSpec
9299 retrievers : Annotated [list [str ] | str , Field (default_factory = list )]
@@ -96,6 +103,7 @@ class RetrieveRequest(BaseModel):
96103def retrieve (
97104 request : RetrieveRequest ,
98105) -> cbrkit .retrieval .Result [str , str , Any , cbrkit .typing .Float ]:
106+ """Handle a retrieval request and return ranked results."""
99107 return cbrkit .retrieval .apply_queries (
100108 parse_dataset (request .casebase ),
101109 parse_dataset (request .queries ),
@@ -104,6 +112,8 @@ def retrieve(
104112
105113
106114class ReuseRequest (BaseModel ):
115+ """Request payload for the reuse endpoint."""
116+
107117 casebase : CasebaseSpec
108118 queries : CasebaseSpec
109119 reusers : Annotated [list [str ] | str , Field (default_factory = list )]
@@ -113,6 +123,7 @@ class ReuseRequest(BaseModel):
113123def reuse (
114124 request : ReuseRequest ,
115125) -> cbrkit .reuse .Result [str , str , Any , cbrkit .typing .Float ]:
126+ """Handle a reuse request and return adapted results."""
116127 return cbrkit .reuse .apply_queries (
117128 parse_dataset (request .casebase ),
118129 parse_dataset (request .queries ),
@@ -121,6 +132,8 @@ def reuse(
121132
122133
123134class CycleRequest (BaseModel ):
135+ """Request payload for the full CBR cycle endpoint."""
136+
124137 casebase : CasebaseSpec
125138 queries : CasebaseSpec
126139 retrievers : Annotated [list [str ] | str , Field (default_factory = list )]
@@ -133,6 +146,7 @@ class CycleRequest(BaseModel):
133146def cycle (
134147 request : CycleRequest ,
135148) -> cbrkit .cycle .Result [str , str , Any , cbrkit .typing .Float ]:
149+ """Handle a full CBR cycle request and return the combined result."""
136150 return cbrkit .cycle .apply_queries (
137151 parse_dataset (request .casebase ),
138152 parse_dataset (request .queries ),
@@ -144,6 +158,8 @@ def cycle(
144158
145159
146160class SynthesizeRequest (BaseModel ):
161+ """Request payload for the synthesis endpoint."""
162+
147163 casebase : CasebaseSpec
148164 queries : CasebaseSpec
149165 synthesizer : str
@@ -157,6 +173,7 @@ class SynthesizeRequest(BaseModel):
157173def synthesize (
158174 request : SynthesizeRequest ,
159175) -> cbrkit .synthesis .Result [str , Any ]:
176+ """Handle a synthesis request by running a CBR cycle and synthesizing the result."""
160177 cycle_result = cbrkit .cycle .apply_queries (
161178 parse_dataset (request .casebase ),
162179 parse_dataset (request .queries ),
@@ -173,6 +190,7 @@ def synthesize(
173190
174191
175192def openapi_generator ():
193+ """Generate and cache the OpenAPI schema for the CBRKit API."""
176194 if not app .openapi_schema :
177195 app .openapi_schema = get_openapi (
178196 title = "CBRKit" ,
0 commit comments