chapkit 2.1.0__tar.gz → 2.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {chapkit-2.1.0 → chapkit-2.1.1}/PKG-INFO +1 -1
- {chapkit-2.1.0 → chapkit-2.1.1}/pyproject.toml +1 -1
- {chapkit-2.1.0 → chapkit-2.1.1}/pyproject.toml.orig +1 -1
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/manifest.json +1 -1
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/test/command.py +1 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/data/generator.py +7 -4
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/ml/router.py +3 -1
- {chapkit-2.1.0 → chapkit-2.1.1}/README.md +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/__init__.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/alembic/__init__.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/alembic/env.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/alembic/script.py.mako +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/alembic/versions/20251010_0927_4d869b5fb06e_initial_schema.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/alembic/versions/__init__.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/alembic_helpers.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/__init__.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/dist-CjxGhzN4.js +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/index-BEhTq576.js +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/index-HY9NoZeE.css +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/javascript-CppQSorr.js +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/roboto-cyrillic-ext-wght-normal-BCp_3N7R.woff2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/roboto-cyrillic-wght-normal-fOt7epNf.woff2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/roboto-greek-ext-wght-normal-Bgw4czJT.woff2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/roboto-greek-wght-normal-DlT9XTxE.woff2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/roboto-latin-ext-wght-normal-DYIxWhlt.woff2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/roboto-latin-wght-normal-ccAYIvAh.woff2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/roboto-math-wght-normal-4a3xuzGk.woff2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/roboto-symbols-wght-normal-B7iHSfaG.woff2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/roboto-vietnamese-wght-normal-_f1XEJpo.woff2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/vitesse-dark-BZCL-v6S.js +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/vitesse-light-VbXTXTou.js +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/favicon.svg +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/icons.svg +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/index.html +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/dependencies.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/service_builder.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/artifact/__init__.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/artifact/manager.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/artifact/models.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/artifact/repository.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/artifact/router.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/artifact/schemas.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/__init__.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/__main__.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/artifact.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/cli.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/init.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/migrate.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/mlproject.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/requirements.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/run.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/.dockerignore +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/.gitignore +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/.python-version +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/Dockerfile.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/README.md.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/compose.yml.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/main.py.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/main_shell.py.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/migrate/CHAPKIT_migrate.md.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/migrate/Dockerfile_migrate.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/migrate/Makefile_migrate.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/migrate/README_migrate.md.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/migrate/dockerignore_migrate.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/migrate/gitignore_migrate.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/migrate/main_migrate.py.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/migrate/pyproject_migrate.toml.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/migrate/requirements_migrate.txt.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/publish-docker.yml.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/pyproject.toml.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/scripts/predict.R.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/scripts/predict_model.py.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/scripts/train.R.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/scripts/train_model.py.jinja2 +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/test/__init__.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/test/runner.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/test/utils.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/config/__init__.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/config/manager.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/config/models.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/config/repository.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/config/router.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/config/schemas.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/data/__init__.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/data/dataframe.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/data/geo.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/ml/__init__.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/ml/manager.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/ml/runner.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/ml/schemas.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/py.typed +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/scheduler.py +0 -0
- {chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/utils.py +0 -0
|
@@ -415,6 +415,7 @@ def test_command(
|
|
|
415
415
|
historic, future = generator.generate_prediction_data(
|
|
416
416
|
num_locations=5,
|
|
417
417
|
num_periods=future_periods,
|
|
418
|
+
historic_periods=max(1, num_predict_rows // 5),
|
|
418
419
|
required_covariates=runner.required_covariates,
|
|
419
420
|
additional_covariates=pred_acc,
|
|
420
421
|
extra_covariates=extra_covariates,
|
|
@@ -155,12 +155,15 @@ class TestDataGenerator:
|
|
|
155
155
|
additional_covariates: list[str] | None = None,
|
|
156
156
|
extra_covariates: int = 0,
|
|
157
157
|
period_type: Literal["monthly", "weekly"] = "monthly",
|
|
158
|
+
historic_periods: int | None = None,
|
|
158
159
|
) -> tuple[dict[str, Any], dict[str, Any]]:
|
|
159
|
-
"""Generate historic and future DataFrames for prediction."""
|
|
160
|
+
"""Generate historic and future DataFrames for prediction; historic_periods defaults to num_periods."""
|
|
161
|
+
if historic_periods is None:
|
|
162
|
+
historic_periods = num_periods
|
|
160
163
|
# Historic data: actual observations from earlier time periods
|
|
161
164
|
historic = self.generate_training_data(
|
|
162
165
|
num_locations=num_locations,
|
|
163
|
-
num_periods=
|
|
166
|
+
num_periods=historic_periods,
|
|
164
167
|
num_features=num_features,
|
|
165
168
|
required_covariates=required_covariates,
|
|
166
169
|
additional_covariates=additional_covariates,
|
|
@@ -170,7 +173,7 @@ class TestDataGenerator:
|
|
|
170
173
|
)
|
|
171
174
|
|
|
172
175
|
# Future data: continue immediately after the historic span (same origin year,
|
|
173
|
-
# offset by
|
|
176
|
+
# offset by historic_periods) so the future horizon is contiguous with history
|
|
174
177
|
# instead of jumping to a fixed year and leaving a calendar gap. Then null out
|
|
175
178
|
# disease_cases for prediction.
|
|
176
179
|
future = self.generate_training_data(
|
|
@@ -181,7 +184,7 @@ class TestDataGenerator:
|
|
|
181
184
|
additional_covariates=additional_covariates,
|
|
182
185
|
extra_covariates=extra_covariates,
|
|
183
186
|
start_year=2020,
|
|
184
|
-
start_period=
|
|
187
|
+
start_period=historic_periods,
|
|
185
188
|
period_type=period_type,
|
|
186
189
|
)
|
|
187
190
|
|
|
@@ -117,10 +117,12 @@ class MLRouter(Router):
|
|
|
117
117
|
|
|
118
118
|
if kind == "predict":
|
|
119
119
|
# The future frame's period count is the horizon the service will resolve
|
|
120
|
-
# at $predict, so keep it inside the bounds the service declares.
|
|
120
|
+
# at $predict, so keep it inside the bounds the service declares. The
|
|
121
|
+
# historic frame keeps the full requested length as model context.
|
|
121
122
|
historic, future = generator.generate_prediction_data(
|
|
122
123
|
num_locations=num_locations,
|
|
123
124
|
num_periods=_clamp_horizon(num_periods, sample_metadata),
|
|
125
|
+
historic_periods=max(1, num_periods),
|
|
124
126
|
num_features=num_features,
|
|
125
127
|
required_covariates=required_covariates,
|
|
126
128
|
period_type=resolved_period,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/vitesse-dark-BZCL-v6S.js
RENAMED
|
File without changes
|
{chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/api/apps/console/assets/vitesse-light-VbXTXTou.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/migrate/dockerignore_migrate.jinja2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/migrate/pyproject_migrate.toml.jinja2
RENAMED
|
File without changes
|
{chapkit-2.1.0 → chapkit-2.1.1}/src/chapkit/cli/templates/migrate/requirements_migrate.txt.jinja2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|