API Reference¶
Complete API documentation for all chapkit modules, classes, and functions.
Artifact Module¶
Hierarchical storage system for models, data, and experiment tracking.
Models¶
models
¶
Artifact ORM model for hierarchical data storage.
Classes¶
Artifact
¶
Bases: Entity
ORM model for hierarchical artifacts with parent-child relationships.
Source code in src/chapkit/artifact/models.py
Schemas¶
schemas
¶
Pydantic schemas for hierarchical artifacts with tree structures.
Classes¶
ArtifactIn
¶
ArtifactOut
¶
ArtifactTreeNode
¶
Bases: ArtifactOut
Artifact node with tree structure metadata.
Source code in src/chapkit/artifact/schemas.py
ArtifactHierarchy
¶
Bases: BaseModel
Configuration for artifact hierarchy with level labels.
Source code in src/chapkit/artifact/schemas.py
PandasDataFrame
¶
Bases: BaseModel
Pydantic schema for serializing pandas DataFrames.
Source code in src/chapkit/artifact/schemas.py
Functions¶
from_dataframe(df)
classmethod
¶
Create schema from pandas DataFrame.
Source code in src/chapkit/artifact/schemas.py
Repository¶
repository
¶
Artifact repository for hierarchical data access with tree traversal.
Classes¶
ArtifactRepository
¶
Bases: BaseRepository[Artifact, ULID]
Repository for Artifact entities with tree traversal operations.
Source code in src/chapkit/artifact/repository.py
Functions¶
__init__(session)
¶
find_by_id(id)
async
¶
Find an artifact by ID with children eagerly loaded.
find_subtree(start_id)
async
¶
Find all artifacts in the subtree rooted at the given ID using recursive CTE.
Source code in src/chapkit/artifact/repository.py
get_root_artifact(artifact_id)
async
¶
Find the root artifact by traversing up the parent chain.
Source code in src/chapkit/artifact/repository.py
Manager¶
manager
¶
Artifact manager for hierarchical data with parent-child relationships.
Classes¶
ArtifactManager
¶
Bases: BaseManager[Artifact, ArtifactIn, ArtifactOut, ULID]
Manager for Artifact entities with hierarchical tree operations.
Source code in src/chapkit/artifact/manager.py
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
|
Functions¶
__init__(repo, hierarchy=None)
¶
Initialize artifact manager with repository and optional hierarchy.
Source code in src/chapkit/artifact/manager.py
find_subtree(start_id)
async
¶
Find all artifacts in the subtree rooted at the given ID.
Source code in src/chapkit/artifact/manager.py
expand_artifact(artifact_id)
async
¶
Expand a single artifact with hierarchy metadata but without children.
Source code in src/chapkit/artifact/manager.py
build_tree(start_id)
async
¶
Build a hierarchical tree structure rooted at the given artifact ID.
Source code in src/chapkit/artifact/manager.py
pre_save(entity, data)
async
¶
pre_update(entity, data, old_values)
async
¶
Recalculate artifact level and cascade updates to descendants if parent changed.
Source code in src/chapkit/artifact/manager.py
Router¶
router
¶
Artifact CRUD router with hierarchical tree operations.
Classes¶
ArtifactRouter
¶
Bases: CrudRouter[ArtifactIn, ArtifactOut]
CRUD router for Artifact entities with tree operations.
Source code in src/chapkit/artifact/router.py
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
|
Functions¶
__init__(prefix, tags, manager_factory, entity_in_type, entity_out_type, permissions=None, enable_config_access=False, **kwargs)
¶
Initialize artifact router with entity types and manager factory.
Source code in src/chapkit/artifact/router.py
Task Module¶
Reusable command templates for shell and Python task execution.
Models¶
models
¶
Task ORM model for reusable command templates.
Classes¶
Task
¶
Bases: Entity
ORM model for reusable task templates containing commands to execute.
Source code in src/chapkit/task/models.py
Schemas¶
schemas
¶
Task schemas for reusable command templates.
Classes¶
TaskIn
¶
Bases: EntityIn
Input schema for creating or updating task templates.
Source code in src/chapkit/task/schemas.py
TaskOut
¶
Bases: EntityOut
Output schema for task template entities.
Source code in src/chapkit/task/schemas.py
Repository¶
repository
¶
Task repository for database access and querying.
Classes¶
TaskRepository
¶
Bases: BaseRepository[Task, ULID]
Repository for Task template entities.
Source code in src/chapkit/task/repository.py
Manager¶
manager
¶
Task manager for reusable command templates with artifact-based execution results.
Classes¶
TaskManager
¶
Bases: BaseManager[Task, TaskIn, TaskOut, ULID]
Manager for Task template entities with artifact-based execution.
Source code in src/chapkit/task/manager.py
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 |
|
Functions¶
__init__(repo, scheduler=None, database=None, artifact_manager=None)
¶
Initialize task manager with repository, scheduler, database, and artifact manager.
Source code in src/chapkit/task/manager.py
find_all(*, enabled=None)
async
¶
Find all tasks, optionally filtered by enabled status.
Source code in src/chapkit/task/manager.py
execute_task(task_id)
async
¶
Execute a task by submitting it to the scheduler and return the job ID.
Source code in src/chapkit/task/manager.py
Router¶
router
¶
Task CRUD router with execution operation.
Classes¶
TaskExecuteResponse
¶
Bases: BaseModel
Response schema for task execution.
Source code in src/chapkit/task/router.py
TaskRouter
¶
Bases: CrudRouter[TaskIn, TaskOut]
CRUD router for Task entities with execution operation.
Source code in src/chapkit/task/router.py
Functions¶
__init__(prefix, tags, manager_factory, entity_in_type, entity_out_type, permissions=None, **kwargs)
¶
Initialize task router with entity types and manager factory.
Source code in src/chapkit/task/router.py
Registry¶
registry
¶
Global registry for Python task functions.
Classes¶
TaskRegistry
¶
Global registry for Python task functions.
Source code in src/chapkit/task/registry.py
Functions¶
register(name)
classmethod
¶
Decorator to register a task function with support for type-based dependency injection.
Source code in src/chapkit/task/registry.py
register_function(name, func)
classmethod
¶
Imperatively register a task function.
get(name)
classmethod
¶
Retrieve a registered task function.
list_all()
classmethod
¶
Validation¶
validation
¶
Task validation utilities for detecting orphaned Python tasks.
Classes¶
Functions¶
validate_and_disable_orphaned_tasks(app)
async
¶
Validate Python tasks and disable orphaned ones that reference missing functions.
Source code in src/chapkit/task/validation.py
Config Module¶
Key-value configuration storage with Pydantic schema validation.
Models¶
models
¶
Config ORM models for key-value configuration storage and artifact linking.
Classes¶
Config
¶
Bases: Entity
ORM model for configuration with JSON data storage.
Source code in src/chapkit/config/models.py
ConfigArtifact
¶
Bases: Base
Junction table linking Configs to root Artifacts.
Source code in src/chapkit/config/models.py
Schemas¶
schemas
¶
Config schemas for key-value configuration with JSON data.
Classes¶
BaseConfig
¶
ConfigIn
¶
ConfigOut
¶
Bases: EntityOut
Output schema for configuration entities.
Source code in src/chapkit/config/schemas.py
Functions¶
convert_dict_to_model(v, info)
classmethod
¶
Convert dict to BaseConfig model if data_cls is provided in validation context.
Source code in src/chapkit/config/schemas.py
serialize_data(value)
¶
Serialize BaseConfig data to JSON dict.
Source code in src/chapkit/config/schemas.py
LinkArtifactRequest
¶
Repository¶
repository
¶
Config repository for database access and artifact linking.
Classes¶
ConfigRepository
¶
Bases: BaseRepository[Config, ULID]
Repository for Config entities with artifact linking operations.
Source code in src/chapkit/config/repository.py
Functions¶
__init__(session)
¶
find_by_name(name)
async
¶
link_artifact(config_id, artifact_id)
async
¶
Link a config to a root artifact.
Source code in src/chapkit/config/repository.py
unlink_artifact(artifact_id)
async
¶
Unlink an artifact from its config.
delete_by_id(id)
async
¶
Delete a config and cascade delete all linked artifact trees.
Source code in src/chapkit/config/repository.py
find_by_root_artifact_id(artifact_id)
async
¶
Find the config linked to a root artifact.
Source code in src/chapkit/config/repository.py
find_artifacts_for_config(config_id)
async
¶
Find all root artifacts linked to a config.
Source code in src/chapkit/config/repository.py
Manager¶
manager
¶
Config manager for CRUD operations and artifact linking.
Classes¶
ConfigManager
¶
Bases: BaseManager[Config, ConfigIn[DataT], ConfigOut[DataT], ULID]
Manager for Config entities with artifact linking operations.
Source code in src/chapkit/config/manager.py
Functions¶
__init__(repo, data_cls)
¶
Initialize config manager with repository and data class.
Source code in src/chapkit/config/manager.py
find_by_name(name)
async
¶
Find a config by its unique name.
link_artifact(config_id, artifact_id)
async
¶
unlink_artifact(artifact_id)
async
¶
get_config_for_artifact(artifact_id, artifact_repo)
async
¶
Get the config for an artifact by traversing to its root.
Source code in src/chapkit/config/manager.py
get_linked_artifacts(config_id)
async
¶
Get all root artifacts linked to a config.
Source code in src/chapkit/config/manager.py
Router¶
router
¶
Config CRUD router with artifact linking operations.
Classes¶
ConfigRouter
¶
Bases: CrudRouter[ConfigIn[BaseConfig], ConfigOut[BaseConfig]]
CRUD router for Config entities with artifact linking operations.
Source code in src/chapkit/config/router.py
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
|
Functions¶
__init__(prefix, tags, manager_factory, entity_in_type, entity_out_type, permissions=None, enable_artifact_operations=False, **kwargs)
¶
Initialize config router with entity types and manager factory.
Source code in src/chapkit/config/router.py
ML Module¶
Train/predict workflows with artifact-based model storage and timing metadata.
Schemas¶
schemas
¶
Pydantic schemas for ML train/predict operations.
Classes¶
TrainRequest
¶
Bases: BaseModel
Request schema for training a model.
Source code in src/chapkit/ml/schemas.py
TrainResponse
¶
Bases: BaseModel
Response schema for train operation submission.
Source code in src/chapkit/ml/schemas.py
PredictRequest
¶
Bases: BaseModel
Request schema for making predictions.
Source code in src/chapkit/ml/schemas.py
PredictResponse
¶
Bases: BaseModel
Response schema for predict operation submission.
Source code in src/chapkit/ml/schemas.py
TrainedModelArtifactData
¶
Bases: BaseModel
Schema for trained model artifact data stored in the artifact system.
Source code in src/chapkit/ml/schemas.py
PredictionArtifactData
¶
Bases: BaseModel
Schema for prediction artifact data stored in the artifact system.
Source code in src/chapkit/ml/schemas.py
ModelRunnerProtocol
¶
Bases: Protocol
Protocol defining the interface for model runners.
Source code in src/chapkit/ml/schemas.py
Functions¶
on_train(config, data, geo=None)
async
¶
Train a model and return the trained model object (must be pickleable).
on_predict(config, model, historic, future, geo=None)
async
¶
Make predictions using a trained model and return predictions as DataFrame.
Source code in src/chapkit/ml/schemas.py
Manager¶
manager
¶
Manager for ML train/predict operations with artifact-based storage.
Classes¶
MLManager
¶
Manager for ML train/predict operations with job scheduling and artifact storage.
Source code in src/chapkit/ml/manager.py
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 |
|
Functions¶
__init__(runner, scheduler, database, config_schema)
¶
Initialize ML manager with runner, scheduler, database, and config schema.
Source code in src/chapkit/ml/manager.py
execute_train(request)
async
¶
Submit a training job to the scheduler and return job/artifact IDs.
Source code in src/chapkit/ml/manager.py
execute_predict(request)
async
¶
Submit a prediction job to the scheduler and return job/artifact IDs.
Source code in src/chapkit/ml/manager.py
Router¶
router
¶
REST API router for ML train/predict operations.
Classes¶
MLRouter
¶
Bases: Router
Router with $train and $predict collection operations.
Source code in src/chapkit/ml/router.py
Model Runners¶
Protocol and implementations for ML model training and prediction.
BaseModelRunner¶
BaseModelRunner
¶
Bases: ABC
Abstract base class for model runners with lifecycle hooks.
Source code in src/chapkit/ml/runner.py
Functions¶
on_init()
async
¶
on_cleanup()
async
¶
on_train(config, data, geo=None)
abstractmethod
async
¶
Train a model and return the trained model object (must be pickleable).
on_predict(config, model, historic, future, geo=None)
abstractmethod
async
¶
Make predictions using a trained model and return predictions as DataFrame.
Source code in src/chapkit/ml/runner.py
FunctionalModelRunner¶
FunctionalModelRunner
¶
Bases: BaseModelRunner
, Generic[ConfigT]
Functional model runner wrapping train and predict functions.
Source code in src/chapkit/ml/runner.py
Functions¶
__init__(on_train, on_predict)
¶
Initialize functional runner with train and predict functions.
on_train(config, data, geo=None)
async
¶
Train a model and return the trained model object.
Source code in src/chapkit/ml/runner.py
on_predict(config, model, historic, future, geo=None)
async
¶
Make predictions using a trained model.
Source code in src/chapkit/ml/runner.py
ShellModelRunner¶
ShellModelRunner
¶
Bases: BaseModelRunner
Shell-based model runner that executes external scripts for train/predict operations.
Source code in src/chapkit/ml/runner.py
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 |
|
Functions¶
__init__(train_command, predict_command, model_format='pickle')
¶
Initialize shell runner with command templates for train/predict operations.
Source code in src/chapkit/ml/runner.py
on_train(config, data, geo=None)
async
¶
Train a model by executing external training script.
Source code in src/chapkit/ml/runner.py
on_predict(config, model, historic, future, geo=None)
async
¶
Make predictions by executing external prediction script.
Source code in src/chapkit/ml/runner.py
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 |
|
Scheduler¶
Chapkit job scheduler with artifact tracking for ML/task workflows.
scheduler
¶
Chapkit-specific job scheduler with artifact tracking.
Classes¶
ChapkitJobRecord
¶
Bases: JobRecord
Job record extended with artifact_id tracking for ML/task workflows.
Source code in src/chapkit/scheduler.py
ChapkitJobScheduler
¶
Bases: AIOJobScheduler
Chapkit job scheduler with automatic artifact tracking for jobs that return ULIDs.
Source code in src/chapkit/scheduler.py
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 |
|
Functions¶
add_job(target, /, *args, **kwargs)
async
¶
Add a job to the scheduler and return its ID.
Source code in src/chapkit/scheduler.py
get_record(job_id)
async
¶
Get complete job record with artifact_id if available.
Source code in src/chapkit/scheduler.py
list_records(*, status_filter=None, reverse=False)
async
¶
List all job records with optional status filtering.
Source code in src/chapkit/scheduler.py
API Layer¶
FastAPI-specific components built on servicekit.
Dependencies¶
FastAPI dependency injection functions.
dependencies
¶
Feature-specific FastAPI dependency injection for managers.
Classes¶
Functions¶
get_config_manager(session)
async
¶
Get a config manager instance for dependency injection.
Source code in src/chapkit/api/dependencies.py
get_artifact_manager(session)
async
¶
Get an artifact manager instance for dependency injection.
Source code in src/chapkit/api/dependencies.py
get_ml_manager()
async
¶
Get an ML manager instance for dependency injection.
Note: This is a placeholder. The actual dependency is built by ServiceBuilder with the runner in closure, then overridden via app.dependency_overrides.
Source code in src/chapkit/api/dependencies.py
Alembic Helpers¶
Reusable migration helpers for chapkit database tables.
alembic_helpers
¶
Reusable Alembic migration helpers for chapkit tables.
Functions¶
create_artifacts_table(op)
¶
Create artifacts table for hierarchical artifact storage.
Source code in src/chapkit/alembic_helpers.py
drop_artifacts_table(op)
¶
Drop artifacts table.
create_configs_table(op)
¶
Create configs table for configuration storage.
Source code in src/chapkit/alembic_helpers.py
drop_configs_table(op)
¶
create_config_artifacts_table(op)
¶
Create config_artifacts junction table linking configs to artifacts.
Source code in src/chapkit/alembic_helpers.py
drop_config_artifacts_table(op)
¶
create_tasks_table(op)
¶
Create tasks table for task execution infrastructure.