baseltest 0.7.0__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.
- baseltest-0.7.0/.github/workflows/ci.yml +27 -0
- baseltest-0.7.0/.github/workflows/release.yml +81 -0
- baseltest-0.7.0/.gitignore +70 -0
- baseltest-0.7.0/.import_linter_cache/.gitignore +2 -0
- baseltest-0.7.0/.import_linter_cache/300451ce89563663f2df89c392b36750da9c9358.data.json +1 -0
- baseltest-0.7.0/.import_linter_cache/CACHEDIR.TAG +3 -0
- baseltest-0.7.0/.import_linter_cache/baseltest.meta.json +1 -0
- baseltest-0.7.0/AGENTS.md +141 -0
- baseltest-0.7.0/CONTRIBUTING.md +60 -0
- baseltest-0.7.0/LICENSE +202 -0
- baseltest-0.7.0/NOTICE +11 -0
- baseltest-0.7.0/PKG-INFO +141 -0
- baseltest-0.7.0/README.md +102 -0
- baseltest-0.7.0/RELEASING.md +57 -0
- baseltest-0.7.0/dco.txt +37 -0
- baseltest-0.7.0/docs/GETTING-STARTED.md +401 -0
- baseltest-0.7.0/docs/USER-GUIDE.md +575 -0
- baseltest-0.7.0/examples/.gitignore +1 -0
- baseltest-0.7.0/examples/README.md +197 -0
- baseltest-0.7.0/examples/language-model/basket-builder.yaml +151 -0
- baseltest-0.7.0/examples/language-model/mavai-bindings.py +29 -0
- baseltest-0.7.0/examples/language-model/mavai-services.yaml +85 -0
- baseltest-0.7.0/examples/rule-driven-service/comparison.html +0 -0
- baseltest-0.7.0/examples/rule-driven-service/mavai-bindings.py +79 -0
- baseltest-0.7.0/examples/rule-driven-service/mavai-services.yaml +16 -0
- baseltest-0.7.0/examples/rule-driven-service/request-triage.yaml +24 -0
- baseltest-0.7.0/examples/rule-driven-service/triage-rules.txt +7 -0
- baseltest-0.7.0/examples/simulated-service/fortune-teller.yaml +21 -0
- baseltest-0.7.0/examples/simulated-service/mavai-bindings.py +28 -0
- baseltest-0.7.0/examples/speech-to-text/README.md +42 -0
- baseltest-0.7.0/examples/speech-to-text/audio/clip-01.m4a +0 -0
- baseltest-0.7.0/examples/speech-to-text/audio/clip-02.m4a +0 -0
- baseltest-0.7.0/examples/speech-to-text/audio/clip-03.m4a +0 -0
- baseltest-0.7.0/examples/speech-to-text/mavai-bindings.py +43 -0
- baseltest-0.7.0/examples/speech-to-text/transcription.yaml +42 -0
- baseltest-0.7.0/examples/vision/README.md +41 -0
- baseltest-0.7.0/examples/vision/dominant-colour.yaml +24 -0
- baseltest-0.7.0/examples/vision/images/swatch-red.png +0 -0
- baseltest-0.7.0/examples/vision/mavai-services.yaml +13 -0
- baseltest-0.7.0/pyproject.toml +131 -0
- baseltest-0.7.0/src/baseltest/__init__.py +35 -0
- baseltest-0.7.0/src/baseltest/_version.py +11 -0
- baseltest-0.7.0/src/baseltest/baseline/__init__.py +46 -0
- baseltest-0.7.0/src/baseltest/baseline/reader.py +247 -0
- baseltest-0.7.0/src/baseltest/baseline/record.py +152 -0
- baseltest-0.7.0/src/baseltest/baseline/writer.py +132 -0
- baseltest-0.7.0/src/baseltest/contract/__init__.py +84 -0
- baseltest-0.7.0/src/baseltest/contract/errors.py +21 -0
- baseltest-0.7.0/src/baseltest/contract/evaluation.py +236 -0
- baseltest-0.7.0/src/baseltest/contract/model.py +363 -0
- baseltest-0.7.0/src/baseltest/contract/postconditions.py +159 -0
- baseltest-0.7.0/src/baseltest/declarative/__init__.py +66 -0
- baseltest-0.7.0/src/baseltest/declarative/_cli.py +431 -0
- baseltest-0.7.0/src/baseltest/declarative/_disclosure.py +56 -0
- baseltest-0.7.0/src/baseltest/declarative/_errors.py +13 -0
- baseltest-0.7.0/src/baseltest/declarative/_instantiate/__init__.py +34 -0
- baseltest-0.7.0/src/baseltest/declarative/_instantiate/_baseline.py +183 -0
- baseltest-0.7.0/src/baseltest/declarative/_instantiate/_compose.py +158 -0
- baseltest-0.7.0/src/baseltest/declarative/_instantiate/_explore.py +135 -0
- baseltest-0.7.0/src/baseltest/declarative/_instantiate/_latency.py +108 -0
- baseltest-0.7.0/src/baseltest/declarative/_instantiate/_optimize_point.py +122 -0
- baseltest-0.7.0/src/baseltest/declarative/_instantiate/_postconditions.py +151 -0
- baseltest-0.7.0/src/baseltest/declarative/_instantiate/_service.py +129 -0
- baseltest-0.7.0/src/baseltest/declarative/_instantiate/_sizing_policy.py +90 -0
- baseltest-0.7.0/src/baseltest/declarative/_instantiate/_views.py +79 -0
- baseltest-0.7.0/src/baseltest/declarative/_materialise.py +122 -0
- baseltest-0.7.0/src/baseltest/declarative/_optimize.py +319 -0
- baseltest-0.7.0/src/baseltest/declarative/_parser/__init__.py +40 -0
- baseltest-0.7.0/src/baseltest/declarative/_parser/_contract.py +84 -0
- baseltest-0.7.0/src/baseltest/declarative/_parser/_criteria.py +100 -0
- baseltest-0.7.0/src/baseltest/declarative/_parser/_forms.py +59 -0
- baseltest-0.7.0/src/baseltest/declarative/_parser/_inputs.py +162 -0
- baseltest-0.7.0/src/baseltest/declarative/_parser/_latency.py +108 -0
- baseltest-0.7.0/src/baseltest/declarative/_parser/_model.py +93 -0
- baseltest-0.7.0/src/baseltest/declarative/_parser/_shape.py +47 -0
- baseltest-0.7.0/src/baseltest/declarative/_parser/_structure.py +88 -0
- baseltest-0.7.0/src/baseltest/declarative/_providers/__init__.py +247 -0
- baseltest-0.7.0/src/baseltest/declarative/_providers/_anthropic.py +134 -0
- baseltest-0.7.0/src/baseltest/declarative/_providers/_apertus.py +34 -0
- baseltest-0.7.0/src/baseltest/declarative/_providers/_litellm.py +94 -0
- baseltest-0.7.0/src/baseltest/declarative/_providers/_media.py +93 -0
- baseltest-0.7.0/src/baseltest/declarative/_providers/_mistral.py +28 -0
- baseltest-0.7.0/src/baseltest/declarative/_providers/_ollama.py +72 -0
- baseltest-0.7.0/src/baseltest/declarative/_providers/_openai.py +45 -0
- baseltest-0.7.0/src/baseltest/declarative/_providers/_protocol.py +223 -0
- baseltest-0.7.0/src/baseltest/declarative/_registrations.py +62 -0
- baseltest-0.7.0/src/baseltest/declarative/_registry/__init__.py +31 -0
- baseltest-0.7.0/src/baseltest/declarative/_registry/_bindings.py +104 -0
- baseltest-0.7.0/src/baseltest/declarative/_registry/_core.py +353 -0
- baseltest-0.7.0/src/baseltest/declarative/_registry/_guards.py +56 -0
- baseltest-0.7.0/src/baseltest/declarative/_registry/_service_types.py +163 -0
- baseltest-0.7.0/src/baseltest/declarative/_registry/_transform.py +82 -0
- baseltest-0.7.0/src/baseltest/declarative/_runner/__init__.py +43 -0
- baseltest-0.7.0/src/baseltest/declarative/_runner/_check.py +90 -0
- baseltest-0.7.0/src/baseltest/declarative/_runner/_explore.py +171 -0
- baseltest-0.7.0/src/baseltest/declarative/_runner/_load.py +45 -0
- baseltest-0.7.0/src/baseltest/declarative/_runner/_optimize.py +120 -0
- baseltest-0.7.0/src/baseltest/declarative/_runner/_optimize_loop.py +297 -0
- baseltest-0.7.0/src/baseltest/declarative/_runner/_report.py +57 -0
- baseltest-0.7.0/src/baseltest/declarative/_runner/_run.py +207 -0
- baseltest-0.7.0/src/baseltest/declarative/_runner/_shared.py +56 -0
- baseltest-0.7.0/src/baseltest/declarative/_schema_walk.py +355 -0
- baseltest-0.7.0/src/baseltest/declarative/_services/__init__.py +47 -0
- baseltest-0.7.0/src/baseltest/declarative/_services/_language_model.py +315 -0
- baseltest-0.7.0/src/baseltest/declarative/_services/_model.py +78 -0
- baseltest-0.7.0/src/baseltest/declarative/_services/_parse.py +180 -0
- baseltest-0.7.0/src/baseltest/declarative/_signatures.py +42 -0
- baseltest-0.7.0/src/baseltest/declarative/_sizing/__init__.py +34 -0
- baseltest-0.7.0/src/baseltest/declarative/_sizing/_criteria.py +115 -0
- baseltest-0.7.0/src/baseltest/declarative/_sizing/_flags.py +79 -0
- baseltest-0.7.0/src/baseltest/declarative/_sizing/_model.py +62 -0
- baseltest-0.7.0/src/baseltest/declarative/_sizing/_modes.py +195 -0
- baseltest-0.7.0/src/baseltest/declarative/_sizing/_pricing.py +66 -0
- baseltest-0.7.0/src/baseltest/declarative/_sizing/_prompts.py +92 -0
- baseltest-0.7.0/src/baseltest/declarative/_sizing/_rates.py +43 -0
- baseltest-0.7.0/src/baseltest/declarative/_sizing/_render.py +108 -0
- baseltest-0.7.0/src/baseltest/declarative/_sizing/_resolve.py +161 -0
- baseltest-0.7.0/src/baseltest/declarative/_steppers/__init__.py +74 -0
- baseltest-0.7.0/src/baseltest/declarative/_steppers/_builtins.py +34 -0
- baseltest-0.7.0/src/baseltest/declarative/_steppers/_context.py +114 -0
- baseltest-0.7.0/src/baseltest/declarative/_steppers/_contract.py +148 -0
- baseltest-0.7.0/src/baseltest/declarative/_steppers/_linear_sweep.py +43 -0
- baseltest-0.7.0/src/baseltest/declarative/_steppers/_numeric.py +30 -0
- baseltest-0.7.0/src/baseltest/declarative/_steppers/_prompt_engineer.py +112 -0
- baseltest-0.7.0/src/baseltest/declarative/_steppers/_refining_grid.py +240 -0
- baseltest-0.7.0/src/baseltest/declarative/_structured.py +219 -0
- baseltest-0.7.0/src/baseltest/declarative/_types.py +84 -0
- baseltest-0.7.0/src/baseltest/engine/__init__.py +65 -0
- baseltest-0.7.0/src/baseltest/engine/artefact.py +68 -0
- baseltest-0.7.0/src/baseltest/engine/defect.py +68 -0
- baseltest-0.7.0/src/baseltest/engine/latency.py +225 -0
- baseltest-0.7.0/src/baseltest/engine/naming.py +62 -0
- baseltest-0.7.0/src/baseltest/engine/run/__init__.py +36 -0
- baseltest-0.7.0/src/baseltest/engine/run/attainment.py +48 -0
- baseltest-0.7.0/src/baseltest/engine/run/execute.py +138 -0
- baseltest-0.7.0/src/baseltest/engine/run/feasibility.py +77 -0
- baseltest-0.7.0/src/baseltest/engine/run/identity.py +44 -0
- baseltest-0.7.0/src/baseltest/engine/run/judge.py +29 -0
- baseltest-0.7.0/src/baseltest/engine/run/model.py +165 -0
- baseltest-0.7.0/src/baseltest/engine/run/sample.py +171 -0
- baseltest-0.7.0/src/baseltest/exploration/__init__.py +21 -0
- baseltest-0.7.0/src/baseltest/exploration/writer.py +167 -0
- baseltest-0.7.0/src/baseltest/observation/__init__.py +19 -0
- baseltest-0.7.0/src/baseltest/observation/emit.py +80 -0
- baseltest-0.7.0/src/baseltest/observation/record.py +189 -0
- baseltest-0.7.0/src/baseltest/optimization/__init__.py +29 -0
- baseltest-0.7.0/src/baseltest/optimization/record.py +114 -0
- baseltest-0.7.0/src/baseltest/optimization/writer.py +96 -0
- baseltest-0.7.0/src/baseltest/py.typed +0 -0
- baseltest-0.7.0/src/baseltest/reporting/__init__.py +51 -0
- baseltest-0.7.0/src/baseltest/reporting/console.py +352 -0
- baseltest-0.7.0/src/baseltest/reporting/report_html.py +233 -0
- baseltest-0.7.0/src/baseltest/reporting/run_design.py +86 -0
- baseltest-0.7.0/src/baseltest/reporting/test_report.py +277 -0
- baseltest-0.7.0/src/baseltest/reporting/verdict_reader.py +253 -0
- baseltest-0.7.0/src/baseltest/reporting/verdict_xml.py +204 -0
- baseltest-0.7.0/src/baseltest/statistics/__init__.py +94 -0
- baseltest-0.7.0/src/baseltest/statistics/_constants.py +19 -0
- baseltest-0.7.0/src/baseltest/statistics/_validation.py +32 -0
- baseltest-0.7.0/src/baseltest/statistics/feasibility.py +93 -0
- baseltest-0.7.0/src/baseltest/statistics/latency.py +166 -0
- baseltest-0.7.0/src/baseltest/statistics/power.py +111 -0
- baseltest-0.7.0/src/baseltest/statistics/proportion.py +33 -0
- baseltest-0.7.0/src/baseltest/statistics/sizing.py +210 -0
- baseltest-0.7.0/src/baseltest/statistics/summary.py +74 -0
- baseltest-0.7.0/src/baseltest/statistics/threshold.py +269 -0
- baseltest-0.7.0/src/baseltest/statistics/verdict.py +168 -0
- baseltest-0.7.0/src/baseltest/statistics/wilson.py +168 -0
- baseltest-0.7.0/tests/baseline/__init__.py +0 -0
- baseltest-0.7.0/tests/baseline/test_reader.py +161 -0
- baseltest-0.7.0/tests/baseline/test_writer.py +144 -0
- baseltest-0.7.0/tests/conformance/interchange/mavai-explore-1.schema.json +176 -0
- baseltest-0.7.0/tests/conformance/interchange/mavai-optimize-1.schema.json +196 -0
- baseltest-0.7.0/tests/conftest.py +1 -0
- baseltest-0.7.0/tests/contract/__init__.py +0 -0
- baseltest-0.7.0/tests/contract/test_evaluation.py +317 -0
- baseltest-0.7.0/tests/contract/test_latency_model.py +55 -0
- baseltest-0.7.0/tests/contract/test_service_protocol.py +35 -0
- baseltest-0.7.0/tests/declarative/__init__.py +0 -0
- baseltest-0.7.0/tests/declarative/test_capabilities.py +146 -0
- baseltest-0.7.0/tests/declarative/test_check_verb.py +158 -0
- baseltest-0.7.0/tests/declarative/test_cli.py +222 -0
- baseltest-0.7.0/tests/declarative/test_covariates.py +189 -0
- baseltest-0.7.0/tests/declarative/test_defect_isolation.py +310 -0
- baseltest-0.7.0/tests/declarative/test_explore.py +520 -0
- baseltest-0.7.0/tests/declarative/test_file_inputs.py +304 -0
- baseltest-0.7.0/tests/declarative/test_inputs.py +143 -0
- baseltest-0.7.0/tests/declarative/test_int_string_guard.py +43 -0
- baseltest-0.7.0/tests/declarative/test_latency.py +178 -0
- baseltest-0.7.0/tests/declarative/test_max_tokens.py +104 -0
- baseltest-0.7.0/tests/declarative/test_multimodal.py +180 -0
- baseltest-0.7.0/tests/declarative/test_optimize.py +1068 -0
- baseltest-0.7.0/tests/declarative/test_provider_failures.py +156 -0
- baseltest-0.7.0/tests/declarative/test_providers.py +265 -0
- baseltest-0.7.0/tests/declarative/test_reader.py +831 -0
- baseltest-0.7.0/tests/declarative/test_registrations.py +57 -0
- baseltest-0.7.0/tests/declarative/test_registry_isolation.py +53 -0
- baseltest-0.7.0/tests/declarative/test_report_verb.py +103 -0
- baseltest-0.7.0/tests/declarative/test_schema_walk.py +426 -0
- baseltest-0.7.0/tests/declarative/test_services.py +238 -0
- baseltest-0.7.0/tests/declarative/test_sizing.py +469 -0
- baseltest-0.7.0/tests/declarative/test_user_types.py +225 -0
- baseltest-0.7.0/tests/engine/__init__.py +0 -0
- baseltest-0.7.0/tests/engine/test_artefact.py +77 -0
- baseltest-0.7.0/tests/engine/test_latency.py +134 -0
- baseltest-0.7.0/tests/engine/test_run.py +256 -0
- baseltest-0.7.0/tests/engine/test_service_failure.py +94 -0
- baseltest-0.7.0/tests/engine/test_status_vocabulary.py +33 -0
- baseltest-0.7.0/tests/exploration/__init__.py +0 -0
- baseltest-0.7.0/tests/exploration/test_interchange_conformance.py +225 -0
- baseltest-0.7.0/tests/exploration/test_writer.py +294 -0
- baseltest-0.7.0/tests/optimization/__init__.py +0 -0
- baseltest-0.7.0/tests/optimization/test_interchange_conformance.py +159 -0
- baseltest-0.7.0/tests/optimization/test_writer.py +114 -0
- baseltest-0.7.0/tests/reporting/__init__.py +0 -0
- baseltest-0.7.0/tests/reporting/test_console.py +134 -0
- baseltest-0.7.0/tests/reporting/test_reports.py +153 -0
- baseltest-0.7.0/tests/reporting/test_verdict_xml.py +247 -0
- baseltest-0.7.0/tests/statistics/conformance.py +142 -0
- baseltest-0.7.0/tests/statistics/fixtures/NOTE.md +55 -0
- baseltest-0.7.0/tests/statistics/fixtures/SCOPE.json +10 -0
- baseltest-0.7.0/tests/statistics/fixtures/feasibility.json +99 -0
- baseltest-0.7.0/tests/statistics/fixtures/latency_percentile.json +228 -0
- baseltest-0.7.0/tests/statistics/fixtures/latency_percentile_minimums.json +136 -0
- baseltest-0.7.0/tests/statistics/fixtures/latency_threshold.json +92 -0
- baseltest-0.7.0/tests/statistics/fixtures/latency_threshold_bootstrap.json +84 -0
- baseltest-0.7.0/tests/statistics/fixtures/manifest.json +160 -0
- baseltest-0.7.0/tests/statistics/fixtures/power_analysis.json +86 -0
- baseltest-0.7.0/tests/statistics/fixtures/regression_decision.json +230 -0
- baseltest-0.7.0/tests/statistics/fixtures/risk_driven_sizing.json +193 -0
- baseltest-0.7.0/tests/statistics/fixtures/threshold_derivation.json +178 -0
- baseltest-0.7.0/tests/statistics/fixtures/verdict.json +104 -0
- baseltest-0.7.0/tests/statistics/fixtures/wilson_ci.json +138 -0
- baseltest-0.7.0/tests/statistics/fixtures/wilson_lower.json +140 -0
- baseltest-0.7.0/tests/statistics/test_conformance.py +610 -0
- baseltest-0.7.0/tests/statistics/test_feasibility.py +57 -0
- baseltest-0.7.0/tests/statistics/test_isolation.py +65 -0
- baseltest-0.7.0/tests/statistics/test_power.py +80 -0
- baseltest-0.7.0/tests/statistics/test_proportion.py +29 -0
- baseltest-0.7.0/tests/statistics/test_sizing.py +94 -0
- baseltest-0.7.0/tests/statistics/test_summary.py +76 -0
- baseltest-0.7.0/tests/statistics/test_threshold.py +110 -0
- baseltest-0.7.0/tests/statistics/test_verdict.py +87 -0
- baseltest-0.7.0/tests/statistics/test_wilson.py +95 -0
- baseltest-0.7.0/tests/test_closed_set_vocabulary.py +70 -0
- baseltest-0.7.0/tests/test_domain_constants.py +56 -0
- baseltest-0.7.0/tests/test_error_hierarchy.py +50 -0
- baseltest-0.7.0/tests/test_frozen_collections_readonly.py +71 -0
- baseltest-0.7.0/tests/test_public_api.py +26 -0
- baseltest-0.7.0/tests/test_requirement_code_isolation.py +37 -0
- baseltest-0.7.0/tests/test_version.py +13 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
conformance:
|
|
10
|
+
name: Oracle conformance
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v4
|
|
14
|
+
- uses: actions/setup-python@v5
|
|
15
|
+
with:
|
|
16
|
+
python-version: "3.12"
|
|
17
|
+
- name: Install package
|
|
18
|
+
run: pip install -e ".[dev]"
|
|
19
|
+
- name: Run conformance suite against the pinned mavai-R fixtures
|
|
20
|
+
run: pytest tests/statistics/test_conformance.py --no-cov
|
|
21
|
+
- name: Upload conformance report
|
|
22
|
+
if: always()
|
|
23
|
+
uses: actions/upload-artifact@v4
|
|
24
|
+
with:
|
|
25
|
+
name: conformance-report
|
|
26
|
+
path: build/conformance-report.json
|
|
27
|
+
if-no-files-found: ignore
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
# Publishes a tagged release to PyPI using Trusted Publishing (OIDC) — no
|
|
4
|
+
# API token is stored in the repository. Fires on a version tag (`vX.Y.Z`),
|
|
5
|
+
# runs the test suite, verifies the tag matches the packaged version, builds
|
|
6
|
+
# the sdist and wheel, and publishes them.
|
|
7
|
+
#
|
|
8
|
+
# One-time PyPI setup required before this can succeed (see the repository's
|
|
9
|
+
# release notes / RELEASING doc): register `mavai-org/baseltest` as a trusted
|
|
10
|
+
# publisher for the `baseltest` project on PyPI, with workflow `release.yml`
|
|
11
|
+
# and environment `pypi`.
|
|
12
|
+
|
|
13
|
+
on:
|
|
14
|
+
push:
|
|
15
|
+
tags:
|
|
16
|
+
- "v*"
|
|
17
|
+
|
|
18
|
+
permissions:
|
|
19
|
+
contents: read
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
test:
|
|
23
|
+
name: Test before release
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v4
|
|
27
|
+
- uses: actions/setup-python@v5
|
|
28
|
+
with:
|
|
29
|
+
python-version: "3.12"
|
|
30
|
+
- name: Install package
|
|
31
|
+
run: pip install -e ".[dev]"
|
|
32
|
+
- name: Run the test suite
|
|
33
|
+
run: pytest --no-cov
|
|
34
|
+
|
|
35
|
+
build:
|
|
36
|
+
name: Build distributions
|
|
37
|
+
needs: test
|
|
38
|
+
runs-on: ubuntu-latest
|
|
39
|
+
steps:
|
|
40
|
+
- uses: actions/checkout@v4
|
|
41
|
+
- uses: actions/setup-python@v5
|
|
42
|
+
with:
|
|
43
|
+
python-version: "3.12"
|
|
44
|
+
- name: Verify the tag matches the packaged version
|
|
45
|
+
run: |
|
|
46
|
+
tag="${GITHUB_REF_NAME#v}"
|
|
47
|
+
pkg="$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])")"
|
|
48
|
+
if [ "$tag" != "$pkg" ]; then
|
|
49
|
+
echo "::error::tag ${GITHUB_REF_NAME} does not match pyproject version ${pkg}" >&2
|
|
50
|
+
exit 1
|
|
51
|
+
fi
|
|
52
|
+
echo "tag ${GITHUB_REF_NAME} matches packaged version ${pkg}"
|
|
53
|
+
- name: Build sdist and wheel
|
|
54
|
+
run: pipx run build
|
|
55
|
+
- name: Check distribution metadata
|
|
56
|
+
run: pipx run twine check dist/*
|
|
57
|
+
- name: Upload distributions
|
|
58
|
+
uses: actions/upload-artifact@v4
|
|
59
|
+
with:
|
|
60
|
+
name: dist
|
|
61
|
+
path: dist/
|
|
62
|
+
|
|
63
|
+
publish:
|
|
64
|
+
name: Publish to PyPI
|
|
65
|
+
needs: build
|
|
66
|
+
runs-on: ubuntu-latest
|
|
67
|
+
# Trusted Publishing authenticates via this OIDC token; the `pypi`
|
|
68
|
+
# environment name must match the trusted-publisher config on PyPI.
|
|
69
|
+
environment:
|
|
70
|
+
name: pypi
|
|
71
|
+
url: https://pypi.org/p/baseltest
|
|
72
|
+
permissions:
|
|
73
|
+
id-token: write
|
|
74
|
+
steps:
|
|
75
|
+
- name: Download the built distributions
|
|
76
|
+
uses: actions/download-artifact@v4
|
|
77
|
+
with:
|
|
78
|
+
name: dist
|
|
79
|
+
path: dist/
|
|
80
|
+
- name: Publish to PyPI
|
|
81
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
### Python ###
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
.Python
|
|
7
|
+
build/
|
|
8
|
+
develop-eggs/
|
|
9
|
+
dist/
|
|
10
|
+
downloads/
|
|
11
|
+
eggs/
|
|
12
|
+
.eggs/
|
|
13
|
+
lib/
|
|
14
|
+
lib64/
|
|
15
|
+
parts/
|
|
16
|
+
sdist/
|
|
17
|
+
var/
|
|
18
|
+
wheels/
|
|
19
|
+
*.egg-info/
|
|
20
|
+
.installed.cfg
|
|
21
|
+
*.egg
|
|
22
|
+
MANIFEST
|
|
23
|
+
|
|
24
|
+
### Virtual environments ###
|
|
25
|
+
venv/
|
|
26
|
+
.venv/
|
|
27
|
+
env/
|
|
28
|
+
ENV/
|
|
29
|
+
|
|
30
|
+
### Testing / coverage ###
|
|
31
|
+
.pytest_cache/
|
|
32
|
+
.coverage
|
|
33
|
+
.coverage.*
|
|
34
|
+
htmlcov/
|
|
35
|
+
coverage.xml
|
|
36
|
+
*.cover
|
|
37
|
+
.hypothesis/
|
|
38
|
+
|
|
39
|
+
### Type checking / linting ###
|
|
40
|
+
.mypy_cache/
|
|
41
|
+
.dmypy.json
|
|
42
|
+
dmypy.json
|
|
43
|
+
.ruff_cache/
|
|
44
|
+
|
|
45
|
+
### Packaging / build backends ###
|
|
46
|
+
.tox/
|
|
47
|
+
.nox/
|
|
48
|
+
|
|
49
|
+
### IntelliJ / PyCharm ###
|
|
50
|
+
.idea/
|
|
51
|
+
*.iml
|
|
52
|
+
*.ipr
|
|
53
|
+
*.iws
|
|
54
|
+
|
|
55
|
+
### VS Code ###
|
|
56
|
+
.vscode/
|
|
57
|
+
|
|
58
|
+
### Claude Code ###
|
|
59
|
+
.claude/settings.local.json
|
|
60
|
+
CLAUDE.md
|
|
61
|
+
MAXIMS.md
|
|
62
|
+
|
|
63
|
+
### Mac OS ###
|
|
64
|
+
.DS_Store
|
|
65
|
+
|
|
66
|
+
### Orchestrator-managed ###
|
|
67
|
+
# Requirements / design / planning material for baseltest lives in
|
|
68
|
+
# mavai-orchestrator, not in this repository.
|
|
69
|
+
/plan/
|
|
70
|
+
_baseltest/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"baseltest.declarative._sizing._criteria":[["baseltest.baseline",12,"from baseltest.baseline import BaselineResolution, StoredBaseline, resolve_baseline"],["baseltest.declarative._registry",22,"from .._registry import Registry"],["baseltest.engine",13,"from baseltest.engine import inputs_fingerprint"],["baseltest.statistics",14,"from baseltest.statistics import check_feasibility"],["baseltest.declarative._sizing._rates",19,"from ._rates import _effective_rate"],["baseltest.declarative._parser",16,"from .._parser import FORMAT_IDENTIFIER, ContractDeclaration, CriterionDeclaration"],["baseltest.declarative._sizing._model",18,"from ._model import _EmpiricalCriterion"],["baseltest.declarative._services",17,"from .._services import ServiceDefinition"]],"baseltest.statistics.proportion":[],"baseltest.declarative._sizing._modes":[["baseltest.declarative._sizing._render",25,"from ._render import _explanation, _json_payload, _sizing_table"],["baseltest.declarative._sizing._pricing",22,"from ._pricing import _governing_samples, _over_reach_message, _priced_claim"],["baseltest.declarative._sizing._model",14,"from ._model import ("],["baseltest.declarative._parser",12,"from .._parser import ContractDeclaration"],["baseltest.declarative._sizing._rates",24,"from ._rates import _percent"],["baseltest.statistics",10,"from baseltest.statistics import detectable_rate"],["baseltest.declarative._sizing._criteria",13,"from ._criteria import _normative_minimum"],["baseltest.declarative._sizing._prompts",23,"from ._prompts import _Interaction"]],"baseltest.reporting.verdict_reader":[["baseltest.reporting.verdict_xml",14,"from .verdict_xml import _NAMESPACE"],["baseltest.reporting.run_design",13,"from .run_design import BaselineDisclosure, ClaimDisclosure, RunDesign"]],"baseltest.observation.record":[["baseltest.engine.naming",17,"from baseltest.engine.naming import bounded_excerpt, bounded_key, per_input_index"],["baseltest.engine",16,"from baseltest.engine import LatencyBlock, RunResult, SampleRecord, latency_block"]],"baseltest.statistics":[["baseltest.statistics.proportion",31,"from .proportion import proportion_standard_error, proportion_variance"],["baseltest.statistics.power",30,"from .power import achieved_power, required_sample_size"],["baseltest.statistics.feasibility",21,"from .feasibility import FeasibilityCheck, check_feasibility"],["baseltest.statistics.verdict",43,"from .verdict import ("],["baseltest.statistics.threshold",34,"from .threshold import ("],["baseltest.statistics._constants",20,"from ._constants import DEFAULT_CONFIDENCE_LEVEL, DEFAULT_POWER"],["baseltest.statistics.wilson",50,"from .wilson import ("],["baseltest.statistics.sizing",32,"from .sizing import detectable_rate, power_at, required_samples_for_power"],["baseltest.statistics.summary",33,"from .summary import MultiRunSummary, RunOutcome, summarize_runs"],["baseltest.statistics.latency",22,"from .latency import ("]],"baseltest.declarative._runner._report":[["baseltest.declarative._disclosure",12,"from .._disclosure import sizing_disclosure"],["baseltest.declarative._errors",13,"from .._errors import ContractConfigurationError"],["baseltest.declarative._runner._shared",14,"from ._shared import DEFAULT_REPORTS_DIR, DEFAULT_VERDICT_DIR, MAVAI_EXPLORE_POINTER"],["baseltest.reporting",10,"from baseltest.reporting import read_verdict_directory, render_test_report"]],"baseltest.declarative._sizing._model":[["baseltest.contract",11,"from baseltest.contract import BaseltestError"]],"baseltest.declarative._cli":[["baseltest.declarative._providers",17,"from ._providers import ProviderResponseError"],["baseltest.engine",7,"from baseltest.engine import ("],["baseltest.declarative._errors",16,"from ._errors import ContractConfigurationError"],["baseltest.declarative._sizing",32,"from ._sizing import ResolvedSizing, SizingRefusalError, resolve_test_sizing"],["baseltest.reporting",14,"from baseltest.reporting import render_infeasible"],["baseltest.declarative._runner",18,"from ._runner import ("]],"baseltest.declarative._parser._latency":[["baseltest.contract",10,"from baseltest.contract import PERCENTILE_LEVELS"],["baseltest.declarative._parser._shape",13,"from ._shape import _fail, _require_mapping"],["baseltest.declarative._parser._model",12,"from ._model import LatencyDeclaration"]],"baseltest.declarative._instantiate._latency":[["baseltest.baseline",9,"from baseltest.baseline import BaselineResolution"],["baseltest.engine",16,"from baseltest.engine import minimum_contributing_samples"],["baseltest.statistics",17,"from baseltest.statistics import bound_existence_minimum, derive_latency_threshold"],["baseltest.contract",10,"from baseltest.contract import ("],["baseltest.declarative._errors",19,"from .._errors import ContractConfigurationError"],["baseltest.declarative._parser",20,"from .._parser import ContractDeclaration"]],"baseltest.declarative._runner._optimize":[["baseltest.declarative._errors",12,"from .._errors import ContractConfigurationError"],["baseltest.declarative._runner._shared",20,"from ._shared import DEFAULT_OPTIMIZATIONS_DIR"],["baseltest.declarative._instantiate",13,"from .._instantiate import optimize_definition"],["baseltest.declarative._runner._optimize_loop",19,"from ._optimize_loop import OptimizationOutcome, _drive_optimization"],["baseltest.declarative._services",18,"from .._services import ServiceDefinition, discover_services"],["baseltest.reporting",10,"from baseltest.reporting import render_run_plan"],["baseltest.declarative._parser",15,"from .._parser import load_contract"],["baseltest.declarative._optimize",14,"from .._optimize import OptimizationDeclaration"],["baseltest.declarative._registrations",16,"from .._registrations import discover_registrations"],["baseltest.declarative._registry",17,"from .._registry import Bindings"]],"baseltest.statistics.wilson":[["baseltest.statistics._constants",33,"from ._constants import DEFAULT_CONFIDENCE_LEVEL"],["baseltest.statistics._validation",34,"from ._validation import validate_confidence_level, validate_counts"]],"baseltest.declarative._sizing._prompts":[["baseltest.declarative._parser",11,"from .._parser import ContractDeclaration"],["baseltest.declarative._sizing._rates",13,"from ._rates import _parse_rate, _percent"],["baseltest.declarative._sizing._model",12,"from ._model import SizingRefusalError, _EmpiricalCriterion"]],"baseltest.declarative._steppers._contract":[["baseltest.declarative._signatures",17,"from .._signatures import ("],["baseltest.declarative._steppers._context",24,"from ._context import IterationSummary, OptimizeContext"],["baseltest.declarative._errors",16,"from .._errors import ContractConfigurationError"]],"baseltest.baseline":[["baseltest.baseline.reader",16,"from .reader import ("],["baseltest.baseline.record",24,"from .record import ("],["baseltest.baseline.writer",30,"from .writer import baseline_filename, render_baseline, write_baseline"]],"baseltest.declarative._steppers._prompt_engineer":[["baseltest.declarative._steppers._context",13,"from ._context import FailureDetail, IterationResult, OptimizeContext"],["baseltest.declarative._errors",12,"from .._errors import ContractConfigurationError"],["baseltest.declarative._steppers._contract",14,"from ._contract import StepFunction, StepProposal"],["baseltest.declarative._providers",56,"from .._providers import build_invoker, resolve_provider"],["baseltest.declarative._services",57,"from .._services import LanguageModelParameters"]],"baseltest.engine.artefact":[["baseltest.engine.latency",20,"from .latency import LatencyBlock"],["baseltest.engine.naming",21,"from .naming import bounded_key"]],"baseltest.declarative":[["baseltest.declarative._runner",44,"from ._runner import explore, optimize, run"],["baseltest.declarative._runner",43,"from ._runner import check as check_contract"],["baseltest.declarative._steppers",45,"from ._steppers import ("],["baseltest.declarative._registry",42,"from ._registry import Bindings"]],"baseltest.declarative._registry._service_types":[["baseltest.declarative._signatures",16,"from .._signatures import SCALAR_TYPES as _SCALAR_TYPES"],["baseltest.declarative._signatures",19,"from .._signatures import snake as _snake"],["baseltest.declarative._registry._guards",22,"from ._guards import RESERVED_COVARIATE_KEYS"],["baseltest.declarative._services",161,"from .._services import _language_model_type"],["baseltest.declarative._signatures",17,"from .._signatures import kebab as _kebab"],["baseltest.declarative._types",21,"from .._types import ServiceTypeContract"],["baseltest.declarative._errors",15,"from .._errors import ContractConfigurationError"],["baseltest.declarative._signatures",20,"from .._signatures import value_fits as _value_fits"],["baseltest.declarative._signatures",18,"from .._signatures import rendered_signature as _rendered_signature"]],"baseltest.declarative._runner._shared":[],"baseltest.declarative._signatures":[],"baseltest.declarative._disclosure":[["baseltest.statistics",13,"from baseltest.statistics import DEFAULT_POWER, detectable_rate"],["baseltest.reporting",12,"from baseltest.reporting import SizingDisclosure, VerdictRecord"]],"baseltest.reporting":[["baseltest.reporting.verdict_reader",25,"from .verdict_reader import ("],["baseltest.reporting.console",10,"from .console import ("],["baseltest.reporting.run_design",17,"from .run_design import ("],["baseltest.reporting.test_report",24,"from .test_report import render_test_report"],["baseltest.reporting.verdict_xml",31,"from .verdict_xml import render_verdict_record, write_verdict_record"]],"baseltest.declarative._providers":[["baseltest.declarative._providers._apertus",30,"from . import _anthropic, _apertus, _litellm, _mistral, _ollama, _openai"],["baseltest.declarative._providers._ollama",30,"from . import _anthropic, _apertus, _litellm, _mistral, _ollama, _openai"],["baseltest.declarative._services",44,"from .._services import LanguageModelParameters"],["baseltest.declarative._providers._protocol",32,"from ._protocol import ("],["baseltest.declarative._providers._openai",30,"from . import _anthropic, _apertus, _litellm, _mistral, _ollama, _openai"],["baseltest.declarative._providers._anthropic",30,"from . import _anthropic, _apertus, _litellm, _mistral, _ollama, _openai"],["baseltest.contract",27,"from baseltest.contract import BaseltestError, ServiceDeliveryError"],["baseltest.declarative._providers._mistral",30,"from . import _anthropic, _apertus, _litellm, _mistral, _ollama, _openai"],["baseltest.declarative._providers._media",31,"from ._media import CAPABILITY_FOR, media_kinds_present"],["baseltest.declarative._errors",29,"from .._errors import ContractConfigurationError"],["baseltest.declarative._providers._litellm",30,"from . import _anthropic, _apertus, _litellm, _mistral, _ollama, _openai"]],"baseltest.reporting.console":[["baseltest.engine",6,"from baseltest.engine import ("]],"baseltest.declarative._parser._contract":[["baseltest.declarative._parser._inputs",15,"from ._inputs import _parse_inputs"],["baseltest.declarative._parser._model",17,"from ._model import ContractDeclaration"],["baseltest.declarative._parser._latency",16,"from ._latency import _parse_latency"],["baseltest.engine",11,"from baseltest.engine import Intent"],["baseltest.statistics",12,"from baseltest.statistics import DEFAULT_CONFIDENCE_LEVEL"],["baseltest.declarative._parser._structure",19,"from ._structure import _check_top_level_keys, _parse_transforms"],["baseltest.declarative._parser._criteria",14,"from ._criteria import _parse_criterion"],["baseltest.declarative._parser._shape",18,"from ._shape import _fail, _load_yaml, _require_mapping, _require_string"]],"baseltest.contract.errors":[],"baseltest.statistics.latency":[],"baseltest.observation":[["baseltest.observation.record",12,"from .record import CriterionStatistics, FailureEntry, RunObservation"],["baseltest.observation.emit",11,"from .emit import observation_lines"]],"baseltest.engine.run.sample":[["baseltest.engine.defect",27,"from ..defect import DefectDiagnosisError"],["baseltest.engine.naming",28,"from ..naming import bounded_excerpt"],["baseltest.contract",15,"from baseltest.contract import ("],["baseltest.engine.run.model",29,"from .model import SampleRecord"]],"baseltest.declarative._steppers._numeric":[["baseltest.declarative._errors",9,"from .._errors import ContractConfigurationError"]],"baseltest.exploration":[["baseltest.exploration.writer",11,"from .writer import ("]],"baseltest.declarative._instantiate._compose":[["baseltest.declarative._instantiate._baseline",21,"from ._baseline import BaselineContext, _empirical_criteria, _resolve_matching_baseline"],["baseltest.declarative._instantiate._postconditions",23,"from ._postconditions import _build_criterion, _expected_postconditions"],["baseltest.declarative._instantiate._sizing_policy",25,"from ._sizing_policy import RunSizing, _resolve_run_size"],["baseltest.declarative._errors",16,"from .._errors import ContractConfigurationError"],["baseltest.declarative._services",20,"from .._services import ServiceDefinition"],["baseltest.declarative._registry",18,"from .._registry import Registry"],["baseltest.declarative._schema_walk",19,"from .._schema_walk import validate_declared_paths"],["baseltest.declarative._instantiate._views",26,"from ._views import _build_views"],["baseltest.declarative._instantiate._service",24,"from ._service import _resolve_service, _splat_tuple_invoke, _validate_inputs, _validate_media"],["baseltest.engine",14,"from baseltest.engine import RunKind, RunPlan"],["baseltest.contract",13,"from baseltest.contract import ServiceContract"],["baseltest.declarative._parser",17,"from .._parser import ContractDeclaration"],["baseltest.declarative._instantiate._latency",22,"from ._latency import _latency_bar"]],"baseltest.declarative._providers._openai":[["baseltest.declarative._services",15,"from .._services import LanguageModelParameters"],["baseltest.declarative._providers._protocol",5,"from ._protocol import ("]],"baseltest.declarative._instantiate._service":[["baseltest.contract",12,"from baseltest.contract import FileInput, MessageParts"],["baseltest.declarative._errors",14,"from .._errors import ContractConfigurationError"],["baseltest.declarative._signatures",18,"from .._signatures import value_fits as _value_fits"],["baseltest.declarative._providers",15,"from .._providers import require_media, resolve_provider"],["baseltest.declarative._services",17,"from .._services import LanguageModelParameters, ServiceDefinition"],["baseltest.declarative._registry",16,"from .._registry import Registry"]],"baseltest.declarative._instantiate._optimize_point":[["baseltest.declarative._instantiate._postconditions",23,"from ._postconditions import _build_criterion, _expected_postconditions"],["baseltest.declarative._registry",21,"from .._registry import Registry"],["baseltest.declarative._instantiate._service",24,"from ._service import _resolve_service, _splat_tuple_invoke, _validate_inputs, _validate_media"],["baseltest.declarative._instantiate._views",25,"from ._views import _build_views"],["baseltest.contract",16,"from baseltest.contract import ServiceContract"],["baseltest.declarative._services",22,"from .._services import ServiceDefinition, configuration_values"],["baseltest.declarative._errors",19,"from .._errors import ContractConfigurationError"],["baseltest.engine",17,"from baseltest.engine import Intent, RunKind, RunPlan"],["baseltest.declarative._parser",20,"from .._parser import ContractDeclaration"]],"baseltest.declarative._sizing._rates":[["baseltest.statistics",10,"from baseltest.statistics import wilson_lower_bound"],["baseltest.declarative._sizing._model",12,"from ._model import SizingRefusalError"]],"baseltest.engine.run.feasibility":[["baseltest.statistics",12,"from baseltest.statistics import check_feasibility"],["baseltest.contract",11,"from baseltest.contract import BaseltestError, ServiceContract"],["baseltest.engine.run.model",14,"from .model import InfeasibleCriterion, Intent, RunKind, RunPlan"]],"baseltest.declarative._runner._explore":[["baseltest.declarative._parser",20,"from .._parser import load_contract"],["baseltest.declarative._instantiate",19,"from .._instantiate import instantiate_explore"],["baseltest.declarative._registry",22,"from .._registry import Bindings"],["baseltest.exploration",15,"from baseltest.exploration import exploration_stem, write_exploration"],["baseltest.declarative._registrations",21,"from .._registrations import discover_registrations"],["baseltest.reporting",17,"from baseltest.reporting import render_explorations, render_run_plan"],["baseltest.declarative._runner._shared",24,"from ._shared import DEFAULT_EXPLORATIONS_DIR, _tty_progress"],["baseltest.declarative._services",23,"from .._services import discover_services"],["baseltest.engine",14,"from baseltest.engine import DefectDiagnosisError, RunResult, execute"],["baseltest.observation",16,"from baseltest.observation import RunObservation"]],"baseltest.declarative._registry._guards":[["baseltest.declarative._errors",10,"from .._errors import ContractConfigurationError"]],"baseltest.declarative._providers._ollama":[["baseltest.declarative._providers._protocol",12,"from ._protocol import Provider, no_constraint, plain_headers"],["baseltest.declarative._services",15,"from .._services import LanguageModelParameters"],["baseltest.declarative._providers._media",11,"from ._media import b64, message_parts"],["baseltest.contract",9,"from baseltest.contract import FileInput, MediaKind"]],"baseltest.declarative._sizing._flags":[["baseltest.declarative._sizing._model",8,"from ._model import SizingRefusalError"],["baseltest.declarative._sizing._rates",9,"from ._rates import _parse_rate"]],"baseltest.declarative._providers._anthropic":[["baseltest.declarative._services",35,"from .._services import LanguageModelParameters"],["baseltest.declarative._providers._protocol",32,"from ._protocol import Provider"],["baseltest.contract",29,"from baseltest.contract import FileInput, MediaKind, ServiceDeliveryError"],["baseltest.declarative._providers._media",31,"from ._media import b64, content_blocks, mime_type, unexpected_kind"]],"baseltest.statistics._constants":[],"baseltest.declarative._sizing._render":[["baseltest.statistics",9,"from baseltest.statistics import detectable_rate, power_at, wilson_lower_bound_from_rate"],["baseltest.declarative._sizing._model",11,"from ._model import SizingClaim"],["baseltest.declarative._sizing._rates",12,"from ._rates import _percent"]],"baseltest.reporting.test_report":[["baseltest.reporting.verdict_reader",14,"from .verdict_reader import LatencyRecord, VerdictRecord"],["baseltest.reporting.report_html",12,"from .report_html import document_head, escape, footer, timestamp, verdict_css_class"],["baseltest.reporting.run_design",13,"from .run_design import APPROACH_GLOSSES, SizingDisclosure"]],"baseltest.declarative._parser._shape":[["baseltest.declarative._errors",13,"from .._errors import ContractConfigurationError"]],"baseltest.declarative._parser._structure":[["baseltest.declarative._parser._shape",11,"from ._shape import _SEAM_POINTER, _fail, _require_mapping"],["baseltest.declarative._parser._model",10,"from ._model import FORMAT_IDENTIFIER, RAW_VIEW"]],"baseltest.statistics.feasibility":[["baseltest.statistics.wilson",26,"from .wilson import wilson_lower_bound_from_rate"],["baseltest.statistics._constants",25,"from ._constants import DEFAULT_CONFIDENCE_LEVEL, SOUNDNESS_FLOOR_CONFIDENCE"]],"baseltest._version":[],"baseltest.declarative._parser._forms":[["baseltest.declarative._parser._model",10,"from ._model import RAW_VIEW, Form, FormDeclaration"],["baseltest.declarative._parser._shape",11,"from ._shape import _fail"]],"baseltest.contract.postconditions":[],"baseltest.declarative._instantiate._explore":[["baseltest.declarative._errors",17,"from .._errors import ContractConfigurationError"],["baseltest.declarative._instantiate._views",24,"from ._views import _build_views"],["baseltest.declarative._parser",18,"from .._parser import ContractDeclaration"],["baseltest.declarative._instantiate._service",22,"from ._service import _resolve_service, _splat_tuple_invoke, _validate_inputs, _validate_media"],["baseltest.declarative._services",20,"from .._services import ServiceDefinition, configuration_values, factor_values"],["baseltest.declarative._instantiate._sizing_policy",23,"from ._sizing_policy import DEFAULT_SAMPLES, RunSizing"],["baseltest.declarative._registry",19,"from .._registry import Registry"],["baseltest.declarative._instantiate._postconditions",21,"from ._postconditions import _build_criterion, _expected_postconditions"],["baseltest.contract",14,"from baseltest.contract import ServiceContract"],["baseltest.engine",15,"from baseltest.engine import Intent, RunKind, RunPlan"]],"baseltest.declarative._materialise":[["baseltest.declarative._parser",9,"from ._parser import ContractDeclaration, CriterionDeclaration, Form, FormDeclaration"]],"baseltest.optimization.record":[["baseltest.engine",15,"from baseltest.engine import RunResult"],["baseltest.observation",16,"from baseltest.observation import RunObservation"]],"baseltest.declarative._instantiate._views":[["baseltest.declarative._structured",18,"from .._structured import STOCK_TRANSFORMS as STOCK_TRANSFORM_FNS"],["baseltest.declarative._parser",16,"from .._parser import ContractDeclaration"],["baseltest.contract",14,"from baseltest.contract import TransformError"],["baseltest.declarative._registry",17,"from .._registry import Registry"]],"baseltest.declarative._services._parse":[["baseltest.declarative._services._model",18,"from ._model import ("],["baseltest.declarative._registry",26,"from .._registry import Registry"],["baseltest.declarative._types",17,"from .._types import ServiceTypeContract"],["baseltest.declarative._optimize",16,"from .._optimize import OptimizationDeclaration, parse_optimizations"]],"baseltest.declarative._registrations":[["baseltest.declarative._registry",20,"from ._registry import Bindings, Registry"],["baseltest.declarative._errors",19,"from ._errors import ContractConfigurationError"]],"baseltest.declarative._instantiate._sizing_policy":[["baseltest.contract",10,"from baseltest.contract import Criterion"],["baseltest.statistics",12,"from baseltest.statistics import check_feasibility"],["baseltest.engine",11,"from baseltest.engine import Intent, RunKind"],["baseltest.declarative._errors",14,"from .._errors import ContractConfigurationError"]],"baseltest.engine.run.execute":[["baseltest.engine.latency",21,"from ..latency import evaluate_latency"],["baseltest.engine.run.sample",26,"from .sample import _run_one_sample, _SampleOutcome"],["baseltest.engine.run.model",25,"from .model import CriterionResult, RunPlan, RunResult, SampleRecord"],["baseltest.engine.run.identity",23,"from .identity import inputs_fingerprint"],["baseltest.statistics.verdict",19,"from baseltest.statistics.verdict import Verdict"],["baseltest.engine.run.judge",24,"from .judge import _judge"],["baseltest.engine.run.feasibility",22,"from .feasibility import _preflight"],["baseltest.contract",18,"from baseltest.contract import CriterionTally, ServiceContract"]],"baseltest.declarative._registry._bindings":[["baseltest.declarative._registry._core",18,"from ._core import Registry"],["baseltest.declarative._steppers",17,"from .._steppers import ScorerFunction, StepFunction"]],"baseltest.declarative._runner._load":[["baseltest.declarative._registry",15,"from .._registry import Bindings, Registry"],["baseltest.declarative._services",16,"from .._services import ServiceDefinition, discover_services"],["baseltest.declarative._parser",13,"from .._parser import ContractDeclaration, load_contract"],["baseltest.declarative._registrations",14,"from .._registrations import discover_registrations"]],"baseltest.declarative._services._language_model":[["baseltest.declarative._services._model",28,"from ._model import _fail"],["baseltest.declarative._providers",18,"from .._providers import ("],["baseltest.declarative._types",27,"from .._types import ServiceTypeContract"]],"baseltest.exploration.writer":[["baseltest.observation",82,"from baseltest.observation import RunObservation, observation_lines"],["baseltest.engine.artefact",81,"from baseltest.engine.artefact import factor_lines, quote"]],"baseltest.statistics.verdict":[["baseltest.statistics._validation",36,"from ._validation import validate_counts"],["baseltest.statistics._constants",35,"from ._constants import DEFAULT_CONFIDENCE_LEVEL"]],"baseltest.declarative._parser._criteria":[["baseltest.declarative._parser._forms",10,"from ._forms import _FORM_KEYS, _parse_form_entry"],["baseltest.declarative._parser._model",11,"from ._model import CriterionDeclaration, FormDeclaration"],["baseltest.declarative._parser._shape",12,"from ._shape import _SEAM_POINTER, _fail, _require_mapping"]],"baseltest.declarative._optimize":[["baseltest.declarative._steppers",23,"from ._steppers import ("],["baseltest.declarative._registry",32,"from ._registry import Registry"],["baseltest.declarative._errors",22,"from ._errors import ContractConfigurationError"],["baseltest.declarative._types",29,"from ._types import ServiceTypeContract"],["baseltest.optimization",20,"from baseltest.optimization import Objective"]],"baseltest.declarative._parser._inputs":[["baseltest.declarative._parser._shape",20,"from ._shape import _fail, _require_mapping"],["baseltest.declarative._parser._model",19,"from ._model import Form, FormDeclaration"],["baseltest.declarative._parser._forms",18,"from ._forms import _parse_form_entry"],["baseltest.contract",16,"from baseltest.contract import FileInput, MediaKind, MessageParts"]],"baseltest.baseline.record":[["baseltest.engine",9,"from baseltest.engine import LatencyBlock, RunResult, latency_block"]],"baseltest.observation.emit":[["baseltest.engine.naming",13,"from baseltest.engine.naming import bounded_key"],["baseltest.observation.record",15,"from .record import RunObservation"],["baseltest.engine.artefact",12,"from baseltest.engine.artefact import latency_lines, quote"]],"baseltest.engine.latency":[["baseltest.engine.run",46,"from .run import SampleRecord"],["baseltest.contract",18,"from baseltest.contract import PERCENTILE_LEVELS, LatencyBar, LatencyBound"],["baseltest.statistics",19,"from baseltest.statistics import latency_percentile"],["baseltest.statistics.verdict",20,"from baseltest.statistics.verdict import Verdict"]],"baseltest.declarative._runner._optimize_loop":[["baseltest.declarative._parser",29,"from .._parser import ContractDeclaration"],["baseltest.declarative._services",32,"from .._services import _resolved_point as _configuration_identity"],["baseltest.reporting",24,"from baseltest.reporting import render_optimization_run"],["baseltest.declarative._services",31,"from .._services import ServiceDefinition"],["baseltest.declarative._steppers",33,"from .._steppers import ("],["baseltest.declarative._instantiate",27,"from .._instantiate import instantiate_optimize_point"],["baseltest.optimization",16,"from baseltest.optimization import ("],["baseltest.declarative._errors",26,"from .._errors import ContractConfigurationError"],["baseltest.declarative._optimize",28,"from .._optimize import OptimizationDeclaration"],["baseltest.declarative._runner._shared",42,"from ._shared import _tty_progress"],["baseltest.engine",15,"from baseltest.engine import DefectDiagnosisError, RunResult, execute, latency_block"],["baseltest.declarative._registry",30,"from .._registry import Registry"]],"baseltest.declarative._instantiate._baseline":[["baseltest.declarative._parser",25,"from .._parser import FORMAT_IDENTIFIER, ContractDeclaration, CriterionDeclaration"],["baseltest.statistics",23,"from baseltest.statistics import derive_sample_size_first, wilson_lower_bound"],["baseltest.baseline",15,"from baseltest.baseline import ("],["baseltest.contract",21,"from baseltest.contract import Criterion, Postcondition, ThresholdProvenance"],["baseltest.declarative._registry",26,"from .._registry import Registry"],["baseltest.declarative._instantiate._postconditions",27,"from ._postconditions import _build_criterion"],["baseltest.engine",22,"from baseltest.engine import inputs_fingerprint"]],"baseltest.declarative._runner":[["baseltest.declarative._runner._shared",17,"from ._shared import ("],["baseltest.declarative._runner._run",16,"from ._run import run"],["baseltest.declarative._runner._optimize_loop",14,"from ._optimize_loop import OptimizationOutcome"],["baseltest.declarative._runner._report",15,"from ._report import report"],["baseltest.declarative._runner._check",10,"from ._check import check"],["baseltest.declarative._runner._shared",24,"from ._shared import _tty_progress as _tty_progress"],["baseltest.declarative._runner._explore",11,"from ._explore import AbortedConfiguration, ConfigurationExploration, ExplorationRun, explore"],["baseltest.declarative._runner._load",12,"from ._load import LoadedContract, load_for_run"],["baseltest.declarative._runner._optimize",13,"from ._optimize import optimize"]],"baseltest.declarative._providers._litellm":[["baseltest.declarative._providers._protocol",38,"from ._protocol import ("],["baseltest.declarative._services",49,"from .._services import LanguageModelParameters"]],"baseltest.declarative._registry._transform":[["baseltest.declarative._errors",21,"from .._errors import ContractConfigurationError"],["baseltest.declarative._structured",22,"from .._structured import STOCK_TRANSFORMS"]],"baseltest.declarative._steppers._builtins":[["baseltest.declarative._steppers._prompt_engineer",6,"from ._prompt_engineer import _prompt_engineer"],["baseltest.declarative._steppers._refining_grid",7,"from ._refining_grid import _refining_grid"],["baseltest.declarative._steppers._context",3,"from ._context import IterationSummary"],["baseltest.declarative._steppers._linear_sweep",5,"from ._linear_sweep import _linear_sweep"],["baseltest.declarative._steppers._contract",4,"from ._contract import ScorerFunction, StepperRegistration"]],"baseltest.declarative._errors":[["baseltest.contract",3,"from baseltest.contract import BaseltestError"]],"baseltest.declarative._types":[],"baseltest.declarative._registry":[["baseltest.declarative._registry._transform",23,"from ._transform import _STOCK_TRANSFORMS as _STOCK_TRANSFORMS"],["baseltest.declarative._registry._guards",22,"from ._guards import RESERVED_COVARIATE_KEYS"],["baseltest.declarative._registry._transform",24,"from ._transform import TransformRegistration"],["baseltest.declarative._registry._bindings",20,"from ._bindings import Bindings"],["baseltest.declarative._registry._core",21,"from ._core import Registry"]],"baseltest.reporting.report_html":[],"baseltest.contract":[["baseltest.contract.evaluation",23,"from .evaluation import ("],["baseltest.contract.errors",22,"from .errors import BaseltestError, ContractValidationError, PreconditionError"],["baseltest.contract.postconditions",45,"from .postconditions import ("],["baseltest.contract.model",32,"from .model import ("]],"baseltest.engine.run.judge":[["baseltest.contract",3,"from baseltest.contract import Criterion, CriterionTally"],["baseltest.statistics.wilson",5,"from baseltest.statistics.wilson import wilson_lower_bound"],["baseltest.statistics.verdict",4,"from baseltest.statistics.verdict import Verdict, evaluate_regression"]],"baseltest.engine.run.attainment":[["baseltest.statistics.verdict",14,"from baseltest.statistics.verdict import Verdict"],["baseltest.statistics.wilson",15,"from baseltest.statistics.wilson import wilson_lower_bound"],["baseltest.engine.run.model",17,"from .model import CriterionResult"]],"baseltest.reporting.run_design":[],"baseltest.reporting.verdict_xml":[["baseltest.engine",16,"from baseltest.engine import CriterionResult, RunResult"],["baseltest.reporting.run_design",18,"from .run_design import RunDesign"],["baseltest._version",15,"from baseltest._version import __version__"]],"baseltest.declarative._services._model":[["baseltest.declarative._errors",11,"from .._errors import ContractConfigurationError"],["baseltest.declarative._optimize",12,"from .._optimize import OptimizationDeclaration"],["baseltest.declarative._types",13,"from .._types import ServiceTypeContract"]],"baseltest.declarative._instantiate._postconditions":[["baseltest.declarative._structured",28,"from .._structured import compile_jsonpath, compile_xpath, path_qualified"],["baseltest.contract",13,"from baseltest.contract import ("],["baseltest.declarative._parser",26,"from .._parser import RAW_VIEW, CriterionDeclaration, Form, FormDeclaration"],["baseltest.declarative._registry",27,"from .._registry import Registry"],["baseltest.engine.naming",24,"from baseltest.engine.naming import bounded_excerpt, per_input_name"]],"baseltest.declarative._steppers._context":[],"baseltest.declarative._services":[["baseltest.declarative._services._language_model",25,"from ._language_model import ("],["baseltest.declarative._services._language_model",32,"from ._language_model import _validate_configuration as _validate_configuration"],["baseltest.declarative._services._parse",35,"from ._parse import discover_services, parse_services"],["baseltest.declarative._services._language_model",31,"from ._language_model import _language_model_type as _language_model_type"],["baseltest.declarative._services._model",33,"from ._model import ServiceDefinition, configuration_values, factor_values"],["baseltest.declarative._services._parse",34,"from ._parse import _resolved_point as _resolved_point"]],"baseltest.declarative._sizing._resolve":[["baseltest.declarative._sizing._flags",20,"from ._flags import _parse_tolerate_flags, _refuse_contradictory_sizing_flags"],["baseltest.declarative._sizing._modes",22,"from ._modes import _explicit_samples_mode, _over_reach_mode, _risk_driven_mode"],["baseltest.declarative._sizing._rates",29,"from ._rates import _parse_rate"],["baseltest.declarative._sizing._prompts",23,"from ._prompts import ("],["baseltest.declarative._services",18,"from .._services import ServiceDefinition"],["baseltest.declarative._parser",17,"from .._parser import ContractDeclaration"],["baseltest.declarative._registry",32,"from .._registry import Registry"],["baseltest.statistics",15,"from baseltest.statistics import DEFAULT_POWER"],["baseltest.declarative._sizing._model",21,"from ._model import ResolvedSizing, SizingRefusalError, _EmpiricalCriterion"],["baseltest.declarative._sizing._criteria",19,"from ._criteria import _sizeable_criteria, resolve_contract_baseline"]],"baseltest.baseline.reader":[["baseltest.baseline.writer",27,"from .writer import SCHEMA_VERSION"],["baseltest.engine",25,"from baseltest.engine import LatencyBasis"]],"baseltest.declarative._schema_walk":[["baseltest.declarative._errors",34,"from ._errors import ContractConfigurationError"],["baseltest.declarative._structured",283,"from ._structured import compile_jsonpath"],["baseltest.declarative._parser",281,"from ._parser import RAW_VIEW"],["baseltest.declarative._registry",37,"from ._registry import Registry"],["baseltest.declarative._registry",282,"from ._registry import _STOCK_TRANSFORMS"],["baseltest.engine.naming",32,"from baseltest.engine.naming import bounded_excerpt"]],"baseltest.contract.model":[["baseltest.statistics",10,"from baseltest.statistics import DEFAULT_CONFIDENCE_LEVEL"],["baseltest.contract.postconditions",13,"from .postconditions import Postcondition"],["baseltest.contract.errors",12,"from .errors import BaseltestError"]],"baseltest.declarative._parser":[["baseltest.declarative._parser._model",20,"from ._model import ("],["baseltest.declarative._parser._latency",19,"from ._latency import _PERCENTILE_KEYS as _PERCENTILE_KEYS"],["baseltest.declarative._parser._contract",18,"from ._contract import load_contract, parse_contract"]],"baseltest.engine.naming":[],"baseltest.declarative._steppers._linear_sweep":[["baseltest.declarative._errors",11,"from .._errors import ContractConfigurationError"],["baseltest.declarative._steppers._contract",13,"from ._contract import StepFunction"],["baseltest.declarative._steppers._numeric",14,"from ._numeric import _NUMERIC_TOLERANCE, _numeric"],["baseltest.declarative._steppers._context",12,"from ._context import OptimizeContext"]],"baseltest.statistics.summary":[["baseltest.statistics.verdict",20,"from .verdict import Verdict"]],"baseltest.baseline.writer":[["baseltest.engine.artefact",56,"from baseltest.engine.artefact import latency_lines, quote"],["baseltest.engine.naming",57,"from baseltest.engine.naming import bounded_key"],["baseltest.baseline.record",59,"from .record import BaselineRecord, CriterionCharacterisation"]],"baseltest.statistics.sizing":[["baseltest.statistics.wilson",36,"from .wilson import wilson_lower_bound_from_rate"],["baseltest.statistics._constants",34,"from ._constants import DEFAULT_CONFIDENCE_LEVEL, DEFAULT_POWER"],["baseltest.statistics._validation",35,"from ._validation import validate_unit_interval"]],"baseltest.declarative._providers._protocol":[["baseltest.declarative._providers._media",21,"from ._media import b64 as _b64"],["baseltest.contract",12,"from baseltest.contract import FileInput, MediaKind"],["baseltest.declarative._services",24,"from .._services import LanguageModelParameters"],["baseltest.declarative._providers._media",14,"from ._media import ("]],"baseltest.engine.defect":[],"baseltest.declarative._providers._mistral":[["baseltest.contract",3,"from baseltest.contract import MediaKind"],["baseltest.declarative._providers._protocol",5,"from ._protocol import ("]],"baseltest.optimization.writer":[["baseltest.observation",16,"from baseltest.observation import observation_lines"],["baseltest.optimization.record",18,"from .record import OptimizationRecord"],["baseltest.engine.artefact",15,"from baseltest.engine.artefact import factor_lines, quote, scalar"]],"baseltest.declarative._providers._media":[["baseltest.contract",16,"from baseltest.contract import FileInput, MediaKind, MessageParts"]],"baseltest.declarative._providers._apertus":[["baseltest.declarative._providers._protocol",14,"from ._protocol import ("]],"baseltest.declarative._sizing._pricing":[["baseltest.declarative._sizing._model",11,"from ._model import SizingClaim, _EmpiricalCriterion"],["baseltest.statistics",9,"from baseltest.statistics import required_samples_for_power"],["baseltest.declarative._sizing._rates",12,"from ._rates import _percent"]],"baseltest.optimization":[["baseltest.optimization.writer",19,"from .writer import render_optimization, write_optimization"],["baseltest.optimization.record",12,"from .record import ("]],"baseltest.contract.evaluation":[["baseltest.contract.model",21,"from .model import Criterion, TransformError"],["baseltest.statistics",19,"from baseltest.statistics import proportion_standard_error, proportion_variance"]],"baseltest":[["baseltest.contract",17,"from baseltest.contract import FileInput, MessageParts"],["baseltest._version",16,"from baseltest._version import __version__"],["baseltest.declarative",18,"from baseltest.declarative import ("]],"baseltest.declarative._registry._core":[["baseltest.declarative._registry._transform",33,"from ._transform import _STOCK_TRANSFORMS, TransformRegistration, _loaded_schema"],["baseltest.declarative._registry._guards",26,"from ._guards import _register, _validated_covariates"],["baseltest.declarative._registry._service_types",27,"from ._service_types import ("],["baseltest.declarative._types",25,"from .._types import ServiceTypeContract"],["baseltest.declarative._steppers",17,"from .._steppers import ("],["baseltest.declarative._errors",16,"from .._errors import ContractConfigurationError"]],"baseltest.declarative._sizing":[["baseltest.declarative._sizing._model",26,"from ._model import ResolvedSizing, SizingClaim, SizingRefusalError"],["baseltest.declarative._sizing._resolve",27,"from ._resolve import resolve_test_sizing"]],"baseltest.engine":[["baseltest.engine.latency",14,"from .latency import ("],["baseltest.statistics.verdict",11,"from baseltest.statistics.verdict import Verdict"],["baseltest.engine.run",24,"from .run import ("],["baseltest.engine.defect",13,"from .defect import TRANSFORM_CONTRACT_NOTE, DefectDiagnosisError"],["baseltest.engine.run.execute",24,"from .run import ("]],"baseltest.statistics._validation":[],"baseltest.declarative._structured":[["baseltest.declarative._errors",34,"from ._errors import ContractConfigurationError"],["baseltest.contract",32,"from baseltest.contract import Postcondition, PostconditionResult, TransformError"]],"baseltest.declarative._instantiate":[["baseltest.declarative._instantiate._optimize_point",19,"from ._optimize_point import OptimizePoint, instantiate_optimize_point, optimize_definition"],["baseltest.declarative._instantiate._baseline",16,"from ._baseline import BaselineContext"],["baseltest.declarative._instantiate._views",21,"from ._views import descriptive_view_fingerprints"],["baseltest.declarative._instantiate._explore",18,"from ._explore import ExploreConfiguration, instantiate_explore"],["baseltest.declarative._instantiate._compose",17,"from ._compose import Instantiation, instantiate"],["baseltest.declarative._instantiate._sizing_policy",20,"from ._sizing_policy import RunSizing"]],"baseltest.declarative._steppers":[["baseltest.declarative._steppers._contract",48,"from ._contract import ("],["baseltest.declarative._steppers._context",40,"from ._context import ("],["baseltest.declarative._steppers._builtins",39,"from ._builtins import builtin_scorers, builtin_stepper_registrations"]],"baseltest.declarative._runner._check":[["baseltest.declarative._instantiate._service",13,"from .._instantiate._service import _validate_inputs"],["baseltest.declarative._services",18,"from .._services import discover_services"],["baseltest.declarative._schema_walk",17,"from .._schema_walk import validate_declared_paths"],["baseltest.declarative._registry",16,"from .._registry import Bindings"],["baseltest.declarative._registrations",15,"from .._registrations import discover_registrations"],["baseltest.declarative._parser",14,"from .._parser import load_contract"],["baseltest.declarative._instantiate",12,"from .._instantiate import instantiate"],["baseltest.engine",10,"from baseltest.engine import RunKind"]],"baseltest.engine.run.identity":[["baseltest.contract",8,"from baseltest.contract import FileInput, MessageParts"]],"baseltest.declarative._parser._model":[["baseltest.engine",13,"from baseltest.engine import Intent"]],"baseltest.statistics.power":[["baseltest.statistics._validation",19,"from ._validation import validate_unit_interval"]],"baseltest.engine.run.model":[["baseltest.engine.latency",17,"from ..latency import LatencyEvaluation"],["baseltest.contract",13,"from baseltest.contract import Criterion, CriterionTally, Outcome"],["baseltest.statistics.verdict",14,"from baseltest.statistics.verdict import Verdict"]],"baseltest.engine.run":[["baseltest.engine.run.feasibility",10,"from .feasibility import InfeasibleRunError, derive_minimum_samples"],["baseltest.engine.run.identity",11,"from .identity import inputs_fingerprint"],["baseltest.engine.run.attainment",8,"from .attainment import BarAttainment, bar_attainment"],["baseltest.engine.run.model",12,"from .model import ("],["baseltest.engine.run.execute",9,"from .execute import execute"]],"baseltest.statistics.threshold":[["baseltest.statistics._validation",35,"from ._validation import validate_confidence_level"],["baseltest.statistics._constants",34,"from ._constants import DEFAULT_CONFIDENCE_LEVEL, DEFAULT_POWER, SOUNDNESS_FLOOR_CONFIDENCE"],["baseltest.statistics.wilson",37,"from .wilson import wilson_lower_bound, wilson_lower_bound_from_rate"],["baseltest.statistics.power",36,"from .power import required_sample_size"]],"baseltest.declarative._steppers._refining_grid":[["baseltest.declarative._steppers._numeric",19,"from ._numeric import _NUMERIC_TOLERANCE, _grid_values, _numeric"],["baseltest.declarative._steppers._contract",18,"from ._contract import Phase, StepFunction, StepProposal"],["baseltest.declarative._errors",16,"from .._errors import ContractConfigurationError"],["baseltest.declarative._steppers._context",17,"from ._context import OptimizeContext"],["baseltest.statistics",14,"from baseltest.statistics import DEFAULT_CONFIDENCE_LEVEL, wilson_interval"]],"baseltest.declarative._runner._run":[["baseltest.declarative._errors",25,"from .._errors import ContractConfigurationError"],["baseltest.reporting",11,"from baseltest.reporting import ("],["baseltest.declarative._runner._shared",31,"from ._shared import DEFAULT_BASELINE_DIR, _tty_progress"],["baseltest.declarative._registry",28,"from .._registry import Bindings"],["baseltest.declarative._instantiate",26,"from .._instantiate import BaselineContext, descriptive_view_fingerprints, instantiate"],["baseltest.declarative._runner._load",30,"from ._load import LoadedContract, load_for_run"],["baseltest.declarative._disclosure",24,"from .._disclosure import sizing_disclosure"],["baseltest.baseline",9,"from baseltest.baseline import BaselineRecord, write_baseline"],["baseltest.declarative._parser",27,"from .._parser import FORMAT_IDENTIFIER"],["baseltest.engine",10,"from baseltest.engine import RunKind, RunResult, execute"],["baseltest.declarative._sizing",29,"from .._sizing import ResolvedSizing"]]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"baseltest.declarative._providers._litellm": 1784829529.8269892, "baseltest.declarative._providers._ollama": 1784829044.6770706, "baseltest.observation.emit": 1784730023.5673316, "baseltest.baseline.reader": 1784624486.3295696, "baseltest.declarative._sizing._resolve": 1784700933.2291906, "baseltest.declarative._instantiate._latency": 1784697825.7258992, "baseltest.reporting.console": 1784724278.0934372, "baseltest.declarative._structured": 1784660834.7805767, "baseltest.baseline.writer": 1784721732.8947453, "baseltest.declarative._steppers._context": 1784711183.7829256, "baseltest.declarative._services._model": 1784704043.7597773, "baseltest.declarative._cli": 1784717739.0876503, "baseltest.declarative._instantiate._optimize_point": 1784830564.037318, "baseltest.declarative._providers._openai": 1784829529.8268123, "baseltest": 1784828119.1467574, "baseltest.baseline.record": 1784642532.6878533, "baseltest.observation": 1784730023.5668638, "baseltest.engine.artefact": 1784721732.8950317, "baseltest.exploration": 1784731446.1992078, "baseltest.declarative._registry._bindings": 1784828295.6439784, "baseltest.optimization": 1784624486.3313675, "baseltest.statistics.latency": 1783627706.2529247, "baseltest.declarative._sizing._rates": 1784700933.2275133, "baseltest.statistics.summary": 1783342255.9972599, "baseltest.declarative": 1784711183.777789, "baseltest.declarative._parser._structure": 1784701927.6573, "baseltest.declarative._sizing._criteria": 1784700933.2240186, "baseltest.statistics.proportion": 1784724278.093899, "baseltest.optimization.writer": 1784730023.5684454, "baseltest.declarative._parser._latency": 1784701927.656845, "baseltest.contract.postconditions": 1784796507.7300982, "baseltest.declarative._instantiate._views": 1784697825.7271893, "baseltest.declarative._instantiate._postconditions": 1784697825.7264152, "baseltest.declarative._signatures": 1784230065.6745944, "baseltest.declarative._services": 1784704043.7589154, "baseltest.statistics.sizing": 1784647895.008006, "baseltest.statistics.verdict": 1784647895.008318, "baseltest.statistics.power": 1784642532.6949065, "baseltest.declarative._sizing._prompts": 1784700933.2273402, "baseltest.declarative._providers._media": 1784828823.8133955, "baseltest.engine.run.execute": 1784662118.0305192, "baseltest.engine.run.identity": 1784828154.437675, "baseltest.declarative._registrations": 1784711183.778993, "baseltest.engine.defect": 1784576130.4987924, "baseltest.reporting.report_html": 1784179100.0100958, "baseltest.declarative._steppers._linear_sweep": 1784711183.7834938, "baseltest.engine.run.judge": 1784652381.840744, "baseltest.statistics._constants": 1784647895.0077252, "baseltest.declarative._instantiate._baseline": 1784697825.7248998, "baseltest.engine.run.sample": 1784662118.0307624, "baseltest.declarative._providers._anthropic": 1784829008.5363247, "baseltest.reporting.run_design": 1783873845.9452946, "baseltest.declarative._optimize": 1784711183.7788277, "baseltest.contract.model": 1784828110.9005754, "baseltest.declarative._runner._shared": 1784705746.816538, "baseltest.declarative._registry._transform": 1784701927.6581495, "baseltest.engine.run.feasibility": 1784652381.8404539, "baseltest.declarative._providers._apertus": 1784296847.7761314, "baseltest.declarative._sizing._modes": 1784700933.2269435, "baseltest.declarative._types": 1784828295.6442204, "baseltest.statistics": 1784724278.0937877, "baseltest.declarative._parser._forms": 1784701927.6564765, "baseltest.declarative._steppers._numeric": 1784711183.7837136, "baseltest.declarative._runner._check": 1784711183.7801807, "baseltest.declarative._runner._explore": 1784730023.5657048, "baseltest.optimization.record": 1784730023.568026, "baseltest.statistics._validation": 1784642532.6940644, "baseltest.baseline": 1784731446.198929, "baseltest.declarative._runner._load": 1784717739.0880518, "baseltest.engine.run": 1784656883.865689, "baseltest.declarative._runner._optimize_loop": 1784711183.7817612, "baseltest.contract.evaluation": 1784796507.7297335, "baseltest.declarative._parser._contract": 1784827427.3974364, "baseltest.declarative._sizing._pricing": 1784700933.2271376, "baseltest.declarative._registry": 1784711183.7792487, "baseltest.declarative._services._parse": 1784828295.644096, "baseltest.declarative._parser._criteria": 1784701927.6561775, "baseltest.declarative._instantiate._compose": 1784830564.0370176, "baseltest.declarative._instantiate": 1784697825.724575, "baseltest.declarative._parser._inputs": 1784828145.4987104, "baseltest.declarative._disclosure": 1784647895.0063276, "baseltest.declarative._runner": 1784717739.0879042, "baseltest.declarative._sizing._render": 1784700933.2277975, "baseltest.reporting.verdict_reader": 1784647895.0073047, "baseltest.statistics.threshold": 1784647895.0081513, "baseltest.declarative._steppers._prompt_engineer": 1784711183.7843645, "baseltest.engine.naming": 1784311537.804023, "baseltest.declarative._steppers._builtins": 1784711183.7827446, "baseltest.declarative._steppers": 1784711183.7825606, "baseltest.declarative._instantiate._explore": 1784830564.03718, "baseltest.declarative._runner._report": 1784705746.816261, "baseltest.declarative._providers._mistral": 1784830564.037437, "baseltest.declarative._schema_walk": 1784694483.4969451, "baseltest.reporting.test_report": 1784610771.8111923, "baseltest.declarative._sizing._model": 1784700933.2267623, "baseltest.declarative._providers": 1784829589.424779, "baseltest.observation.record": 1784730023.5676389, "baseltest._version": 1784731446.1986468, "baseltest.engine.latency": 1784828295.6438906, "baseltest.contract.errors": 1784636632.259277, "baseltest.declarative._runner._run": 1784717739.088279, "baseltest.reporting": 1784656883.865972, "baseltest.declarative._instantiate._service": 1784830564.036805, "baseltest.declarative._services._language_model": 1784829589.4253302, "baseltest.declarative._runner._optimize": 1784711183.7811997, "baseltest.declarative._sizing": 1784700933.2238023, "baseltest.statistics.wilson": 1784647895.0084746, "baseltest.declarative._registry._guards": 1784701927.6579168, "baseltest.declarative._registry._core": 1784711183.7799122, "baseltest.contract": 1784828119.1466117, "baseltest.declarative._instantiate._sizing_policy": 1784697825.726926, "baseltest.declarative._parser": 1784701927.6558995, "baseltest.engine.run.attainment": 1784656883.865816, "baseltest.declarative._materialise": 1784624486.3301847, "baseltest.declarative._providers._protocol": 1784828898.9633727, "baseltest.declarative._registry._service_types": 1784701927.6580393, "baseltest.declarative._steppers._refining_grid": 1784711183.7845929, "baseltest.declarative._errors": 1784636632.2596185, "baseltest.declarative._steppers._contract": 1784828295.643966, "baseltest.declarative._parser._shape": 1784701927.6571376, "baseltest.reporting.verdict_xml": 1784731446.1995153, "baseltest.statistics.feasibility": 1784647895.0078654, "baseltest.engine.run.model": 1784735603.3854725, "baseltest.declarative._sizing._flags": 1784700933.224295, "baseltest.engine": 1784656883.865531, "baseltest.exploration.writer": 1784730023.5665224, "baseltest.declarative._parser._model": 1784701927.6569657}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
Guidance for coding agents (and human contributors) working in this repository.
|
|
4
|
+
|
|
5
|
+
## Project overview
|
|
6
|
+
|
|
7
|
+
`baseltest` is a Python-native framework for probabilistic testing of
|
|
8
|
+
stochastic services (LLMs, ML models, randomized algorithms, network-dependent
|
|
9
|
+
services). It is the Python member of the mavai framework family, alongside
|
|
10
|
+
`punit` (Java) and `feotest` (Rust): same statistical methodology, idiomatic
|
|
11
|
+
per-language implementation, not a port.
|
|
12
|
+
|
|
13
|
+
The project is early-stage: only packaging and tooling scaffolding exists so
|
|
14
|
+
far. Internal architecture (module layout beyond the package root, statistical
|
|
15
|
+
approach, API shape) is not yet decided and should not be assumed from
|
|
16
|
+
`punit` or `feotest` — it will be worked out via orchestrator directives as
|
|
17
|
+
implementation begins.
|
|
18
|
+
|
|
19
|
+
## Environment setup
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
python -m venv venv
|
|
23
|
+
source venv/bin/activate
|
|
24
|
+
pip install -e ".[dev]"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Python 3.11+ is required (see `pyproject.toml`).
|
|
28
|
+
|
|
29
|
+
## Build, test, and quality commands
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Run the test suite
|
|
33
|
+
pytest
|
|
34
|
+
|
|
35
|
+
# Run a single test file
|
|
36
|
+
pytest tests/test_something.py
|
|
37
|
+
|
|
38
|
+
# Run a single test by name (substring match)
|
|
39
|
+
pytest -k test_name
|
|
40
|
+
|
|
41
|
+
# Run with coverage report (also the default via pyproject addopts)
|
|
42
|
+
pytest --cov=baseltest --cov-report=term-missing
|
|
43
|
+
|
|
44
|
+
# Lint
|
|
45
|
+
ruff check .
|
|
46
|
+
|
|
47
|
+
# Format
|
|
48
|
+
ruff format .
|
|
49
|
+
|
|
50
|
+
# Format check (CI-friendly, no rewrite)
|
|
51
|
+
ruff format --check .
|
|
52
|
+
|
|
53
|
+
# Static type check
|
|
54
|
+
mypy src
|
|
55
|
+
|
|
56
|
+
# Build distributable artifacts
|
|
57
|
+
python -m build
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Run `ruff check .`, `ruff format --check .`, `mypy src`, and `pytest` before
|
|
61
|
+
opening a pull request — the same set CI enforces.
|
|
62
|
+
|
|
63
|
+
## Current layout
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
src/baseltest/ # package root — __init__.py + py.typed only, so far
|
|
67
|
+
tests/ # conftest.py only, so far
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Do not pre-create subpackages or modules ahead of an actual directive to
|
|
71
|
+
implement something — the internal architecture (module layout, statistical
|
|
72
|
+
approach, API shape, exception vs. result-object conventions for expected
|
|
73
|
+
failures) is an open design question, not settled by this scaffold.
|
|
74
|
+
|
|
75
|
+
## Conventions
|
|
76
|
+
|
|
77
|
+
- **Idiomatic Python, not a Java (or Rust) lookalike.** This carries the same
|
|
78
|
+
weight it did for `feotest`'s Rust idiom rule — punit's implementation is a
|
|
79
|
+
specification of *what* the statistics/behaviour must do, never a template
|
|
80
|
+
for *how* to structure it. Concretely:
|
|
81
|
+
- Prefer plain functions and `@dataclass` (or `NamedTuple`) over classes
|
|
82
|
+
that exist only to hold immutable state and one computation method —
|
|
83
|
+
that shape is a Java-ism, not a Python one.
|
|
84
|
+
- Do not port a one-class-per-concern Java package layout 1:1. Group by
|
|
85
|
+
cohesive Python module instead (see punit's `statistics` package vs. any
|
|
86
|
+
`baseltest` equivalent — different file counts and boundaries are
|
|
87
|
+
expected and correct).
|
|
88
|
+
- No getter/setter methods, no builder-pattern classes for simple value
|
|
89
|
+
construction, no `Optional`-wrapper idioms — use plain attributes,
|
|
90
|
+
keyword arguments with defaults, and `X | None`.
|
|
91
|
+
- Prefer composition via plain functions and modules over inheritance
|
|
92
|
+
hierarchies or interface/impl pairs manufactured for a single
|
|
93
|
+
implementation.
|
|
94
|
+
- Errors: see punit's `Outcome<T>` convention in the orchestrator
|
|
95
|
+
`CLAUDE.md` — that convention is Java-specific and does not transfer.
|
|
96
|
+
Python idiom uses exceptions for defects and, where an anticipated
|
|
97
|
+
negative outcome must not abort a longer-running process (e.g. one
|
|
98
|
+
sample among many), a plain data object — not a ported `Outcome` sealed
|
|
99
|
+
type or `Result`-style wrapper.
|
|
100
|
+
- Documentation and naming should read as Python: `snake_case` functions
|
|
101
|
+
and variables, `PascalCase` only for actual classes, no `I`-prefixed
|
|
102
|
+
interfaces, no Hungarian-notation leftovers. Do not reference Java,
|
|
103
|
+
JUnit, or punit's class names in docstrings or comments — write for a
|
|
104
|
+
Python audience that doesn't need to know the framework's origins.
|
|
105
|
+
- When in doubt, ask: "would a Python developer who has never seen punit
|
|
106
|
+
recognise this as normal, well-written Python?" If the answer is no,
|
|
107
|
+
the shape is wrong even if the math is right.
|
|
108
|
+
- Target Python 3.11+; use modern typing (`X | Y` unions, `list[str]`, no
|
|
109
|
+
`from __future__ import annotations` needed).
|
|
110
|
+
- Every public function and class carries type hints; `mypy --strict` must
|
|
111
|
+
pass.
|
|
112
|
+
- Every public module, class, and function carries a docstring
|
|
113
|
+
(Google or NumPy style — pick one and stay consistent within a module).
|
|
114
|
+
- Formatting and linting are enforced by `ruff` (see `[tool.ruff]` in
|
|
115
|
+
`pyproject.toml`), not by hand; do not hand-format around `ruff format`'s
|
|
116
|
+
output.
|
|
117
|
+
- Observe a consistent level of abstraction in any given unit of
|
|
118
|
+
functionality: a public method expressing high-level business logic should
|
|
119
|
+
not contain low-level detail (string parsing, file I/O) inline — delegate
|
|
120
|
+
to a helper that is tested in its own right. Small, trivial exceptions are
|
|
121
|
+
fine where the extra abstraction would not pay for itself.
|
|
122
|
+
- All non-trivial functionality is covered by unit tests; functionality
|
|
123
|
+
dependent on resources outside the test's control gets an integration test
|
|
124
|
+
instead, kept separately identifiable (e.g. `@pytest.mark.integration`).
|
|
125
|
+
- Construct test assertions as plain `assert` statements (pytest's assertion
|
|
126
|
+
rewriting gives readable failure output without a separate assertion
|
|
127
|
+
library).
|
|
128
|
+
|
|
129
|
+
## Requirement-code isolation
|
|
130
|
+
|
|
131
|
+
Internal feature-tracking codes used in orchestrator planning documents
|
|
132
|
+
(short letter-prefix codes such as `PT13`, `EX06`, `RP01`) must never appear
|
|
133
|
+
in this repository's source — production or test. A reader of this
|
|
134
|
+
open-source code has no context for them. Refer to features by their domain
|
|
135
|
+
name ("baseline integrity check", "passing-only latency block") instead.
|
|
136
|
+
|
|
137
|
+
## License and contributions
|
|
138
|
+
|
|
139
|
+
Apache License 2.0 (see `LICENSE`). Contributions require a `Signed-off-by`
|
|
140
|
+
line per the Developer Certificate of Origin — see `CONTRIBUTING.md` and
|
|
141
|
+
`dco.txt`.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Contributing to baseltest
|
|
2
|
+
|
|
3
|
+
Thank you for your interest in contributing to baseltest. This document
|
|
4
|
+
describes how to submit contributions and the legal terms that apply.
|
|
5
|
+
|
|
6
|
+
## License
|
|
7
|
+
|
|
8
|
+
baseltest is licensed under the [Apache License, Version 2.0](LICENSE).
|
|
9
|
+
All contributions are accepted under the same license.
|
|
10
|
+
|
|
11
|
+
## Developer Certificate of Origin
|
|
12
|
+
|
|
13
|
+
All contributions are subject to the
|
|
14
|
+
[Developer Certificate of Origin (DCO)](https://developercertificate.org/).
|
|
15
|
+
The DCO text is available verbatim in the [dco.txt](dco.txt) file in the
|
|
16
|
+
root of this repository.
|
|
17
|
+
|
|
18
|
+
By signing off your commits, you certify that you wrote the contribution
|
|
19
|
+
or otherwise have the right to submit it under the project's license. No
|
|
20
|
+
separate contributor agreement is required.
|
|
21
|
+
|
|
22
|
+
### Signing your commits
|
|
23
|
+
|
|
24
|
+
Add a `Signed-off-by` line to every commit message:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Signed-off-by: Your Name <your.email@example.com>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The easiest way is to use the `-s` (or `--signoff`) flag with `git commit`:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
git commit -s -m "Your commit message"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The name and email must match the values configured in your git
|
|
37
|
+
identity (`git config user.name` and `git config user.email`).
|
|
38
|
+
|
|
39
|
+
To sign off a series of existing commits before pushing, use:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
git rebase --signoff <base-branch>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Unsigned commits will be blocked by automated checks on pull requests.
|
|
46
|
+
|
|
47
|
+
## Reporting issues
|
|
48
|
+
|
|
49
|
+
Please use [GitHub Issues](https://github.com/mavai-org/baseltest/issues) for
|
|
50
|
+
bug reports and feature requests. Include a minimal reproducer where
|
|
51
|
+
possible.
|
|
52
|
+
|
|
53
|
+
## Pull requests
|
|
54
|
+
|
|
55
|
+
- Fork the repository and create a topic branch from `main`.
|
|
56
|
+
- Keep changes focused; one logical change per pull request.
|
|
57
|
+
- Ensure all commits are signed off (see above).
|
|
58
|
+
- Run the test suite locally (`pytest`) and the linters (`ruff check`,
|
|
59
|
+
`ruff format --check`, `mypy src`) before opening the pull request.
|
|
60
|
+
- Reference any related issue in the pull request description.
|