pcq 3.0.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.
- pcq-3.0.0/.gitignore +36 -0
- pcq-3.0.0/.gitlab-ci.yml +51 -0
- pcq-3.0.0/CHANGELOG.md +996 -0
- pcq-3.0.0/LICENSE +201 -0
- pcq-3.0.0/PKG-INFO +1385 -0
- pcq-3.0.0/README.md +1348 -0
- pcq-3.0.0/docs/AGENT_ACCEPTANCE_CHECKLIST.md +216 -0
- pcq-3.0.0/docs/AGENT_OPERABILITY.md +1554 -0
- pcq-3.0.0/docs/AGENT_OPERATING_GUIDE.md +664 -0
- pcq-3.0.0/docs/ATOM_REGISTRY.md +1247 -0
- pcq-3.0.0/docs/CQ_MCP_SPEC.md +537 -0
- pcq-3.0.0/docs/CQ_YAML_RUNTIME_CONTRACT.md +323 -0
- pcq-3.0.0/docs/JSON_CONTRACTS.md +234 -0
- pcq-3.0.0/docs/PCQ_COMPLETION_ROADMAP.md +581 -0
- pcq-3.0.0/docs/RUN_RECORD.md +488 -0
- pcq-3.0.0/docs/SPEC.md +604 -0
- pcq-3.0.0/docs/STRICTNESS.md +147 -0
- pcq-3.0.0/docs/VISION.md +281 -0
- pcq-3.0.0/docs/WORKER_EXECUTION_FLOW.md +291 -0
- pcq-3.0.0/docs/case-studies/mnist-dogfood-2026-05-08.md +168 -0
- pcq-3.0.0/examples/.gitkeep +0 -0
- pcq-3.0.0/examples/contract_numpy.cq.yaml +26 -0
- pcq-3.0.0/examples/contract_numpy.py +77 -0
- pcq-3.0.0/examples/contract_sklearn.cq.yaml +17 -0
- pcq-3.0.0/examples/contract_sklearn.py +55 -0
- pcq-3.0.0/examples/cq.yaml +25 -0
- pcq-3.0.0/examples/train.py +17 -0
- pcq-3.0.0/pyproject.toml +53 -0
- pcq-3.0.0/scripts/release-smoke.sh +182 -0
- pcq-3.0.0/skills/pcq/SKILL.md +243 -0
- pcq-3.0.0/src/pcq/__init__.py +133 -0
- pcq-3.0.0/src/pcq/_registry.py +17 -0
- pcq-3.0.0/src/pcq/agent/__init__.py +264 -0
- pcq-3.0.0/src/pcq/agent/apply.py +601 -0
- pcq-3.0.0/src/pcq/agent/compare.py +631 -0
- pcq-3.0.0/src/pcq/agent/describe.py +363 -0
- pcq-3.0.0/src/pcq/agent/failure_classifier.py +57 -0
- pcq-3.0.0/src/pcq/agent/init.py +424 -0
- pcq-3.0.0/src/pcq/agent/inspect.py +423 -0
- pcq-3.0.0/src/pcq/agent/install.py +631 -0
- pcq-3.0.0/src/pcq/agent/json_contracts.py +373 -0
- pcq-3.0.0/src/pcq/agent/lineage.py +237 -0
- pcq-3.0.0/src/pcq/agent/plan.py +380 -0
- pcq-3.0.0/src/pcq/agent/resolver.py +400 -0
- pcq-3.0.0/src/pcq/agent/run_record.py +273 -0
- pcq-3.0.0/src/pcq/agent/scaffold.py +453 -0
- pcq-3.0.0/src/pcq/agent/schema.py +331 -0
- pcq-3.0.0/src/pcq/agent/smoke.py +260 -0
- pcq-3.0.0/src/pcq/agent/strictness.py +170 -0
- pcq-3.0.0/src/pcq/agent/summary.py +191 -0
- pcq-3.0.0/src/pcq/agent/validate.py +1260 -0
- pcq-3.0.0/src/pcq/agent/validate_run.py +711 -0
- pcq-3.0.0/src/pcq/agent/yaml_io.py +480 -0
- pcq-3.0.0/src/pcq/agent_assets/AGENTS.pcq.md +77 -0
- pcq-3.0.0/src/pcq/agent_assets/__init__.py +1 -0
- pcq-3.0.0/src/pcq/agent_assets/skills/pcq/SKILL.md +243 -0
- pcq-3.0.0/src/pcq/cli.py +1385 -0
- pcq-3.0.0/src/pcq/contract.py +1178 -0
- pcq-3.0.0/src/pcq/core.py +266 -0
- pcq-3.0.0/src/pcq/datasets.py +28 -0
- pcq-3.0.0/src/pcq/examples/__init__.py +53 -0
- pcq-3.0.0/src/pcq/examples/datasets.py +522 -0
- pcq-3.0.0/src/pcq/examples/models.py +397 -0
- pcq-3.0.0/src/pcq/examples/optim.py +52 -0
- pcq-3.0.0/src/pcq/examples/sched.py +77 -0
- pcq-3.0.0/src/pcq/experiment.py +557 -0
- pcq-3.0.0/src/pcq/loss.py +214 -0
- pcq-3.0.0/src/pcq/metric/__init__.py +35 -0
- pcq-3.0.0/src/pcq/metric/functional.py +237 -0
- pcq-3.0.0/src/pcq/metric/stateful.py +83 -0
- pcq-3.0.0/src/pcq/models.py +28 -0
- pcq-3.0.0/src/pcq/optim.py +13 -0
- pcq-3.0.0/src/pcq/recipes/__init__.py +1 -0
- pcq-3.0.0/src/pcq/recipes/nlp/__init__.py +1 -0
- pcq-3.0.0/src/pcq/recipes/nlp/fake_text_classifier.py +47 -0
- pcq-3.0.0/src/pcq/recipes/vision/__init__.py +1 -0
- pcq-3.0.0/src/pcq/recipes/vision/cifar10_resnet18.py +52 -0
- pcq-3.0.0/src/pcq/recipes/vision/cifar10_smallcnn_baseline.py +52 -0
- pcq-3.0.0/src/pcq/recipes/vision/fake_smoke.py +46 -0
- pcq-3.0.0/src/pcq/recipes/vision/mnist_mlp.py +56 -0
- pcq-3.0.0/src/pcq/recipes/vision/seg/__init__.py +1 -0
- pcq-3.0.0/src/pcq/recipes/vision/seg/fake_seg_smoke.py +46 -0
- pcq-3.0.0/src/pcq/recipes/vision/seg/voc_unet.py +67 -0
- pcq-3.0.0/src/pcq/registry/__init__.py +143 -0
- pcq-3.0.0/src/pcq/registry/loader.py +162 -0
- pcq-3.0.0/src/pcq/registry/spec.py +215 -0
- pcq-3.0.0/src/pcq/sched.py +13 -0
- pcq-3.0.0/src/pcq/testing.py +232 -0
- pcq-3.0.0/src/pcq/trainer.py +387 -0
- pcq-3.0.0/templates/AGENTS.pcq.md +77 -0
- pcq-3.0.0/tests/__init__.py +0 -0
- pcq-3.0.0/tests/test_acceptance.py +85 -0
- pcq-3.0.0/tests/test_agent_inspect.py +56 -0
- pcq-3.0.0/tests/test_agent_install.py +307 -0
- pcq-3.0.0/tests/test_agent_meta.py +142 -0
- pcq-3.0.0/tests/test_agent_summary.py +80 -0
- pcq-3.0.0/tests/test_agent_validate.py +104 -0
- pcq-3.0.0/tests/test_apply_plan.py +614 -0
- pcq-3.0.0/tests/test_atom_role.py +106 -0
- pcq-3.0.0/tests/test_atom_source.py +48 -0
- pcq-3.0.0/tests/test_atom_spec.py +140 -0
- pcq-3.0.0/tests/test_atom_validation.py +181 -0
- pcq-3.0.0/tests/test_atoms.py +397 -0
- pcq-3.0.0/tests/test_atoms_meta.py +179 -0
- pcq-3.0.0/tests/test_cli.py +977 -0
- pcq-3.0.0/tests/test_compare_runs.py +453 -0
- pcq-3.0.0/tests/test_compare_runs_config.py +140 -0
- pcq-3.0.0/tests/test_config_fallback.py +134 -0
- pcq-3.0.0/tests/test_contract_helpers.py +105 -0
- pcq-3.0.0/tests/test_core.py +263 -0
- pcq-3.0.0/tests/test_describe_run.py +226 -0
- pcq-3.0.0/tests/test_examples_namespace.py +118 -0
- pcq-3.0.0/tests/test_experiment.py +673 -0
- pcq-3.0.0/tests/test_failure_classifier.py +72 -0
- pcq-3.0.0/tests/test_failure_envelope.py +214 -0
- pcq-3.0.0/tests/test_framework_neutral_examples.py +77 -0
- pcq-3.0.0/tests/test_golden_e2e.py +430 -0
- pcq-3.0.0/tests/test_init_experiment.py +94 -0
- pcq-3.0.0/tests/test_init_styles.py +154 -0
- pcq-3.0.0/tests/test_inspect_empty_dir.py +95 -0
- pcq-3.0.0/tests/test_inspect_manifest_schema.py +89 -0
- pcq-3.0.0/tests/test_inspect_script_aware.py +115 -0
- pcq-3.0.0/tests/test_inspect_structured_yaml.py +151 -0
- pcq-3.0.0/tests/test_integration.py +130 -0
- pcq-3.0.0/tests/test_json_contracts.py +117 -0
- pcq-3.0.0/tests/test_lineage.py +342 -0
- pcq-3.0.0/tests/test_load_project_atoms.py +101 -0
- pcq-3.0.0/tests/test_manifest_v2.py +119 -0
- pcq-3.0.0/tests/test_metric.py +111 -0
- pcq-3.0.0/tests/test_partial_run_record.py +259 -0
- pcq-3.0.0/tests/test_pcq_run.py +190 -0
- pcq-3.0.0/tests/test_plan_schema.py +350 -0
- pcq-3.0.0/tests/test_planset.py +251 -0
- pcq-3.0.0/tests/test_planset_output_dir.py +157 -0
- pcq-3.0.0/tests/test_recipe_spec.py +151 -0
- pcq-3.0.0/tests/test_recipes.py +119 -0
- pcq-3.0.0/tests/test_registry.py +86 -0
- pcq-3.0.0/tests/test_registry_meta.py +117 -0
- pcq-3.0.0/tests/test_resolver.py +210 -0
- pcq-3.0.0/tests/test_run_context_dod.py +341 -0
- pcq-3.0.0/tests/test_run_record.py +374 -0
- pcq-3.0.0/tests/test_scaffold.py +80 -0
- pcq-3.0.0/tests/test_smoke_atom.py +56 -0
- pcq-3.0.0/tests/test_strictness_matrix.py +84 -0
- pcq-3.0.0/tests/test_trainer.py +95 -0
- pcq-3.0.0/tests/test_trainer_from_cfg.py +81 -0
- pcq-3.0.0/tests/test_validate_inputs.py +90 -0
- pcq-3.0.0/tests/test_validate_local.py +94 -0
- pcq-3.0.0/tests/test_validate_manifest.py +175 -0
- pcq-3.0.0/tests/test_validate_metric_schema.py +150 -0
- pcq-3.0.0/tests/test_validate_plan_label_contract.py +155 -0
- pcq-3.0.0/tests/test_validate_run.py +236 -0
- pcq-3.0.0/tests/test_validate_run_rescan.py +159 -0
- pcq-3.0.0/tests/test_validate_script.py +95 -0
- pcq-3.0.0/tests/test_yaml_io.py +337 -0
- pcq-3.0.0/tests/test_yaml_strict.py +69 -0
- pcq-3.0.0/uv.lock +1509 -0
pcq-3.0.0/.gitignore
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
|
|
7
|
+
# uv / venv
|
|
8
|
+
.venv/
|
|
9
|
+
.python-version
|
|
10
|
+
|
|
11
|
+
# Build artifacts
|
|
12
|
+
build/
|
|
13
|
+
dist/
|
|
14
|
+
*.egg-info/
|
|
15
|
+
*.egg
|
|
16
|
+
|
|
17
|
+
# Test / coverage
|
|
18
|
+
.pytest_cache/
|
|
19
|
+
.ruff_cache/
|
|
20
|
+
.coverage
|
|
21
|
+
htmlcov/
|
|
22
|
+
|
|
23
|
+
# IDE
|
|
24
|
+
.vscode/
|
|
25
|
+
.idea/
|
|
26
|
+
.claude/
|
|
27
|
+
|
|
28
|
+
# OS
|
|
29
|
+
.DS_Store
|
|
30
|
+
|
|
31
|
+
# Runtime state (per-project, not committed)
|
|
32
|
+
.cq/
|
|
33
|
+
output/
|
|
34
|
+
|
|
35
|
+
# CI smoke output (cleaned by trap; ignored if leaked)
|
|
36
|
+
.smoke_e2e/
|
pcq-3.0.0/.gitlab-ci.yml
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# GitLab CI for pcq — runs on git.pilab.co.kr/pi/pcq
|
|
2
|
+
#
|
|
3
|
+
# Stages:
|
|
4
|
+
# lint — ruff
|
|
5
|
+
# test — pytest (unit + integration + acceptance)
|
|
6
|
+
# smoke — end-to-end release-smoke.sh
|
|
7
|
+
|
|
8
|
+
default:
|
|
9
|
+
image: python:3.12-slim
|
|
10
|
+
before_script:
|
|
11
|
+
- apt-get update -qq
|
|
12
|
+
- apt-get install -y --no-install-recommends git curl ca-certificates
|
|
13
|
+
- curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
14
|
+
- export PATH="$HOME/.local/bin:$PATH"
|
|
15
|
+
- uv --version
|
|
16
|
+
- uv sync --extra dev
|
|
17
|
+
cache:
|
|
18
|
+
key:
|
|
19
|
+
files:
|
|
20
|
+
- uv.lock
|
|
21
|
+
paths:
|
|
22
|
+
- .venv/
|
|
23
|
+
- ~/.cache/uv/
|
|
24
|
+
|
|
25
|
+
stages:
|
|
26
|
+
- lint
|
|
27
|
+
- test
|
|
28
|
+
- smoke
|
|
29
|
+
|
|
30
|
+
lint:
|
|
31
|
+
stage: lint
|
|
32
|
+
script:
|
|
33
|
+
- export PATH="$HOME/.local/bin:$PATH"
|
|
34
|
+
- uv run ruff check src/ tests/ scripts/
|
|
35
|
+
|
|
36
|
+
test:
|
|
37
|
+
stage: test
|
|
38
|
+
script:
|
|
39
|
+
- export PATH="$HOME/.local/bin:$PATH"
|
|
40
|
+
- uv run pytest tests/ -v --tb=short
|
|
41
|
+
|
|
42
|
+
smoke:
|
|
43
|
+
stage: smoke
|
|
44
|
+
script:
|
|
45
|
+
- export PATH="$HOME/.local/bin:$PATH"
|
|
46
|
+
- bash scripts/release-smoke.sh
|
|
47
|
+
artifacts:
|
|
48
|
+
when: on_failure
|
|
49
|
+
paths:
|
|
50
|
+
- .smoke_e2e/
|
|
51
|
+
expire_in: 1 week
|