From 3d133faecd4af00d4d44590247cccc3c75761222 Mon Sep 17 00:00:00 2001 From: Ali Date: Mon, 31 Aug 2026 13:23:10 -0400 Subject: [PATCH 1/5] Fix installed SciPy example resources --- src/phaseprobe/config.py | 44 +++++++++++-- .../data/examples/scipy-lorenz-negative.json | 54 ++++++++++++++++ .../data/examples/scipy-lorenz.json | 54 ++++++++++++++++ .../examples/scipy-predator-prey-coarse.json | 45 +++++++++++++ .../data/examples/scipy-predator-prey.json | 45 +++++++++++++ tests/test_config.py | 64 +++++++++++++++---- tests/test_scipy_adapter.py | 10 +-- 7 files changed, 292 insertions(+), 24 deletions(-) create mode 100644 src/phaseprobe/data/examples/scipy-lorenz-negative.json create mode 100644 src/phaseprobe/data/examples/scipy-lorenz.json create mode 100644 src/phaseprobe/data/examples/scipy-predator-prey-coarse.json create mode 100644 src/phaseprobe/data/examples/scipy-predator-prey.json diff --git a/src/phaseprobe/config.py b/src/phaseprobe/config.py index 585eb80..64fc9f3 100644 --- a/src/phaseprobe/config.py +++ b/src/phaseprobe/config.py @@ -6,7 +6,7 @@ import re from collections.abc import Mapping from dataclasses import dataclass -from importlib import resources +from importlib import metadata, resources from pathlib import Path from typing import Any, cast @@ -117,16 +117,48 @@ def load_config(path: Path) -> ProbeConfig: "predator-prey-negative": "predator-prey-negative.json", "toggle": "toggle-perturb.json", "toggle-negative": "toggle-negative.json", + "scipy-lorenz": "scipy-lorenz.json", + "scipy-lorenz-negative": "scipy-lorenz-negative.json", + "scipy-predator-prey": "scipy-predator-prey.json", + "scipy-predator-prey-coarse": "scipy-predator-prey-coarse.json", } +def _installed_version() -> str: + try: + return metadata.version("phaseprobe") + except metadata.PackageNotFoundError: + return "unknown" + + +def _example_help() -> str: + choices = ", ".join(sorted(EXAMPLE_FILES)) + return ( + f"valid built-in examples are: {choices}; " + "run 'phaseprobe --help' to list them" + ) + + def load_example(name: str) -> ProbeConfig: """Load one of the immutable examples embedded in the installed wheel.""" filename = EXAMPLE_FILES.get(name) if filename is None: - choices = ", ".join(sorted(EXAMPLE_FILES)) - raise ConfigurationError(f"unknown example {name!r}; choose one of: {choices}") - package = resources.files("phaseprobe.data.examples") - text = package.joinpath(filename).read_text(encoding="utf-8") - return parse_config(text, f"built-in example {name}") + raise ConfigurationError(f"unknown example {name!r}; {_example_help()}") + try: + package = resources.files("phaseprobe.data.examples") + text = package.joinpath(filename).read_text(encoding="utf-8") + except (FileNotFoundError, ModuleNotFoundError, OSError) as exc: + raise ConfigurationError( + f"cannot load built-in example {name!r} for execution " + f"(PhaseProbe {_installed_version()}): packaged resource {filename!r} is unavailable; " + f"{_example_help()}. Reinstall PhaseProbe from a complete wheel or source archive." + ) from exc + try: + return parse_config(text, f"built-in example {name}") + except (ConfigurationError, UnicodeError) as exc: + raise ConfigurationError( + f"cannot load built-in example {name!r} for execution " + f"(PhaseProbe {_installed_version()}): packaged resource {filename!r} is malformed: " + f"{exc}; {_example_help()}" + ) from exc diff --git a/src/phaseprobe/data/examples/scipy-lorenz-negative.json b/src/phaseprobe/data/examples/scipy-lorenz-negative.json new file mode 100644 index 0000000..d875461 --- /dev/null +++ b/src/phaseprobe/data/examples/scipy-lorenz-negative.json @@ -0,0 +1,54 @@ +{ + "schema_version": "2.0", + "model": "lorenz-scipy", + "seed": 23, + "adapter": { + "kind": "python", + "module": "phaseprobe.examples.scipy_models", + "factory": "lorenz_adapter", + "options": { + "identity": "phaseprobe-lorenz-scipy-v1", + "state_names": ["x", "y", "z"], + "initial_state": [1.0, 1.0, 1.0], + "t_span": [0.0, 5.0], + "t_eval": {"kind": "linspace", "points": 401}, + "method": "DOP853", + "rtol": 1e-9, + "atol": 1e-12, + "max_step": 0.05, + "vectorized": false, + "dense_output": false + } + }, + "parameters": {"sigma": 10.0, "rho": 28.0, "beta": 2.6666666666666665}, + "simulation": {"trace_cap": 401, "hard_state_limit": 1000.0}, + "tolerances": {"state_bound": 100.0}, + "perturb": { + "dimension": "x", + "start": 1e-9, + "stop": 1e-5, + "points": 5, + "scale": "log", + "predicate": "finite-time-divergence", + "divergence_threshold": 1.0, + "refine_iterations": 0, + "repeatability": 2 + }, + "replay": { + "mode": "tolerance", + "state_atol": 1e-6, + "state_rtol": 1e-6, + "observable_atol": {"x": 1e-6, "y": 1e-6, "z": 1e-6, "radius": 2e-6}, + "invariant_measure_atol": 1e-6, + "endpoint_time_atol": 1e-10, + "event_time_atol": 1e-8, + "retained_grid_time_atol": 1e-12, + "max_unmatched_points": 0, + "expected_solver_success": true, + "require_classifier": true, + "require_invariants": true + }, + "classification_rule": "Short-window negative control for the same finite-time trajectory-distance predicate.", + "refinement_rule": "Evaluate only the declared bounded perturbation grid.", + "invalid_state_policy": "Abort on solver failure, invalid shape, NaN, infinity, or the declared hard-state-limit breach." +} diff --git a/src/phaseprobe/data/examples/scipy-lorenz.json b/src/phaseprobe/data/examples/scipy-lorenz.json new file mode 100644 index 0000000..af26441 --- /dev/null +++ b/src/phaseprobe/data/examples/scipy-lorenz.json @@ -0,0 +1,54 @@ +{ + "schema_version": "2.0", + "model": "lorenz-scipy", + "seed": 23, + "adapter": { + "kind": "python", + "module": "phaseprobe.examples.scipy_models", + "factory": "lorenz_adapter", + "options": { + "identity": "phaseprobe-lorenz-scipy-v1", + "state_names": ["x", "y", "z"], + "initial_state": [1.0, 1.0, 1.0], + "t_span": [0.0, 25.0], + "t_eval": {"kind": "linspace", "points": 1001}, + "method": "DOP853", + "rtol": 1e-9, + "atol": 1e-12, + "max_step": 0.05, + "vectorized": false, + "dense_output": false + } + }, + "parameters": {"sigma": 10.0, "rho": 28.0, "beta": 2.6666666666666665}, + "simulation": {"trace_cap": 1001, "hard_state_limit": 1000.0}, + "tolerances": {"state_bound": 100.0}, + "perturb": { + "dimension": "x", + "start": 1e-9, + "stop": 1e-5, + "points": 5, + "scale": "log", + "predicate": "finite-time-divergence", + "divergence_threshold": 1.0, + "refine_iterations": 6, + "repeatability": 2 + }, + "replay": { + "mode": "tolerance", + "state_atol": 1e-6, + "state_rtol": 1e-6, + "observable_atol": {"x": 1e-6, "y": 1e-6, "z": 1e-6, "radius": 2e-6}, + "invariant_measure_atol": 1e-6, + "endpoint_time_atol": 1e-10, + "event_time_atol": 1e-8, + "retained_grid_time_atol": 1e-12, + "max_unmatched_points": 0, + "expected_solver_success": true, + "require_classifier": true, + "require_invariants": true + }, + "classification_rule": "Classify only boundedness over the declared finite window; the finding is twin-trajectory separation, not a proof of chaos.", + "refinement_rule": "Search the declared positive x perturbations and repeat the smallest threshold crossing found in the bounded grid.", + "invalid_state_policy": "Abort on solver failure, invalid shape, NaN, infinity, or the declared hard-state-limit breach." +} diff --git a/src/phaseprobe/data/examples/scipy-predator-prey-coarse.json b/src/phaseprobe/data/examples/scipy-predator-prey-coarse.json new file mode 100644 index 0000000..f65358f --- /dev/null +++ b/src/phaseprobe/data/examples/scipy-predator-prey-coarse.json @@ -0,0 +1,45 @@ +{ + "schema_version": "2.0", + "model": "predator-prey-scipy", + "seed": 31, + "adapter": { + "kind": "python", + "module": "phaseprobe.examples.scipy_models", + "factory": "predator_prey_adapter", + "options": { + "identity": "phaseprobe-predator-prey-scipy-v1", + "state_names": ["prey", "predator"], + "initial_state": [10.0, 5.0], + "t_span": [0.0, 30.0], + "t_eval": {"kind": "linspace", "points": 301}, + "method": "RK23", + "rtol": 0.01, + "atol": 0.0001, + "max_step": 2.0, + "vectorized": false, + "dense_output": false + } + }, + "parameters": {"alpha": 1.1, "beta": 0.4, "delta": 0.1, "gamma": 0.4}, + "simulation": {"trace_cap": 301, "hard_state_limit": 1000.0}, + "tolerances": {"invariant_drift": 0.001}, + "check": {"analysis": "invariants"}, + "policy": {"forbid_findings": true, "require_finding": false, "require_invariants": true}, + "replay": { + "mode": "tolerance", + "state_atol": 1e-5, + "state_rtol": 1e-5, + "observable_atol": {"prey": 1e-5, "predator": 1e-5, "first_integral": 1e-5}, + "invariant_measure_atol": 1e-5, + "endpoint_time_atol": 1e-9, + "event_time_atol": 1e-7, + "retained_grid_time_atol": 1e-12, + "max_unmatched_points": 0, + "expected_solver_success": true, + "require_classifier": true, + "require_invariants": true + }, + "classification_rule": "Deliberately loose/coarse negative control; positivity alone does not satisfy the invariant policy.", + "refinement_rule": "Compare its first-integral drift with the tight DOP853 configuration.", + "invalid_state_policy": "Abort on solver failure, invalid shape, NaN, infinity, or non-finite observables." +} diff --git a/src/phaseprobe/data/examples/scipy-predator-prey.json b/src/phaseprobe/data/examples/scipy-predator-prey.json new file mode 100644 index 0000000..d5de4e3 --- /dev/null +++ b/src/phaseprobe/data/examples/scipy-predator-prey.json @@ -0,0 +1,45 @@ +{ + "schema_version": "2.0", + "model": "predator-prey-scipy", + "seed": 31, + "adapter": { + "kind": "python", + "module": "phaseprobe.examples.scipy_models", + "factory": "predator_prey_adapter", + "options": { + "identity": "phaseprobe-predator-prey-scipy-v1", + "state_names": ["prey", "predator"], + "initial_state": [10.0, 5.0], + "t_span": [0.0, 30.0], + "t_eval": {"kind": "linspace", "points": 1201}, + "method": "DOP853", + "rtol": 1e-10, + "atol": [1e-12, 1e-12], + "max_step": 0.05, + "vectorized": false, + "dense_output": false + } + }, + "parameters": {"alpha": 1.1, "beta": 0.4, "delta": 0.1, "gamma": 0.4}, + "simulation": {"trace_cap": 1201, "hard_state_limit": 1000.0}, + "tolerances": {"invariant_drift": 1e-8}, + "check": {"analysis": "invariants"}, + "policy": {"forbid_findings": true, "require_finding": false, "require_invariants": true}, + "replay": { + "mode": "tolerance", + "state_atol": 1e-7, + "state_rtol": 1e-7, + "observable_atol": {"prey": 1e-7, "predator": 1e-7, "first_integral": 1e-8}, + "invariant_measure_atol": 1e-8, + "endpoint_time_atol": 1e-10, + "event_time_atol": 1e-8, + "retained_grid_time_atol": 1e-12, + "max_unmatched_points": 0, + "expected_solver_success": true, + "require_classifier": true, + "require_invariants": true + }, + "classification_rule": "Require both populations to remain positive over the declared retained grid.", + "refinement_rule": "DOP853 with tight tolerances and a bounded maximum step; compare with the committed coarse negative control.", + "invalid_state_policy": "Abort on solver failure, invalid shape, NaN, infinity, or non-finite observables." +} diff --git a/tests/test_config.py b/tests/test_config.py index ea2c168..2c268af 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -7,7 +7,14 @@ import pytest -from phaseprobe.config import canonical_json, load_config, load_example, parse_config +from phaseprobe.config import ( + EXAMPLE_FILES, + SUPPORTED_CONFIG_SCHEMA_VERSIONS, + canonical_json, + load_config, + load_example, + parse_config, +) from phaseprobe.errors import ConfigurationError from phaseprobe.models import get_model, model_names from phaseprobe.types import ModelAdapter @@ -38,24 +45,55 @@ def test_load_config_reports_missing_file(tmp_path: Path) -> None: def test_all_built_in_examples_are_versioned_json() -> None: - for name in ( - "logistic", - "logistic-negative", - "lorenz", - "lorenz-negative", - "predator-prey", - "predator-prey-negative", - "toggle", - "toggle-negative", - ): + for name in EXAMPLE_FILES: config = load_example(name) - assert config.data["schema_version"] == "1.0" + assert config.data["schema_version"] in SUPPORTED_CONFIG_SCHEMA_VERSIONS json.loads(canonical_json(config.data)) +@pytest.mark.parametrize( + ("name", "source_name"), + [ + ("scipy-lorenz", "lorenz.json"), + ("scipy-lorenz-negative", "lorenz-negative.json"), + ("scipy-predator-prey", "predator-prey.json"), + ("scipy-predator-prey-coarse", "predator-prey-coarse.json"), + ], +) +def test_packaged_scipy_examples_match_source_checkout_copies( + name: str, source_name: str +) -> None: + source = Path(__file__).resolve().parents[1] / "examples" / "scipy" / source_name + assert load_example(name).data == load_config(source).data + + def test_unknown_example_is_actionable() -> None: - with pytest.raises(ConfigurationError, match="unknown example"): + with pytest.raises(ConfigurationError, match="unknown example") as error: load_example("missing") + assert "phaseprobe --help" in str(error.value) + + +def test_missing_built_in_resource_is_actionable( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch +) -> None: + monkeypatch.setattr("phaseprobe.config.resources.files", lambda package: tmp_path) + with pytest.raises(ConfigurationError, match="packaged resource") as error: + load_example("scipy-lorenz") + message = str(error.value) + assert "PhaseProbe" in message + assert "scipy-lorenz.json" in message + assert "Reinstall PhaseProbe" in message + assert "phaseprobe --help" in message + + +def test_malformed_built_in_resource_is_actionable( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch +) -> None: + (tmp_path / "scipy-lorenz.json").write_text("{}", encoding="utf-8") + monkeypatch.setattr("phaseprobe.config.resources.files", lambda package: tmp_path) + with pytest.raises(ConfigurationError, match="malformed") as error: + load_example("scipy-lorenz") + assert "unsupported configuration schema" in str(error.value) def test_registry_models_implement_protocol() -> None: diff --git a/tests/test_scipy_adapter.py b/tests/test_scipy_adapter.py index 6180af6..c972c13 100644 --- a/tests/test_scipy_adapter.py +++ b/tests/test_scipy_adapter.py @@ -20,7 +20,7 @@ from phaseprobe import run_perturbation, run_simulation from phaseprobe.adapters.scipy import EventSpec, SolveIVPAdapter from phaseprobe.artifacts import write_artifacts -from phaseprobe.config import ProbeConfig, load_config, parse_config +from phaseprobe.config import ProbeConfig, load_example, parse_config from phaseprobe.engine import ProbeOutcome, run_check, run_perturb, simulate from phaseprobe.errors import ConfigurationError, NumericalFailure from phaseprobe.generate import generate_regression_test @@ -424,22 +424,22 @@ def test_engine_enforces_bounded_trace_retention() -> None: @pytest.fixture(scope="session") def lorenz_positive() -> ProbeOutcome: - return run_perturb(load_config(ROOT / "examples" / "scipy" / "lorenz.json")) + return run_perturb(load_example("scipy-lorenz")) @pytest.fixture(scope="session") def lorenz_negative() -> ProbeOutcome: - return run_perturb(load_config(ROOT / "examples" / "scipy" / "lorenz-negative.json")) + return run_perturb(load_example("scipy-lorenz-negative")) @pytest.fixture(scope="session") def predator_prey_tight() -> ProbeOutcome: - return run_check(load_config(ROOT / "examples" / "scipy" / "predator-prey.json")) + return run_check(load_example("scipy-predator-prey")) @pytest.fixture(scope="session") def predator_prey_coarse() -> ProbeOutcome: - return run_check(load_config(ROOT / "examples" / "scipy" / "predator-prey-coarse.json")) + return run_check(load_example("scipy-predator-prey-coarse")) def test_lorenz_positive_is_only_finite_time_divergence(lorenz_positive: ProbeOutcome) -> None: From ca10b746b6a3da4eb357861ddd8ac848287efa5c Mon Sep 17 00:00:00 2001 From: Ali Date: Mon, 31 Aug 2026 13:35:51 -0400 Subject: [PATCH 2/5] Gate releases on installed wheel and sdist --- .github/workflows/ci.yml | 34 +++-- .github/workflows/publish-pypi.yml | 26 +++- .github/workflows/release.yml | 11 +- scripts/audit_package.py | 40 +++++- scripts/installed_smoke.py | 168 ++++++++++++++++++++++ scripts/verify_artifacts.py | 221 +++++++++++++++++++++++++++++ src/phaseprobe/py.typed | 1 + tests/test_config.py | 11 +- 8 files changed, 487 insertions(+), 25 deletions(-) create mode 100644 scripts/installed_smoke.py create mode 100644 scripts/verify_artifacts.py create mode 100644 src/phaseprobe/py.typed diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 52fa332..d07e213 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,8 +50,8 @@ jobs: - run: python -m ruff check . - run: python -m mypy src tests - run: python -m pytest --cov=phaseprobe --cov-report=term - - run: python -m phaseprobe perturb --config examples/scipy/lorenz-negative.json - - run: python -m phaseprobe check --config examples/scipy/predator-prey.json + - run: python -m phaseprobe perturb --example scipy-lorenz-negative + - run: python -m phaseprobe check --example scipy-predator-prey package-and-hygiene: runs-on: ubuntu-latest @@ -65,14 +65,10 @@ jobs: - run: python -m build - run: python -m twine check dist/* - run: python scripts/audit_package.py - - run: python -m venv .cache/packed-smoke - - run: .cache/packed-smoke/bin/python -m pip install dist/*.whl - - run: .cache/packed-smoke/bin/python -m phaseprobe --version - - run: .cache/packed-smoke/bin/python -m phaseprobe scan --example logistic-negative - - run: .cache/packed-smoke/bin/python -c "import importlib.util; assert importlib.util.find_spec('numpy') is None; assert importlib.util.find_spec('scipy') is None" - - run: python -m venv .cache/scipy-smoke - - run: .cache/scipy-smoke/bin/python -m pip install "$(find dist -name '*.whl')[scipy]" - - run: .cache/scipy-smoke/bin/python -m phaseprobe check --config examples/scipy/predator-prey.json + - run: >- + python scripts/verify_artifacts.py + --dist-dir dist + --work-root "${RUNNER_TEMP}/phaseprobe artifact gate" - run: python scripts/check_links.py - run: python scripts/hygiene.py - uses: actions/upload-artifact@v4 @@ -80,3 +76,21 @@ jobs: name: phaseprobe-packages path: dist/* if-no-files-found: error + + windows-artifact-install: + name: artifact install / windows / Python 3.12 + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + cache: pip + - run: python -m pip install --upgrade pip build twine + - run: python -m build + - run: python -m twine check dist/* + - run: python scripts/audit_package.py + - run: >- + python scripts/verify_artifacts.py + --dist-dir dist + --work-root "$env:RUNNER_TEMP\phaseprobe artifact gate" diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index 9b8f0bb..c9fe1f4 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -90,13 +90,15 @@ jobs: expected_version, wheel_path, sdist_path = sys.argv[1:] with zipfile.ZipFile(wheel_path) as archive: + wheel_names = set(archive.namelist()) metadata_names = [ - name for name in archive.namelist() if name.endswith(".dist-info/METADATA") + name for name in wheel_names if name.endswith(".dist-info/METADATA") ] assert len(metadata_names) == 1, metadata_names wheel_metadata = email.message_from_bytes(archive.read(metadata_names[0])) with tarfile.open(sdist_path, "r:gz") as archive: + sdist_names = {member.name for member in archive.getmembers()} metadata_members = [ member for member in archive.getmembers() @@ -107,6 +109,28 @@ jobs: assert extracted is not None sdist_metadata = email.message_from_bytes(extracted.read()) + runtime_files = { + "phaseprobe/data/examples/logistic-negative.json", + "phaseprobe/data/examples/logistic-scan.json", + "phaseprobe/data/examples/lorenz-negative.json", + "phaseprobe/data/examples/lorenz-perturb.json", + "phaseprobe/data/examples/predator-prey-check.json", + "phaseprobe/data/examples/predator-prey-negative.json", + "phaseprobe/data/examples/scipy-lorenz-negative.json", + "phaseprobe/data/examples/scipy-lorenz.json", + "phaseprobe/data/examples/scipy-predator-prey-coarse.json", + "phaseprobe/data/examples/scipy-predator-prey.json", + "phaseprobe/data/examples/toggle-negative.json", + "phaseprobe/data/examples/toggle-perturb.json", + "phaseprobe/py.typed", + } + assert not runtime_files - wheel_names, sorted(runtime_files - wheel_names) + sdist_roots = {name.split("/", 1)[0] for name in sdist_names if "/" in name} + assert len(sdist_roots) == 1, sorted(sdist_roots) + sdist_root = next(iter(sdist_roots)) + sdist_runtime_files = {f"{sdist_root}/src/{name}" for name in runtime_files} + assert not sdist_runtime_files - sdist_names, sorted(sdist_runtime_files - sdist_names) + for metadata in (wheel_metadata, sdist_metadata): assert metadata["Name"] == "phaseprobe" assert metadata["Version"] == expected_version diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e9bd329..a9f0c80 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,13 +20,10 @@ jobs: - run: python -m build - run: python -m twine check dist/* - run: python scripts/audit_package.py - - run: python -m venv .cache/tag-core-smoke - - run: .cache/tag-core-smoke/bin/python -m pip install dist/*.whl - - run: .cache/tag-core-smoke/bin/python -m phaseprobe --version - - run: .cache/tag-core-smoke/bin/python -m phaseprobe scan --example logistic - - run: python -m venv .cache/tag-scipy-smoke - - run: .cache/tag-scipy-smoke/bin/python -m pip install "$(find dist -name '*.whl')[scipy]" - - run: .cache/tag-scipy-smoke/bin/python -m phaseprobe check --config examples/scipy/predator-prey.json + - run: >- + python scripts/verify_artifacts.py + --dist-dir dist + --work-root "${RUNNER_TEMP}/phaseprobe tagged artifact gate" - run: python scripts/hygiene.py - uses: actions/upload-artifact@v4 with: diff --git a/scripts/audit_package.py b/scripts/audit_package.py index 9a03889..d2a8da9 100644 --- a/scripts/audit_package.py +++ b/scripts/audit_package.py @@ -2,6 +2,7 @@ from __future__ import annotations +import argparse import hashlib import json import tarfile @@ -10,6 +11,17 @@ ROOT = Path(__file__).resolve().parents[1] DIST = ROOT / "dist" +SOURCE_PACKAGE = ROOT / "src" / "phaseprobe" + + +def expected_runtime_files() -> set[str]: + """Return every non-Python file that must survive both build targets.""" + + return { + path.relative_to(ROOT / "src").as_posix() + for path in SOURCE_PACKAGE.rglob("*") + if path.is_file() and path.suffix != ".py" and "__pycache__" not in path.parts + } def sha256(path: Path) -> str: @@ -20,9 +32,9 @@ def sha256(path: Path) -> str: return digest.hexdigest() -def main() -> int: - wheels = sorted(DIST.glob("phaseprobe-*.whl")) - sdists = sorted(DIST.glob("phaseprobe-*.tar.gz")) +def main(dist: Path = DIST) -> int: + wheels = sorted(dist.glob("phaseprobe-*.whl")) + sdists = sorted(dist.glob("phaseprobe-*.tar.gz")) issues: list[str] = [] if len(wheels) != 1 or len(sdists) != 1: issues.append("dist must contain exactly one PhaseProbe wheel and one source archive") @@ -40,6 +52,10 @@ def main() -> int: else: metadata = archive.read(metadata_names[0]).decode("utf-8") wheel_members = len(names) + runtime_files = expected_runtime_files() + missing_wheel_runtime = sorted(runtime_files.difference(names)) + if missing_wheel_runtime: + issues.append(f"wheel is missing runtime files: {missing_wheel_runtime}") requirements = [ line.removeprefix("Requires-Dist: ") for line in metadata.splitlines() @@ -57,6 +73,16 @@ def main() -> int: issues.append("scipy extra does not declare SciPy") with tarfile.open(sdist, "r:gz") as archive: source_names = archive.getnames() + source_roots = {name.split("/", 1)[0] for name in source_names if "/" in name} + if len(source_roots) != 1: + issues.append(f"sdist must contain one top-level directory: {sorted(source_roots)}") + missing_sdist_runtime = sorted(runtime_files) + else: + source_root = next(iter(source_roots)) + expected_sdist_runtime = {f"{source_root}/src/{name}" for name in runtime_files} + missing_sdist_runtime = sorted(expected_sdist_runtime.difference(source_names)) + if missing_sdist_runtime: + issues.append(f"sdist is missing package runtime files: {missing_sdist_runtime}") forbidden = [ name for name in source_names @@ -69,6 +95,9 @@ def main() -> int: "schema_version": "1.0", "status": "PASS" if not issues else "FAIL", "base_runtime_dependencies": unconditional, + "expected_runtime_files": sorted(runtime_files), + "missing_wheel_runtime_files": missing_wheel_runtime, + "missing_sdist_runtime_files": missing_sdist_runtime, "scipy_extra_requirements": scipy_requirements, "wheel": { "name": wheel.name, @@ -89,4 +118,7 @@ def main() -> int: if __name__ == "__main__": - raise SystemExit(main()) + parser = argparse.ArgumentParser() + parser.add_argument("--dist-dir", type=Path, default=DIST) + arguments = parser.parse_args() + raise SystemExit(main(arguments.dist_dir.resolve())) diff --git a/scripts/installed_smoke.py b/scripts/installed_smoke.py new file mode 100644 index 0000000..8e08c57 --- /dev/null +++ b/scripts/installed_smoke.py @@ -0,0 +1,168 @@ +"""Exercise a PhaseProbe installation without importing from its source checkout.""" + +from __future__ import annotations + +import argparse +import json +import os +import subprocess +import sys +from pathlib import Path +from typing import Any + +import phaseprobe +from phaseprobe.config import EXAMPLE_FILES, load_example + + +def run_cli(cwd: Path, *arguments: str) -> str: + environment = os.environ.copy() + environment.pop("PYTHONPATH", None) + completed = subprocess.run( + [sys.executable, "-m", "phaseprobe", *arguments], + check=False, + capture_output=True, + cwd=cwd, + env=environment, + text=True, + timeout=180, + ) + if completed.returncode != 0: + raise RuntimeError( + f"phaseprobe {' '.join(arguments)} exited {completed.returncode}\n" + f"stdout:\n{completed.stdout}\nstderr:\n{completed.stderr}" + ) + return completed.stdout + + +def json_cli(cwd: Path, *arguments: str) -> dict[str, Any]: + output = run_cli(cwd, *arguments) + parsed = json.loads(output) + if not isinstance(parsed, dict): + raise RuntimeError(f"expected JSON object from {' '.join(arguments)}") + return parsed + + +def resolved_output_path(cwd: Path, value: object) -> Path: + if not isinstance(value, str): + raise RuntimeError(f"expected an artifact path, received {value!r}") + path = Path(value) + return (cwd / path).resolve() if not path.is_absolute() else path.resolve() + + +def main() -> int: + parser = argparse.ArgumentParser() + parser.add_argument("--repo-root", type=Path, required=True) + parser.add_argument("--expected-version", required=True) + args = parser.parse_args() + + repo_root = args.repo_root.resolve() + working_directory = Path.cwd().resolve() + module_path = Path(phaseprobe.__file__).resolve() + if module_path.is_relative_to(repo_root): + raise RuntimeError(f"source checkout shadowed installed package: {module_path}") + if working_directory.is_relative_to(repo_root): + raise RuntimeError( + f"smoke working directory is inside source checkout: {working_directory}" + ) + if phaseprobe.__version__ != args.expected_version: + raise RuntimeError( + f"expected PhaseProbe {args.expected_version}, imported {phaseprobe.__version__}" + ) + if os.environ.get("PYTHONPATH"): + raise RuntimeError("PYTHONPATH must be unset for installed-package verification") + + loaded_examples: dict[str, str] = {} + for name in EXAMPLE_FILES: + config = load_example(name) + loaded_examples[name] = str(config.data["schema_version"]) + + help_output = run_cli(working_directory, "perturb", "--help") + if "scipy-lorenz" not in help_output: + raise RuntimeError("installed CLI help does not list the SciPy built-in examples") + + scan = json_cli( + working_directory, + "scan", + "--example", + "logistic-negative", + "--output-root", + "scan runs", + "--json", + ) + artifacts = scan.get("artifacts") + if not isinstance(artifacts, dict): + raise RuntimeError("scan did not report artifact paths") + replay_fixture = resolved_output_path(working_directory, artifacts.get("replay")) + replay = json_cli(working_directory, "replay", str(replay_fixture), "--json") + + generated = json_cli( + working_directory, + "generate-test", + str(replay_fixture), + "--output-directory", + "generated tests", + "--json", + ) + test_path = resolved_output_path(working_directory, generated.get("test")) + source = test_path.read_text(encoding="utf-8") + for forbidden in (str(repo_root), str(working_directory)): + if forbidden in source: + raise RuntimeError(f"generated pytest contains machine-specific path {forbidden!r}") + pytest_result = subprocess.run( + [sys.executable, "-m", "pytest", "-q", test_path.name], + check=False, + capture_output=True, + cwd=test_path.parent, + env={key: value for key, value in os.environ.items() if key != "PYTHONPATH"}, + text=True, + timeout=180, + ) + if pytest_result.returncode != 0: + raise RuntimeError( + f"generated pytest exited {pytest_result.returncode}\n" + f"stdout:\n{pytest_result.stdout}\nstderr:\n{pytest_result.stderr}" + ) + + lorenz = json_cli( + working_directory, + "perturb", + "--example", + "scipy-lorenz", + "--output-root", + "lorenz runs", + "--json", + ) + predator_prey = json_cli( + working_directory, + "check", + "--example", + "scipy-predator-prey", + "--output-root", + "predator prey runs", + "--json", + ) + + print( + json.dumps( + { + "status": "PASS", + "phaseprobe_file": str(module_path), + "phaseprobe_version": phaseprobe.__version__, + "python_version": sys.version.split()[0], + "working_directory": str(working_directory), + "loaded_examples": loaded_examples, + "scan": scan.get("status"), + "replay": replay.get("status"), + "generated_pytest": pytest_result.stdout.strip(), + "lorenz": lorenz.get("status"), + "predator_prey": predator_prey.get("status"), + }, + indent=2, + sort_keys=True, + ) + ) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/verify_artifacts.py b/scripts/verify_artifacts.py new file mode 100644 index 0000000..07678ec --- /dev/null +++ b/scripts/verify_artifacts.py @@ -0,0 +1,221 @@ +"""Install wheel and sdist into fresh environments and run public smoke workflows.""" + +from __future__ import annotations + +import argparse +import json +import os +import subprocess +import venv +from pathlib import Path +from typing import Any + +ROOT = Path(__file__).resolve().parents[1] +SMOKE = ROOT / "scripts" / "installed_smoke.py" + + +def environment_python(environment: Path) -> Path: + if os.name == "nt": + return environment / "Scripts" / "python.exe" + return environment / "bin" / "python" + + +def run(command: list[str], *, cwd: Path, environment: dict[str, str]) -> str: + completed = subprocess.run( + command, + check=False, + capture_output=True, + cwd=cwd, + env=environment, + text=True, + timeout=600, + ) + if completed.returncode != 0: + raise RuntimeError( + f"command exited {completed.returncode}: {command!r}\n" + f"stdout:\n{completed.stdout}\nstderr:\n{completed.stderr}" + ) + return completed.stdout + + +def discover_one(directory: Path, pattern: str) -> Path: + matches = sorted(directory.glob(pattern)) + if len(matches) != 1: + raise RuntimeError(f"expected one {pattern} in {directory}, found {matches}") + return matches[0].resolve() + + +def project_version() -> str: + in_project = False + for raw_line in (ROOT / "pyproject.toml").read_text(encoding="utf-8").splitlines(): + line = raw_line.strip() + if line == "[project]": + in_project = True + continue + if in_project and line.startswith("["): + break + key, separator, value = line.partition("=") + if in_project and separator and key.strip() == "version": + parsed = json.loads(value.strip()) + if isinstance(parsed, str): + return parsed + break + raise RuntimeError("project.version must be a quoted string") + + +def verify_base_wheel( + artifact: Path, + work_root: Path, + expected_version: str, + base_environment: dict[str, str], +) -> dict[str, str]: + environment_directory = work_root / "base wheel environment" + smoke_directory = work_root / "base wheel unrelated working directory" + smoke_directory.mkdir() + venv.EnvBuilder(with_pip=True).create(environment_directory) + python = environment_python(environment_directory) + run( + [str(python), "-m", "pip", "install", "--disable-pip-version-check", str(artifact)], + cwd=smoke_directory, + environment=base_environment, + ) + identity = run( + [ + str(python), + "-I", + "-c", + ( + "import importlib.util, json, phaseprobe; " + "assert importlib.util.find_spec('numpy') is None; " + "assert importlib.util.find_spec('scipy') is None; " + f"assert phaseprobe.__version__ == {expected_version!r}; " + "print(json.dumps({'phaseprobe_file': phaseprobe.__file__, " + "'phaseprobe_version': phaseprobe.__version__}))" + ), + ], + cwd=smoke_directory, + environment=base_environment, + ) + scan = run( + [ + str(python), + "-m", + "phaseprobe", + "scan", + "--example", + "logistic-negative", + "--output-root", + "base scan runs", + "--json", + ], + cwd=smoke_directory, + environment=base_environment, + ) + pip_check = run( + [str(python), "-m", "pip", "check"], + cwd=smoke_directory, + environment=base_environment, + ) + return { + "identity": identity.strip(), + "scan": json.loads(scan)["status"], + "pip_check": pip_check.strip(), + } + + +def verify( + kind: str, + artifact: Path, + work_root: Path, + expected_version: str, + base_environment: dict[str, str], +) -> dict[str, Any]: + environment_directory = work_root / f"{kind} environment" + smoke_directory = work_root / f"{kind} unrelated working directory" + smoke_directory.mkdir() + venv.EnvBuilder(with_pip=True).create(environment_directory) + python = environment_python(environment_directory) + run( + [ + str(python), + "-m", + "pip", + "install", + "--disable-pip-version-check", + f"{artifact}[scipy]", + "pytest==8.4.1", + ], + cwd=smoke_directory, + environment=base_environment, + ) + pip_check = run( + [str(python), "-m", "pip", "check"], + cwd=smoke_directory, + environment=base_environment, + ).strip() + smoke_output = run( + [ + str(python), + str(SMOKE), + "--repo-root", + str(ROOT), + "--expected-version", + expected_version, + ], + cwd=smoke_directory, + environment=base_environment, + ) + smoke = json.loads(smoke_output) + if not isinstance(smoke, dict): + raise RuntimeError("installed smoke did not emit a JSON object") + return { + "artifact": str(artifact), + "pip_check": pip_check, + "smoke": smoke, + } + + +def main() -> int: + parser = argparse.ArgumentParser() + parser.add_argument("--dist-dir", type=Path, required=True) + parser.add_argument("--work-root", type=Path, required=True) + parser.add_argument("--expected-version") + parser.add_argument("--artifact", choices=("both", "wheel", "sdist"), default="both") + args = parser.parse_args() + + dist_directory = args.dist_dir.resolve() + work_root = args.work_root.resolve() + if work_root.exists(): + raise RuntimeError(f"work root already exists; refusing to overwrite it: {work_root}") + work_root.mkdir(parents=True) + temporary_directory = work_root / "temporary files" + cache_directory = work_root / "pip cache" + temporary_directory.mkdir() + cache_directory.mkdir() + environment = os.environ.copy() + environment.pop("PYTHONPATH", None) + environment["PYTHONNOUSERSITE"] = "1" + environment["PIP_CACHE_DIR"] = str(cache_directory) + environment["TEMP"] = str(temporary_directory) + environment["TMP"] = str(temporary_directory) + + expected_version = args.expected_version or project_version() + selected: list[tuple[str, Path]] = [] + wheel: Path | None = None + if args.artifact in {"both", "wheel"}: + wheel = discover_one(dist_directory, "phaseprobe-*.whl") + selected.append(("wheel", wheel)) + if args.artifact in {"both", "sdist"}: + selected.append(("sdist", discover_one(dist_directory, "phaseprobe-*.tar.gz"))) + results = { + kind: verify(kind, artifact, work_root, expected_version, environment) + for kind, artifact in selected + } + if wheel is not None: + results["base-wheel"] = verify_base_wheel(wheel, work_root, expected_version, environment) + print(json.dumps({"status": "PASS", "artifacts": results}, indent=2, sort_keys=True)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/src/phaseprobe/py.typed b/src/phaseprobe/py.typed new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/phaseprobe/py.typed @@ -0,0 +1 @@ + diff --git a/tests/test_config.py b/tests/test_config.py index 2c268af..6fc4181 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -3,6 +3,7 @@ from __future__ import annotations import json +from importlib import resources from pathlib import Path import pytest @@ -51,6 +52,12 @@ def test_all_built_in_examples_are_versioned_json() -> None: json.loads(canonical_json(config.data)) +def test_built_in_registry_matches_packaged_json_resources() -> None: + package = resources.files("phaseprobe.data.examples") + packaged = {item.name for item in package.iterdir() if item.name.endswith(".json")} + assert set(EXAMPLE_FILES.values()) == packaged + + @pytest.mark.parametrize( ("name", "source_name"), [ @@ -60,9 +67,7 @@ def test_all_built_in_examples_are_versioned_json() -> None: ("scipy-predator-prey-coarse", "predator-prey-coarse.json"), ], ) -def test_packaged_scipy_examples_match_source_checkout_copies( - name: str, source_name: str -) -> None: +def test_packaged_scipy_examples_match_source_checkout_copies(name: str, source_name: str) -> None: source = Path(__file__).resolve().parents[1] / "examples" / "scipy" / source_name assert load_example(name).data == load_config(source).data From 623a37987e0eec157a53152e5740872ef3b4f045 Mon Sep 17 00:00:00 2001 From: Ali Date: Mon, 31 Aug 2026 13:38:57 -0400 Subject: [PATCH 3/5] Harden generated regressions and numerical validation --- src/phaseprobe/generate.py | 26 ++++++++++++++---- tests/test_artifacts_replay.py | 13 +++++++++ tests/test_scipy_adapter.py | 48 +++++++++++++++++++++++++++++++++- 3 files changed, 81 insertions(+), 6 deletions(-) diff --git a/src/phaseprobe/generate.py b/src/phaseprobe/generate.py index 5b03a3b..b91832b 100644 --- a/src/phaseprobe/generate.py +++ b/src/phaseprobe/generate.py @@ -3,7 +3,6 @@ from __future__ import annotations import re -import shutil from dataclasses import dataclass from pathlib import Path @@ -23,6 +22,17 @@ def _safe_name(value: object) -> str: return candidate[:64] or "model" +def _reject_conflict(path: Path, expected: bytes, description: str) -> bool: + if not path.exists(): + return True + if not path.is_file() or path.read_bytes() != expected: + raise FileExistsError( + f"refusing to overwrite existing {description} {path}; " + "choose another --output-directory" + ) + return False + + def generate_regression_test(fixture: Path, output_directory: Path) -> GeneratedTest: """Validate evidence, copy its fixture, and emit a non-extensible pytest template.""" @@ -33,11 +43,8 @@ def generate_regression_test(fixture: Path, output_directory: Path) -> Generated "replay fixture does not reproduce; refusing to generate a regression test" ) model_name = _safe_name(payload.get("model")) - output_directory.mkdir(parents=True, exist_ok=True) fixture_directory = output_directory / "fixtures" - fixture_directory.mkdir(exist_ok=True) copied_fixture = fixture_directory / f"{model_name}-replay.json" - shutil.copyfile(fixture, copied_fixture) test_path = output_directory / f"test_{model_name}_transition.py" baseline = payload.get("baseline") metadata = baseline.get("execution_metadata") if isinstance(baseline, dict) else None @@ -68,5 +75,14 @@ def test_{model_name}_transition_replays() -> None: result = verify_replay(FIXTURE) assert result.ok, result.as_dict() ''' - test_path.write_text(source, encoding="utf-8", newline="\n") + fixture_bytes = fixture.read_bytes() + source_bytes = source.encode("utf-8") + write_fixture = _reject_conflict(copied_fixture, fixture_bytes, "replay fixture") + write_test = _reject_conflict(test_path, source_bytes, "generated pytest") + output_directory.mkdir(parents=True, exist_ok=True) + fixture_directory.mkdir(exist_ok=True) + if write_fixture: + copied_fixture.write_bytes(fixture_bytes) + if write_test: + test_path.write_bytes(source_bytes) return GeneratedTest(test_path=test_path, fixture_path=copied_fixture) diff --git a/tests/test_artifacts_replay.py b/tests/test_artifacts_replay.py index 93e26f9..2ddb32e 100644 --- a/tests/test_artifacts_replay.py +++ b/tests/test_artifacts_replay.py @@ -53,6 +53,10 @@ def test_replay_rejects_tampering(artifact_run: Path) -> None: @pytest.mark.integration def test_generated_pytest_genuinely_executes(artifact_run: Path, tmp_path: Path) -> None: generated = generate_regression_test(artifact_run / "replay.json", tmp_path / "generated") + assert str(tmp_path) not in generated.test_path.read_text(encoding="utf-8") + assert ( + generate_regression_test(artifact_run / "replay.json", tmp_path / "generated") == generated + ) environment = { name: value for name, value in os.environ.items() @@ -71,6 +75,15 @@ def test_generated_pytest_genuinely_executes(artifact_run: Path, tmp_path: Path) assert "1 passed" in completed.stdout +def test_generated_pytest_refuses_conflicting_overwrite(artifact_run: Path, tmp_path: Path) -> None: + output_directory = tmp_path / "generated" + generated = generate_regression_test(artifact_run / "replay.json", output_directory) + generated.test_path.write_text("# user-owned test\n", encoding="utf-8") + with pytest.raises(FileExistsError, match="refusing to overwrite"): + generate_regression_test(artifact_run / "replay.json", output_directory) + assert generated.test_path.read_text(encoding="utf-8") == "# user-owned test\n" + + def test_html_report_is_self_contained_and_offline(artifact_run: Path) -> None: report = (artifact_run / "report.html").read_text(encoding="utf-8") assert "" in report diff --git a/tests/test_scipy_adapter.py b/tests/test_scipy_adapter.py index c972c13..747ea96 100644 --- a/tests/test_scipy_adapter.py +++ b/tests/test_scipy_adapter.py @@ -17,6 +17,7 @@ import numpy.typing as npt import scipy +import phaseprobe from phaseprobe import run_perturbation, run_simulation from phaseprobe.adapters.scipy import EventSpec, SolveIVPAdapter from phaseprobe.artifacts import write_artifacts @@ -24,7 +25,7 @@ from phaseprobe.engine import ProbeOutcome, run_check, run_perturb, simulate from phaseprobe.errors import ConfigurationError, NumericalFailure from phaseprobe.generate import generate_regression_test -from phaseprobe.replay import verify_replay +from phaseprobe.replay import validate_fixture, verify_replay from phaseprobe.types import Parameters pytestmark = pytest.mark.scipy @@ -362,6 +363,30 @@ def half_value(time: float, state: FloatArray, parameters: Parameters) -> float: assert trace.final_state[0] == pytest.approx(0.5, rel=1e-8) +def test_backward_time_directional_event_has_analytic_crossing_time() -> None: + def half_value(time: float, state: FloatArray, parameters: Parameters) -> float: + return float(state[0] - 0.5) + + adapter = SolveIVPAdapter( + name="backward-exponential", + identity="backward-exponential-v1", + rhs=exponential_rhs, + state_names=("value",), + initial_state=(float(np.exp(-2.0)),), + t_span=(2.0, 0.0), + t_eval=41, + method="DOP853", + rtol=1e-10, + atol=1e-12, + max_step=0.05, + events=(EventSpec("half-value", half_value, terminal=True, direction=1),), + ) + trace = adapter.simulate(adapter.initial_state({}, 0), {"rate": 1.0}, {}, 0) + assert trace.status == 1 + assert trace.metadata["termination_time"] == pytest.approx(np.log(2.0), rel=1e-9) + assert trace.final_state[0] == pytest.approx(0.5, rel=1e-9) + + def test_invalid_initial_state_and_nan_rhs_are_rejected() -> None: with pytest.raises(ConfigurationError, match="finite"): SolveIVPAdapter( @@ -471,6 +496,27 @@ def test_tolerance_replay_preserves_integrity_and_executes_generated_pytest( ) -> None: bundle = write_artifacts(predator_prey_tight, tmp_path / "runs") verification = verify_replay(bundle.replay_json) + fixture = validate_fixture(bundle.replay_json) + assert fixture["created_by"] == f"phaseprobe {phaseprobe.__version__}" + baseline = fixture["baseline"] + assert isinstance(baseline, dict) + metadata = baseline["execution_metadata"] + assert isinstance(metadata, dict) + assert { + "python_version", + "numpy_version", + "scipy_version", + "solver_method", + "rtol", + "atol", + "maximum_step", + "evaluation_grid", + "t_span", + "initial_state", + "parameters", + "event_configuration", + "seed", + } <= metadata.keys() assert verification.ok assert verification.mode == "tolerance" assert verification.comparisons[0]["state_tolerance_match"] is True From 1720be8a3b260ab79fb45328f67c5dd6c2279442 Mon Sep 17 00:00:00 2001 From: Ali Date: Mon, 31 Aug 2026 13:56:59 -0400 Subject: [PATCH 4/5] Prepare PhaseProbe 0.2.1 release --- CHANGELOG.md | 18 +++++++ CITATION.cff | 4 +- README.md | 38 +++++++++---- RELEASE_NOTES_0.2.1.md | 57 ++++++++++++++++++++ SCIENTIFIC_METHODS.md | 3 ++ assets/scipy-demo-session.txt | 20 +++---- assets/scipy-demo-static.png | Bin 65378 -> 63235 bytes assets/scipy-demo.gif | Bin 102855 -> 97176 bytes docs/upstream/SCIPY_INTEGRATION_PROPOSAL.md | 7 ++- examples/README.md | 12 +++-- pyproject.toml | 2 +- scripts/generate_scipy_demo.py | 16 +++--- src/phaseprobe/__init__.py | 2 +- src/phaseprobe/config.py | 5 +- tests/test_optional_dependency.py | 8 ++- uv.lock | 2 +- 16 files changed, 148 insertions(+), 46 deletions(-) create mode 100644 RELEASE_NOTES_0.2.1.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 6140c59..9296c45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,24 @@ All notable changes are documented here. PhaseProbe follows semantic versioning. +## 0.2.1 — 2026-08-31 + +- Fixed Issue #4: all four SciPy quick-start configurations now ship inside the importable + package in both wheel and source distribution and load through `importlib.resources` as the + `scipy-lorenz`, `scipy-lorenz-negative`, `scipy-predator-prey`, and + `scipy-predator-prey-coarse` built-in examples. +- Added actionable, versioned diagnostics for missing or malformed built-in resources without + changing existing config-path or built-in-example behavior. +- Added Linux and Windows Python 3.12 release gates that build, inspect, install, and exercise the + wheel and sdist outside the checkout with `PYTHONPATH` removed. The gate runs scan, replay, + generated pytest, SciPy Lorenz, SciPy predator–prey, `pip check`, and a dependency-free base + wheel check. +- Added a source-derived runtime-resource audit and the PEP 561 `py.typed` marker. +- Generated regression creation is now idempotent for identical evidence and rejects conflicting + files instead of silently overwriting them. +- Added an analytic backward-time directional-event check while preserving all solver defaults + and the existing tolerance-based adaptive replay contract. + ## 0.2.0 — 2026-08-02 - Added the backward-compatible `TrajectoryAdapter` protocol and shared engine dispatch; all v0.1 diff --git a/CITATION.cff b/CITATION.cff index ae458a2..d221e29 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -4,8 +4,8 @@ title: "PhaseProbe" type: software authors: - name: "Ali" -version: 0.2.0 -date-released: 2026-08-02 +version: 0.2.1 +date-released: 2026-08-31 url: "https://github.com/aliengineering-byte/phaseprobe" repository-code: "https://github.com/aliengineering-byte/phaseprobe" license: Apache-2.0 diff --git a/README.md b/README.md index 105a2de..deed493 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Maintaining a simulation is risky when a tiny parameter or initial-condition change can cross a qualitative boundary while ordinary numeric assertions still look plausible. PhaseProbe runs a bounded, deterministic search, records exactly what it tested, and emits an offline report plus an executable pytest regression. ```console -$ pip install phaseprobe +$ pip install phaseprobe pytest $ phaseprobe scan --example logistic QUALITATIVE TRANSITION FOUND @@ -29,6 +29,7 @@ No API key, LLM, GPU, Docker, account, telemetry, network connection, or hosted ```bash pip install phaseprobe pip install "phaseprobe[scipy]" +pip install pytest # needed only to execute a generated regression test ``` ## Five-minute quick start @@ -36,7 +37,7 @@ pip install "phaseprobe[scipy]" Requires Python 3.10 or newer on Windows or Linux. ```bash -pip install phaseprobe +pip install phaseprobe pytest phaseprobe scan --example logistic phaseprobe replay .phaseprobe/runs//replay.json phaseprobe generate-test .phaseprobe/runs//replay.json @@ -59,22 +60,34 @@ Five-minute path: [![SciPy demo: solve_ivp evidence, tolerance replay, and generated pytest](assets/scipy-demo-static.png)](assets/scipy-demo.gif) The verified command transcript is [assets/scipy-demo-session.txt](assets/scipy-demo-session.txt), -with a self-contained [HTML example report](examples/scipy/report.html). +with a self-contained [HTML example report](examples/scipy/report.html). The following path starts +from a clean environment and does not require a source checkout: ```bash -python -m pip install "phaseprobe[scipy]" -phaseprobe perturb --config examples/scipy/lorenz.json -phaseprobe check --config examples/scipy/predator-prey.json +python -m venv .venv +# Linux: source .venv/bin/activate +# Windows PowerShell: .venv\Scripts\Activate.ps1 +python -m pip install "phaseprobe[scipy]" "pytest==8.4.1" +phaseprobe perturb --example scipy-lorenz +phaseprobe check --example scipy-predator-prey phaseprobe replay .phaseprobe/runs//replay.json phaseprobe generate-test .phaseprobe/runs//replay.json python -m pytest -q tests/generated ``` The Lorenz command searches a declared initial-`x` perturbation and reports only finite-time -divergence evidence. `examples/scipy/lorenz-negative.json` is its short-window negative control. -The predator–prey command checks the declared first integral with tightly resolved DOP853 settings; -`examples/scipy/predator-prey-coarse.json` deliberately fails the same policy with loose RK23 -settings. +divergence evidence and prints `FINITE-TIME TRAJECTORY DIVERGENCE FOUND`. Its installed +short-window control is `--example scipy-lorenz-negative`. The predator–prey command checks the +declared first integral with tightly resolved DOP853 settings and prints `CHECK POLICY PASSED`; +`--example scipy-predator-prey-coarse` deliberately fails the same policy with loose RK23 settings. +Each successful command writes a replay fixture and offline report below +`.phaseprobe/runs//`. + +Run `phaseprobe perturb --help` or `phaseprobe check --help` to list installed example names. A +missing packaged resource reports the PhaseProbe version and resource name; reinstall the wheel or +source archive rather than copying a checkout-relative path. Adaptive SciPy replay compares the +declared state, observable, invariant, endpoint, event, and retained-grid tolerances—it does not +promise bitwise trajectory equality across platforms or dependency versions. For a direct Python API: @@ -113,7 +126,7 @@ does not import it. See [the audited contract](docs/SCIPY_SOLVE_IVP_AUDIT.md), | `perturb` | Baseline/perturbed twin runs over bounded initial-state changes | Finding or no finding, exit `0` | | `check` | Execute a declared configuration policy for CI | Exit `1` only when policy fails | | `replay` | Validate fixture integrity and re-execute model, parameters, seed, initial state, tolerances, and retention | Declared `exact` or `tolerance` comparison passes | -| `generate-test` | Validate and copy a fixture into a non-extensible pytest template | Executable test under `tests/generated/` | +| `generate-test` | Validate and copy a fixture into a non-extensible pytest template without conflicting overwrites | Executable test under `tests/generated/` | | `report` | Regenerate terminal, versioned JSON, and self-contained offline HTML evidence | Local report files | Common options: @@ -121,6 +134,7 @@ Common options: ```console phaseprobe scan --config examples/configs/logistic-scan.json phaseprobe perturb --example lorenz --json +phaseprobe perturb --example scipy-lorenz --json phaseprobe check --example predator-prey phaseprobe scan --example logistic --fail-on-finding ``` @@ -135,6 +149,8 @@ Exit codes are stable: `0` completed, `1` declared policy or explicit `--fail-on | Lorenz system | `phaseprobe perturb --example lorenz` | Small initial separation exceeds the declared finite-time trajectory-distance threshold | Short window plus unreachable threshold reports no finding | [Lorenz, 1963](https://journals.ametsoc.org/view/journals/atsc/20/2/1520-0469_1963_020_0130_dnf_2_0_co_2.xml) | | Predator–prey | `phaseprobe check --example predator-prey` | Refined RK4 step preserves the analytic first integral within tolerance | Coarse step fails the invariant-drift policy | [Lotka, 1920](https://doi.org/10.1073/pnas.6.7.410) | | Genetic toggle | `phaseprobe perturb --example toggle` | Bounded initial-state perturbation reaches the opposite dominant state | Smaller declared range stays in the baseline basin | [Gardner, Cantor & Collins, 2000](https://www.nature.com/articles/35002131) | +| SciPy Lorenz | `phaseprobe perturb --example scipy-lorenz` | DOP853 twin trajectories cross the declared finite-time distance threshold | `--example scipy-lorenz-negative` shortens the window | [Lorenz, 1963](https://journals.ametsoc.org/view/journals/atsc/20/2/1520-0469_1963_020_0130_dnf_2_0_co_2.xml) | +| SciPy predator–prey | `phaseprobe check --example scipy-predator-prey` | Tight DOP853 settings preserve the declared first integral tolerance | `--example scipy-predator-prey-coarse` deliberately fails | [Lotka, 1920](https://doi.org/10.1073/pnas.6.7.410) | Each configuration records the seed, fixed integration/iteration settings, tolerances, burn-in, observation window, classification rule, refinement rule, invalid-state policy, and trace cap. See [examples/README.md](examples/README.md) for equations and interpretation. diff --git a/RELEASE_NOTES_0.2.1.md b/RELEASE_NOTES_0.2.1.md new file mode 100644 index 0000000..028bffd --- /dev/null +++ b/RELEASE_NOTES_0.2.1.md @@ -0,0 +1,57 @@ +# PhaseProbe 0.2.1 release notes + +Status: prepared locally on 2026-08-31; not published. + +## Result + +PhaseProbe 0.2.1 fixes GitHub Issue #4. The four SciPy quick-start configurations are runtime +resources inside the `phaseprobe` package, are present in both wheel and sdist, and load through +`importlib.resources` with installed-safe `--example scipy-*` names. + +The reporter-confirmed scan, replay, generated pytest, Lorenz, and predator–prey behavior remains +intact. This patch does not change solver methods, tolerances, thresholds, search bounds, replay +semantics, or scientific claims. + +## Root cause + +Version 0.2.0 documented `examples/scipy/*.json` paths that existed only in the source checkout. +Hatchling included the top-level `examples/` tree in the sdist as source material but built wheels +only from `src/phaseprobe`; consequently neither the published wheel nor a wheel built while +installing the sdist contained those configurations at runtime. Editable/source tests and CI ran +from the repository root, where the relative paths existed, masking the release defect. + +## Changes + +- Added packaged SciPy Lorenz and predator–prey configurations plus positive/negative controls. +- Added missing/malformed built-in-resource diagnostics with package version and valid choices. +- Added source-derived wheel/sdist resource inventory checks and `py.typed`. +- Added clean wheel, clean sdist, and dependency-free base-wheel smoke verification outside the + checkout with `PYTHONPATH` removed on Linux and Windows Python 3.12. +- The installed smoke runs scan, replay, generated pytest, Lorenz, predator–prey, and `pip check`. +- Generated regressions are idempotent for identical evidence and reject conflicting overwrites. +- Added an analytic backward-time directional event check for the SciPy adapter. + +## Verification commands + +```text +python -m ruff format --check . +python -m ruff check . +python -m mypy src tests +python -m pytest --cov=phaseprobe --cov-report=term-missing +python -m build +python -m twine check dist/* +python scripts/audit_package.py +python scripts/verify_artifacts.py --dist-dir dist --work-root +python scripts/check_links.py +python scripts/hygiene.py +``` + +## Prepared artifacts + +- Wheel: `dist/phaseprobe-0.2.1-py3-none-any.whl` +- Wheel SHA-256: `619ad7131119f732d3a3923834ba496fae18d77953e0248c115eba813eafdb44` +- Source distribution: `dist/phaseprobe-0.2.1.tar.gz` +- Source distribution SHA-256: `e085776439d4370cd2a0b24083df0c3f7b8ddce8a7355d3dfb0e28931cec4348` + +No PyPI upload, remote push, pull request, GitHub release, tag, or Issue #4 state change was +performed while preparing these notes. diff --git a/SCIENTIFIC_METHODS.md b/SCIENTIFIC_METHODS.md index 34553c6..a86a0d2 100644 --- a/SCIENTIFIC_METHODS.md +++ b/SCIENTIFIC_METHODS.md @@ -19,6 +19,9 @@ Tolerance replay compares retained times/states, named numeric observables, clas invariant results and stored thresholds, endpoint/event evidence, and expected solver success. Environment and solver evidence are retained for interpretation. Artifact hashes still detect fixture tampering, but an adaptive trace hash is not required to match across supported platforms. +The adapter validation suite checks an exponential system with an analytic terminal crossing in +both forward and backward integration directions; this validates event plumbing, not exhaustive +root detection between adaptive internal steps. See [the complete SciPy audit](docs/SCIPY_SOLVE_IVP_AUDIT.md). PhaseProbe 0.1.0 produces bounded computational evidence. It does not perform formal verification, model validation against observations, or computer-assisted proof. diff --git a/assets/scipy-demo-session.txt b/assets/scipy-demo-session.txt index 13486c1..8cafcc9 100644 --- a/assets/scipy-demo-session.txt +++ b/assets/scipy-demo-session.txt @@ -1,4 +1,4 @@ -$ phaseprobe perturb --config examples/scipy/lorenz.json +$ phaseprobe perturb --example scipy-lorenz FINITE-TIME TRAJECTORY DIVERGENCE FOUND Model: lorenz-scipy @@ -10,12 +10,12 @@ Baseline regime: bounded-finite-window Changed regime: bounded-finite-window Invariant violations: 0 Repeatable: true -Replay: /.cache/phaseprobe-scipy-demo-uqyijm6y/runs/lorenz/20260802T175927Z-786e1809/replay.json +Replay: /.cache/phaseprobe-scipy-demo-4sai_vv1/runs/lorenz/20260831T174342Z-7fcc5f8d/replay.json Scope: Smallest reproducible perturbation found within the declared finite search; not a proof of global minimality. -HTML report: /.cache/phaseprobe-scipy-demo-uqyijm6y/runs/lorenz/20260802T175927Z-786e1809/report.html +HTML report: /.cache/phaseprobe-scipy-demo-4sai_vv1/runs/lorenz/20260831T174342Z-7fcc5f8d/report.html -$ phaseprobe check --config examples/scipy/predator-prey.json +$ phaseprobe check --example scipy-predator-prey CHECK POLICY PASSED Model: predator-prey-scipy @@ -23,8 +23,8 @@ Baseline regime: positive-oscillation Changed regime: n/a Invariant violations: 0 Repeatable: true -Replay: /.cache/phaseprobe-scipy-demo-uqyijm6y/runs/predator-prey/20260802T175928Z-073e812d/replay.json -HTML report: /.cache/phaseprobe-scipy-demo-uqyijm6y/runs/predator-prey/20260802T175928Z-073e812d/report.html +Replay: /.cache/phaseprobe-scipy-demo-4sai_vv1/runs/predator-prey/20260831T174343Z-38b5e8de/replay.json +HTML report: /.cache/phaseprobe-scipy-demo-4sai_vv1/runs/predator-prey/20260831T174343Z-38b5e8de/report.html $ phaseprobe replay .phaseprobe/runs//replay.json REPLAY VERIFIED @@ -36,11 +36,11 @@ baseline: declared tolerances=True $ phaseprobe generate-test .phaseprobe/runs//replay.json PYTEST REGRESSION GENERATED -Test: /.cache/phaseprobe-scipy-demo-uqyijm6y/generated/test_predator_prey_scipy_transition.py -Replay fixture: /.cache/phaseprobe-scipy-demo-uqyijm6y/generated/fixtures/predator_prey_scipy-replay.json +Test: /.cache/phaseprobe-scipy-demo-4sai_vv1/generated/test_predator_prey_scipy_transition.py +Replay fixture: /.cache/phaseprobe-scipy-demo-4sai_vv1/generated/fixtures/predator_prey_scipy-replay.json $ python -m pytest -q tests/generated . [100%] -1 passed in 1.04s +1 passed in 1.08s -Measured demo run: lorenz=5.916s, predator-prey=1.397s, replay=1.343s, generate=1.300s, pytest=1.759s. +Measured demo run: lorenz=6.285s, predator-prey=1.409s, replay=1.336s, generate=1.340s, pytest=1.814s. diff --git a/assets/scipy-demo-static.png b/assets/scipy-demo-static.png index 28b6bdfae0b5c4d3ecd3422072ee2cb96fba80d8..6ef45952fe2d18892acb9c822b44adfc2aadd011 100644 GIT binary patch literal 63235 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≠+C{ zJ}4y@b<57pWw#nV1mbY3SAJARNQiW#IK9VQ#p5;}Y^rcOM^iVTu0sL}3d$WUi?F^> zdtAk-lacESLB!oPzw+MHLyrS=36xyZ4W?RRPolrLpxgs$5|U!9<}3Sy`Mk!poe7yn z^j(3rPdeqQ?wdc#FHnqTs!ie&6O{t%ql^nt6-JB^gM)((7Ew~phWfSl=Z&P(#Sm$* zp40Sj7N80NO)%^hi`9G(y5Ts$!g?owo$Ke<0JQ16_bC}IV3xPpe^xe2@oYTQEpXZR z^wtOCUB>4RYx{bMwJpG{(~pG-0TMnCJ>Cu&uV5`+0Ih*4JiYW&GjI&x1|$Acfr3RG ze|S4D2CN3paW25YG{|U)L^|0*$V6+Wka!@~v2IIoB7u0}bX*vR?g%wrq%a>$tM7ij zt}sOIXZcz-o&IFb_&+-j1RDw^*1mjTMpz?0Hi-aR@g%#$AYAvcm#QC??1?Kdn85`u z#MqYWK08K1&M!CwZV6%z12zVRc@T5Zlljd0-}FF0gn5NdbvUB9ZEmue z2Zgd-5R>=!_dgHrF)S@D?~TEHxZo;NW0$ zX{Wa7l}ANIC0e+zg2k48Fg%ln&xDVMiF3PEnPM3emn4cfGB%mh@;>qH*uuoL`7ZPb zckSv}JdGm?HWxqLVmR}>ZwzbGg5U7XJ$-#Oq`X;x3HI+e{j!5dzI&dEn{QO*j&45Mf^%e)y zS8YrP5uZDmZ0IzHH3SjK^)#yI7ceW}26qnb&2AHHju+{`)GzX)FIt2T7X1-@+qfOf zR4!d!%M$bm8C@9}8qytItThtss;N!mocG9;;@*1`1qD?JQ<2`Lr>3%gk|RC}9%50y zo-d*OBKR%)TF4lW&*hpeyo-RPN&slpQe!nP(anv|B*a=DUxtzRR59&Q>Y||>hlKQl z*`h??CiwJDNvX5hdgy55P;m;@9YFm;g^Eb_UB!2ev-f0?=et|Ma0;?mUUE9?^X{Jj zfb1`L{xG=m@yQ16uo|ne3Lykz++c^B8HS5lY96|)?e%1!KusF)E+Zcw=eL0qA#slY z=OV|5L23(6n1HRA3M;Vn&hB≠yL@z=;AZFgu+2Ql7unL|eVW9V5R5G`O6%3yTW# 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

AD~;gid*@L_E|TV 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

Py>_6B$RQMH52KP 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

    |?$GI#&h@O5hIGwaR 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 z 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 D?c9;> diff --git a/docs/upstream/SCIPY_INTEGRATION_PROPOSAL.md b/docs/upstream/SCIPY_INTEGRATION_PROPOSAL.md index f694941..badfa6b 100644 --- a/docs/upstream/SCIPY_INTEGRATION_PROPOSAL.md +++ b/docs/upstream/SCIPY_INTEGRATION_PROPOSAL.md @@ -44,8 +44,8 @@ plus solver configuration metadata; it does not hash or serialize callable sourc ```bash python -m pip install "phaseprobe[scipy]" -phaseprobe perturb --config examples/scipy/lorenz.json -phaseprobe check --config examples/scipy/predator-prey.json +phaseprobe perturb --example scipy-lorenz +phaseprobe check --example scipy-predator-prey phaseprobe replay .phaseprobe/runs//replay.json phaseprobe generate-test .phaseprobe/runs//replay.json ``` @@ -129,6 +129,9 @@ https://pypi.org/project/phaseprobe/ Technical proposal and limitations: https://github.com/aliengineering-byte/phaseprobe/blob/v0.2.0/docs/upstream/SCIPY_INTEGRATION_PROPOSAL.md +The release links above preserve the original 0.2.0 integration record. The installed-safe +`--example scipy-*` commands shown here are included in the planned 0.2.1 packaging fix. + I am not proposing to add PhaseProbe to SciPy core. I would value feedback on three points: 1. Whether the tolerance-based replay evidence for adaptive `solve_ivp` trajectories is diff --git a/examples/README.md b/examples/README.md index 5e3b368..01a1b9c 100644 --- a/examples/README.md +++ b/examples/README.md @@ -2,16 +2,18 @@ The original eight examples use dependency-free fixed-step adapters and remain unchanged. The `scipy/` directory adds genuine public `scipy.integrate.solve_ivp` trajectories through the -optional extra: +optional extra. Installed packages use the built-in names and do not require this source directory: ```bash python -m pip install "phaseprobe[scipy]" -phaseprobe perturb --config examples/scipy/lorenz.json -phaseprobe perturb --config examples/scipy/lorenz-negative.json -phaseprobe check --config examples/scipy/predator-prey.json -phaseprobe check --config examples/scipy/predator-prey-coarse.json +phaseprobe perturb --example scipy-lorenz +phaseprobe perturb --example scipy-lorenz-negative +phaseprobe check --example scipy-predator-prey +phaseprobe check --example scipy-predator-prey-coarse ``` +The equivalent `--config examples/scipy/*.json` paths are retained for source-checkout development. + | SciPy configuration | declared evidence | expected exit | | --- | --- | --- | | `lorenz.json` | finite-time twin-trajectory distance crosses the declared threshold | 0 | diff --git a/pyproject.toml b/pyproject.toml index 4773d0d..1ab2d50 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "phaseprobe" -version = "0.2.0" +version = "0.2.1" description = "Find reproducible qualitative simulation transitions and turn them into regression tests." readme = "README.md" requires-python = ">=3.10" diff --git a/scripts/generate_scipy_demo.py b/scripts/generate_scipy_demo.py index 548b5eb..9f72ea0 100644 --- a/scripts/generate_scipy_demo.py +++ b/scripts/generate_scipy_demo.py @@ -85,8 +85,8 @@ def main() -> int: "-m", "phaseprobe", "perturb", - "--config", - str(EXAMPLES / "lorenz.json"), + "--example", + "scipy-lorenz", "--output-root", str(output_root / "lorenz"), ], @@ -98,8 +98,8 @@ def main() -> int: "-m", "phaseprobe", "check", - "--config", - str(EXAMPLES / "predator-prey.json"), + "--example", + "scipy-predator-prey", "--output-root", str(output_root / "predator-prey"), ], @@ -130,8 +130,8 @@ def main() -> int: ) transcript = "\n\n".join( ( - "$ phaseprobe perturb --config examples/scipy/lorenz.json\n" + lorenz_output, - "$ phaseprobe check --config examples/scipy/predator-prey.json\n" + predator_output, + "$ phaseprobe perturb --example scipy-lorenz\n" + lorenz_output, + "$ phaseprobe check --example scipy-predator-prey\n" + predator_output, "$ phaseprobe replay .phaseprobe/runs//replay.json\n" + replay_output, "$ phaseprobe generate-test .phaseprobe/runs//replay.json\n" + generate_output, @@ -156,13 +156,13 @@ def main() -> int: shutil.copyfile(predator_run / "report.html", EXAMPLES / "report.html") selected = [ - "$ phaseprobe perturb --config examples/scipy/lorenz.json", + "$ phaseprobe perturb --example scipy-lorenz", "FINITE-TIME TRAJECTORY DIVERGENCE FOUND", "Evidence: finite-time-divergence", "Repeatable: true", "Scope: declared finite search and 25-unit window", "", - "$ phaseprobe check --config examples/scipy/predator-prey.json", + "$ phaseprobe check --example scipy-predator-prey", "CHECK POLICY PASSED", "Method: DOP853 | rtol=1e-10 | vector atol=1e-12", "First-integral drift: 3.997e-15 <= 1e-8", diff --git a/src/phaseprobe/__init__.py b/src/phaseprobe/__init__.py index 4409919..aba796e 100644 --- a/src/phaseprobe/__init__.py +++ b/src/phaseprobe/__init__.py @@ -27,4 +27,4 @@ "run_simulation", ] -__version__ = "0.2.0" +__version__ = "0.2.1" diff --git a/src/phaseprobe/config.py b/src/phaseprobe/config.py index 64fc9f3..3c3af10 100644 --- a/src/phaseprobe/config.py +++ b/src/phaseprobe/config.py @@ -133,10 +133,7 @@ def _installed_version() -> str: def _example_help() -> str: choices = ", ".join(sorted(EXAMPLE_FILES)) - return ( - f"valid built-in examples are: {choices}; " - "run 'phaseprobe --help' to list them" - ) + return f"valid built-in examples are: {choices}; run 'phaseprobe --help' to list them" def load_example(name: str) -> ProbeConfig: diff --git a/tests/test_optional_dependency.py b/tests/test_optional_dependency.py index 7c04003..90ad800 100644 --- a/tests/test_optional_dependency.py +++ b/tests/test_optional_dependency.py @@ -6,11 +6,13 @@ import os import subprocess import sys +from importlib import metadata from pathlib import Path from types import SimpleNamespace import pytest +from phaseprobe import __version__ from phaseprobe.adapters.loader import load_configured_adapter from phaseprobe.config import parse_config from phaseprobe.errors import ConfigurationError @@ -35,7 +37,11 @@ def _isolated(command: str) -> subprocess.CompletedProcess[str]: def test_core_imports_without_site_packages_or_scipy() -> None: completed = _isolated("import phaseprobe; print(phaseprobe.__version__)") assert completed.returncode == 0, completed.stderr - assert completed.stdout.strip() == "0.2.0" + assert completed.stdout.strip() == __version__ + + +def test_distribution_and_module_versions_match() -> None: + assert metadata.version("phaseprobe") == __version__ def test_scipy_adapter_import_has_actionable_optional_extra_error() -> None: diff --git a/uv.lock b/uv.lock index 36b4750..5464445 100644 --- a/uv.lock +++ b/uv.lock @@ -390,7 +390,7 @@ wheels = [ [[package]] name = "phaseprobe" -version = "0.2.0" +version = "0.2.1" source = { editable = "." } [package.optional-dependencies] From d685bd46d26855fc742fb5b5b8ae5a914b09f3e1 Mon Sep 17 00:00:00 2001 From: Ali Date: Tue, 1 Sep 2026 05:07:03 -0400 Subject: [PATCH 5/5] Preserve former SciPy quick-start paths --- .github/workflows/publish-pypi.yml | 32 +++++------ CHANGELOG.md | 5 +- README.md | 15 ++++-- RELEASE_NOTES_0.2.1.md | 26 ++++++--- examples/README.md | 5 +- scripts/installed_smoke.py | 87 ++++++++++++++++++++---------- src/phaseprobe/cli.py | 4 +- src/phaseprobe/config.py | 60 ++++++++++++++------- tests/test_config.py | 60 ++++++++++++++++----- 9 files changed, 200 insertions(+), 94 deletions(-) diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index c9fe1f4..e1b350c 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -4,11 +4,11 @@ on: workflow_dispatch: inputs: tag: - description: Immutable release tag (for example, v0.2.0) + description: Immutable release tag (for example, v0.2.1) required: true type: string version: - description: Expected package version (for example, 0.2.0) + description: Expected package version (for example, 0.2.1) required: true type: string commit: @@ -109,27 +109,19 @@ jobs: assert extracted is not None sdist_metadata = email.message_from_bytes(extracted.read()) - runtime_files = { - "phaseprobe/data/examples/logistic-negative.json", - "phaseprobe/data/examples/logistic-scan.json", - "phaseprobe/data/examples/lorenz-negative.json", - "phaseprobe/data/examples/lorenz-perturb.json", - "phaseprobe/data/examples/predator-prey-check.json", - "phaseprobe/data/examples/predator-prey-negative.json", - "phaseprobe/data/examples/scipy-lorenz-negative.json", - "phaseprobe/data/examples/scipy-lorenz.json", - "phaseprobe/data/examples/scipy-predator-prey-coarse.json", - "phaseprobe/data/examples/scipy-predator-prey.json", - "phaseprobe/data/examples/toggle-negative.json", - "phaseprobe/data/examples/toggle-perturb.json", - "phaseprobe/py.typed", - } - assert not runtime_files - wheel_names, sorted(runtime_files - wheel_names) sdist_roots = {name.split("/", 1)[0] for name in sdist_names if "/" in name} assert len(sdist_roots) == 1, sorted(sdist_roots) sdist_root = next(iter(sdist_roots)) - sdist_runtime_files = {f"{sdist_root}/src/{name}" for name in runtime_files} - assert not sdist_runtime_files - sdist_names, sorted(sdist_runtime_files - sdist_names) + source_prefix = f"{sdist_root}/src/phaseprobe/" + runtime_files = { + name.removeprefix(f"{sdist_root}/src/") + for name in sdist_names + if name.startswith(source_prefix) + and not name.endswith(".py") + and "__pycache__" not in name.split("/") + } + assert "phaseprobe/py.typed" in runtime_files + assert not runtime_files - wheel_names, sorted(runtime_files - wheel_names) for metadata in (wheel_metadata, sdist_metadata): assert metadata["Name"] == "phaseprobe" diff --git a/CHANGELOG.md b/CHANGELOG.md index 9296c45..b0d6437 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,11 @@ All notable changes are documented here. PhaseProbe follows semantic versioning. package in both wheel and source distribution and load through `importlib.resources` as the `scipy-lorenz`, `scipy-lorenz-negative`, `scipy-predator-prey`, and `scipy-predator-prey-coarse` built-in examples. +- Preserved the four exact former `examples/scipy/` config paths as narrow compatibility aliases + when no file exists at the requested path. Existing user files take precedence; matching is + case-sensitive and separator-portable, with no fuzzy or basename fallback. - Added actionable, versioned diagnostics for missing or malformed built-in resources without - changing existing config-path or built-in-example behavior. + changing arbitrary config-path or built-in-example behavior. - Added Linux and Windows Python 3.12 release gates that build, inspect, install, and exercise the wheel and sdist outside the checkout with `PYTHONPATH` removed. The gate runs scan, replay, generated pytest, SciPy Lorenz, SciPy predator–prey, `pip check`, and a dependency-free base diff --git a/README.md b/README.md index deed493..d92fd8d 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,13 @@ phaseprobe generate-test .phaseprobe/runs//replay.json python -m pytest -q tests/generated ``` +PhaseProbe 0.2.1 also recognizes the former Issue #4 command +`phaseprobe perturb --config examples/scipy/lorenz.json` when that relative file is absent and +loads the corresponding packaged example. This compatibility is limited to the four former +`examples/scipy/` paths: an existing file always takes precedence, matching is case-sensitive, +both slash styles are accepted, and unrelated missing paths remain errors. New documentation and +automation should use the installed-safe `--example scipy-*` names. + The Lorenz command searches a declared initial-`x` perturbation and reports only finite-time divergence evidence and prints `FINITE-TIME TRAJECTORY DIVERGENCE FOUND`. Its installed short-window control is `--example scipy-lorenz-negative`. The predator–prey command checks the @@ -84,10 +91,10 @@ Each successful command writes a replay fixture and offline report below `.phaseprobe/runs//`. Run `phaseprobe perturb --help` or `phaseprobe check --help` to list installed example names. A -missing packaged resource reports the PhaseProbe version and resource name; reinstall the wheel or -source archive rather than copying a checkout-relative path. Adaptive SciPy replay compares the -declared state, observable, invariant, endpoint, event, and retained-grid tolerances—it does not -promise bitwise trajectory equality across platforms or dependency versions. +missing packaged resource reports the PhaseProbe version and resource name. Adaptive SciPy replay +compares the declared state, observable, invariant, endpoint, event, and retained-grid +tolerances—it does not promise bitwise trajectory equality across platforms or dependency +versions. For a direct Python API: diff --git a/RELEASE_NOTES_0.2.1.md b/RELEASE_NOTES_0.2.1.md index 028bffd..4afc9f8 100644 --- a/RELEASE_NOTES_0.2.1.md +++ b/RELEASE_NOTES_0.2.1.md @@ -8,6 +8,16 @@ PhaseProbe 0.2.1 fixes GitHub Issue #4. The four SciPy quick-start configuration resources inside the `phaseprobe` package, are present in both wheel and sdist, and load through `importlib.resources` with installed-safe `--example scipy-*` names. +The exact former relative config paths also remain compatible. PhaseProbe first reads an existing +file; only when it is absent does one of the four case-sensitive `examples/scipy/` paths resolve to +its matching packaged built-in. Both slash styles are accepted. Arbitrary missing paths, basename +matches, and case variants remain errors. The reporter's original command therefore succeeds from +an unrelated working directory after installation: + +```text +phaseprobe perturb --config examples/scipy/lorenz.json +``` + The reporter-confirmed scan, replay, generated pytest, Lorenz, and predator–prey behavior remains intact. This patch does not change solver methods, tolerances, thresholds, search bounds, replay semantics, or scientific claims. @@ -22,6 +32,8 @@ from the repository root, where the relative paths existed, masking the release ## Changes +- Added narrow compatibility for the four former checkout-relative SciPy paths while preserving + existing-file precedence and rejecting fuzzy matches. - Added packaged SciPy Lorenz and predator–prey configurations plus positive/negative controls. - Added missing/malformed built-in-resource diagnostics with package version and valid choices. - Added source-derived wheel/sdist resource inventory checks and `py.typed`. @@ -46,12 +58,12 @@ python scripts/check_links.py python scripts/hygiene.py ``` -## Prepared artifacts +## Artifact provenance -- Wheel: `dist/phaseprobe-0.2.1-py3-none-any.whl` -- Wheel SHA-256: `619ad7131119f732d3a3923834ba496fae18d77953e0248c115eba813eafdb44` -- Source distribution: `dist/phaseprobe-0.2.1.tar.gz` -- Source distribution SHA-256: `e085776439d4370cd2a0b24083df0c3f7b8ddce8a7355d3dfb0e28931cec4348` +Local review builds produce `dist/phaseprobe-0.2.1-py3-none-any.whl` and +`dist/phaseprobe-0.2.1.tar.gz`. Their SHA-256 values identify only those exact local files; they are +not permanent release hashes. The trusted publishing workflow rebuilds artifacts from the final +tag, so published hashes must be recorded from that separately authorized run. -No PyPI upload, remote push, pull request, GitHub release, tag, or Issue #4 state change was -performed while preparing these notes. +PhaseProbe 0.2.1 is not yet published. These notes do not assert that remote CI has passed. No +merge, PyPI upload, GitHub release, tag, or Issue #4 closure is part of this pull request. diff --git a/examples/README.md b/examples/README.md index 01a1b9c..7ccf495 100644 --- a/examples/README.md +++ b/examples/README.md @@ -12,7 +12,10 @@ phaseprobe check --example scipy-predator-prey phaseprobe check --example scipy-predator-prey-coarse ``` -The equivalent `--config examples/scipy/*.json` paths are retained for source-checkout development. +The four exact `--config examples/scipy/.json` forms in the table remain usable from an +installed package: if the selected file exists, PhaseProbe reads it; otherwise the former relative +path resolves to its matching packaged example. Matching is case-sensitive and does not fall back +by basename. The `--example scipy-*` forms are preferred for new automation. | SciPy configuration | declared evidence | expected exit | | --- | --- | --- | diff --git a/scripts/installed_smoke.py b/scripts/installed_smoke.py index 8e08c57..593c78f 100644 --- a/scripts/installed_smoke.py +++ b/scripts/installed_smoke.py @@ -11,10 +11,11 @@ from typing import Any import phaseprobe -from phaseprobe.config import EXAMPLE_FILES, load_example +from phaseprobe.config import EXAMPLES, canonical_json, load_config, load_example +from phaseprobe.errors import ConfigurationError -def run_cli(cwd: Path, *arguments: str) -> str: +def run_cli(cwd: Path, *arguments: str, expected_returncode: int = 0) -> str: environment = os.environ.copy() environment.pop("PYTHONPATH", None) completed = subprocess.run( @@ -26,16 +27,17 @@ def run_cli(cwd: Path, *arguments: str) -> str: text=True, timeout=180, ) - if completed.returncode != 0: + if completed.returncode != expected_returncode: raise RuntimeError( - f"phaseprobe {' '.join(arguments)} exited {completed.returncode}\n" + f"phaseprobe {' '.join(arguments)} exited {completed.returncode}; " + f"expected {expected_returncode}\n" f"stdout:\n{completed.stdout}\nstderr:\n{completed.stderr}" ) return completed.stdout -def json_cli(cwd: Path, *arguments: str) -> dict[str, Any]: - output = run_cli(cwd, *arguments) +def json_cli(cwd: Path, *arguments: str, expected_returncode: int = 0) -> dict[str, Any]: + output = run_cli(cwd, *arguments, expected_returncode=expected_returncode) parsed = json.loads(output) if not isinstance(parsed, dict): raise RuntimeError(f"expected JSON object from {' '.join(arguments)}") @@ -72,7 +74,7 @@ def main() -> int: raise RuntimeError("PYTHONPATH must be unset for installed-package verification") loaded_examples: dict[str, str] = {} - for name in EXAMPLE_FILES: + for name in EXAMPLES: config = load_example(name) loaded_examples[name] = str(config.data["schema_version"]) @@ -80,6 +82,52 @@ def main() -> int: if "scipy-lorenz" not in help_output: raise RuntimeError("installed CLI help does not list the SciPy built-in examples") + scipy_cli_results: dict[str, str] = {} + scipy_commands = { + "scipy-lorenz": ("perturb", 0, "FINITE-TIME TRAJECTORY DIVERGENCE FOUND"), + "scipy-lorenz-negative": ("perturb", 0, "NO SENSITIVE PERTURBATION FOUND"), + "scipy-predator-prey": ("check", 0, "CHECK POLICY PASSED"), + "scipy-predator-prey-coarse": ("check", 1, "CHECK POLICY FAILED"), + } + for name, (command, returncode, expected_status) in scipy_commands.items(): + result = json_cli( + working_directory, + command, + "--example", + name, + "--output-root", + f"{name} runs", + "--json", + expected_returncode=returncode, + ) + status = result.get("status") + if status != expected_status: + raise RuntimeError(f"{name} reported {status!r}; expected {expected_status!r}") + scipy_cli_results[name] = str(status) + + legacy_output = run_cli(working_directory, "perturb", "--config", "examples/scipy/lorenz.json") + if "FINITE-TIME TRAJECTORY DIVERGENCE FOUND" not in legacy_output: + raise RuntimeError("former SciPy Lorenz config path did not resolve to its built-in") + + backslash_config = load_config(Path(r"examples\scipy\lorenz.json")) + if backslash_config.data != load_example("scipy-lorenz").data: + raise RuntimeError("backslash-separated former config path resolved incorrectly") + for missing in (Path("elsewhere/lorenz.json"), Path("examples/scipy/LORENZ.json")): + try: + load_config(missing) + except ConfigurationError as exc: + if "cannot read configuration" not in str(exc): + raise RuntimeError(f"unexpected missing-config diagnostic: {exc}") from exc + else: + raise RuntimeError(f"unrelated missing path was misclassified: {missing}") + + former_path = working_directory / "examples" / "scipy" / "lorenz.json" + former_path.parent.mkdir(parents=True) + custom = load_example("scipy-lorenz-negative") + former_path.write_text(canonical_json(custom.data), encoding="utf-8") + if load_config(Path("examples/scipy/lorenz.json")).data != custom.data: + raise RuntimeError("an existing user config did not take precedence over compatibility") + scan = json_cli( working_directory, "scan", @@ -123,25 +171,6 @@ def main() -> int: f"stdout:\n{pytest_result.stdout}\nstderr:\n{pytest_result.stderr}" ) - lorenz = json_cli( - working_directory, - "perturb", - "--example", - "scipy-lorenz", - "--output-root", - "lorenz runs", - "--json", - ) - predator_prey = json_cli( - working_directory, - "check", - "--example", - "scipy-predator-prey", - "--output-root", - "predator prey runs", - "--json", - ) - print( json.dumps( { @@ -151,11 +180,13 @@ def main() -> int: "python_version": sys.version.split()[0], "working_directory": str(working_directory), "loaded_examples": loaded_examples, + "legacy_issue_4_command": "FINITE-TIME TRAJECTORY DIVERGENCE FOUND", + "scipy_cli_results": scipy_cli_results, "scan": scan.get("status"), "replay": replay.get("status"), "generated_pytest": pytest_result.stdout.strip(), - "lorenz": lorenz.get("status"), - "predator_prey": predator_prey.get("status"), + "lorenz": scipy_cli_results["scipy-lorenz"], + "predator_prey": scipy_cli_results["scipy-predator-prey"], }, indent=2, sort_keys=True, diff --git a/src/phaseprobe/cli.py b/src/phaseprobe/cli.py index c79df98..983639c 100644 --- a/src/phaseprobe/cli.py +++ b/src/phaseprobe/cli.py @@ -10,7 +10,7 @@ from phaseprobe import __version__ from phaseprobe.artifacts import ArtifactBundle, write_artifacts -from phaseprobe.config import EXAMPLE_FILES, ProbeConfig, load_config, load_example +from phaseprobe.config import EXAMPLES, ProbeConfig, load_config, load_example from phaseprobe.engine import ProbeOutcome, run_check, run_perturb, run_scan from phaseprobe.errors import ( ConfigurationError, @@ -28,7 +28,7 @@ def _add_config_source(parser: argparse.ArgumentParser) -> None: source = parser.add_mutually_exclusive_group(required=True) source.add_argument("--config", type=Path, help="versioned JSON configuration") source.add_argument( - "--example", choices=sorted(EXAMPLE_FILES), help="built-in deterministic example" + "--example", choices=sorted(EXAMPLES), help="built-in deterministic example" ) parser.add_argument( "--output-root", diff --git a/src/phaseprobe/config.py b/src/phaseprobe/config.py index 3c3af10..5354917 100644 --- a/src/phaseprobe/config.py +++ b/src/phaseprobe/config.py @@ -3,6 +3,7 @@ from __future__ import annotations import json +import posixpath import re from collections.abc import Mapping from dataclasses import dataclass @@ -66,6 +67,36 @@ def string(self, name: str, default: str | None = None) -> str: return value +@dataclass(frozen=True, slots=True) +class ExampleResource: + """One packaged example and its optional former checkout-relative path.""" + + filename: str + legacy_config_path: str | None = None + + +EXAMPLES: Mapping[str, ExampleResource] = { + "logistic": ExampleResource("logistic-scan.json"), + "logistic-negative": ExampleResource("logistic-negative.json"), + "lorenz": ExampleResource("lorenz-perturb.json"), + "lorenz-negative": ExampleResource("lorenz-negative.json"), + "predator-prey": ExampleResource("predator-prey-check.json"), + "predator-prey-negative": ExampleResource("predator-prey-negative.json"), + "toggle": ExampleResource("toggle-perturb.json"), + "toggle-negative": ExampleResource("toggle-negative.json"), + "scipy-lorenz": ExampleResource("scipy-lorenz.json", "examples/scipy/lorenz.json"), + "scipy-lorenz-negative": ExampleResource( + "scipy-lorenz-negative.json", "examples/scipy/lorenz-negative.json" + ), + "scipy-predator-prey": ExampleResource( + "scipy-predator-prey.json", "examples/scipy/predator-prey.json" + ), + "scipy-predator-prey-coarse": ExampleResource( + "scipy-predator-prey-coarse.json", "examples/scipy/predator-prey-coarse.json" + ), +} + + def parse_config(text: str, source: str) -> ProbeConfig: """Parse and validate a versioned JSON configuration.""" @@ -103,27 +134,17 @@ def load_config(path: Path) -> ProbeConfig: try: text = path.read_text(encoding="utf-8") + except FileNotFoundError as exc: + normalized = posixpath.normpath(str(path).replace("\\", "/")) + for name, example in EXAMPLES.items(): + if example.legacy_config_path == normalized: + return load_example(name) + raise ConfigurationError(f"cannot read configuration {path}: {exc}") from exc except OSError as exc: raise ConfigurationError(f"cannot read configuration {path}: {exc}") from exc return parse_config(text, str(path)) -EXAMPLE_FILES: Mapping[str, str] = { - "logistic": "logistic-scan.json", - "logistic-negative": "logistic-negative.json", - "lorenz": "lorenz-perturb.json", - "lorenz-negative": "lorenz-negative.json", - "predator-prey": "predator-prey-check.json", - "predator-prey-negative": "predator-prey-negative.json", - "toggle": "toggle-perturb.json", - "toggle-negative": "toggle-negative.json", - "scipy-lorenz": "scipy-lorenz.json", - "scipy-lorenz-negative": "scipy-lorenz-negative.json", - "scipy-predator-prey": "scipy-predator-prey.json", - "scipy-predator-prey-coarse": "scipy-predator-prey-coarse.json", -} - - def _installed_version() -> str: try: return metadata.version("phaseprobe") @@ -132,16 +153,17 @@ def _installed_version() -> str: def _example_help() -> str: - choices = ", ".join(sorted(EXAMPLE_FILES)) + choices = ", ".join(sorted(EXAMPLES)) return f"valid built-in examples are: {choices}; run 'phaseprobe --help' to list them" def load_example(name: str) -> ProbeConfig: """Load one of the immutable examples embedded in the installed wheel.""" - filename = EXAMPLE_FILES.get(name) - if filename is None: + example = EXAMPLES.get(name) + if example is None: raise ConfigurationError(f"unknown example {name!r}; {_example_help()}") + filename = example.filename try: package = resources.files("phaseprobe.data.examples") text = package.joinpath(filename).read_text(encoding="utf-8") diff --git a/tests/test_config.py b/tests/test_config.py index 6fc4181..61a40be 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -9,7 +9,7 @@ import pytest from phaseprobe.config import ( - EXAMPLE_FILES, + EXAMPLES, SUPPORTED_CONFIG_SCHEMA_VERSIONS, canonical_json, load_config, @@ -46,7 +46,7 @@ def test_load_config_reports_missing_file(tmp_path: Path) -> None: def test_all_built_in_examples_are_versioned_json() -> None: - for name in EXAMPLE_FILES: + for name in EXAMPLES: config = load_example(name) assert config.data["schema_version"] in SUPPORTED_CONFIG_SCHEMA_VERSIONS json.loads(canonical_json(config.data)) @@ -55,23 +55,59 @@ def test_all_built_in_examples_are_versioned_json() -> None: def test_built_in_registry_matches_packaged_json_resources() -> None: package = resources.files("phaseprobe.data.examples") packaged = {item.name for item in package.iterdir() if item.name.endswith(".json")} - assert set(EXAMPLE_FILES.values()) == packaged + assert {example.filename for example in EXAMPLES.values()} == packaged @pytest.mark.parametrize( - ("name", "source_name"), - [ - ("scipy-lorenz", "lorenz.json"), - ("scipy-lorenz-negative", "lorenz-negative.json"), - ("scipy-predator-prey", "predator-prey.json"), - ("scipy-predator-prey-coarse", "predator-prey-coarse.json"), - ], + "name", [name for name, example in EXAMPLES.items() if example.legacy_config_path] ) -def test_packaged_scipy_examples_match_source_checkout_copies(name: str, source_name: str) -> None: - source = Path(__file__).resolve().parents[1] / "examples" / "scipy" / source_name +def test_packaged_scipy_examples_match_source_checkout_copies(name: str) -> None: + legacy_path = EXAMPLES[name].legacy_config_path + assert legacy_path is not None + source = Path(__file__).resolve().parents[1] / legacy_path assert load_example(name).data == load_config(source).data +@pytest.mark.parametrize( + "name", [name for name, example in EXAMPLES.items() if example.legacy_config_path] +) +def test_missing_former_scipy_path_loads_packaged_example( + name: str, tmp_path: Path, monkeypatch: pytest.MonkeyPatch +) -> None: + legacy_path = EXAMPLES[name].legacy_config_path + assert legacy_path is not None + monkeypatch.chdir(tmp_path) + assert load_config(Path(legacy_path)).data == load_example(name).data + assert load_config(Path(legacy_path.replace("/", "\\"))).data == load_example(name).data + + +def test_existing_former_scipy_path_takes_precedence( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch +) -> None: + legacy_path = EXAMPLES["scipy-lorenz"].legacy_config_path + assert legacy_path is not None + config_path = tmp_path / legacy_path + config_path.parent.mkdir(parents=True) + source = Path(__file__).resolve().parents[1] / "examples" / "configs" / "logistic-negative.json" + config_path.write_bytes(source.read_bytes()) + monkeypatch.chdir(tmp_path) + loaded = load_config(Path(legacy_path)) + assert loaded.model == "logistic-map" + assert Path(loaded.source) == Path(legacy_path) + + +@pytest.mark.parametrize( + "missing_path", + ["elsewhere/lorenz.json", "examples/scipy/LORENZ.json", "lorenz.json"], +) +def test_missing_config_does_not_use_fuzzy_example_fallback( + missing_path: str, tmp_path: Path, monkeypatch: pytest.MonkeyPatch +) -> None: + monkeypatch.chdir(tmp_path) + with pytest.raises(ConfigurationError, match="cannot read configuration"): + load_config(Path(missing_path)) + + def test_unknown_example_is_actionable() -> None: with pytest.raises(ConfigurationError, match="unknown example") as error: load_example("missing")

^<&V2eE`-n7>>PMH+jP2+QNfvq<>QW`LmUED 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�LbGgxp{k^;f_U6oU3X{I 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 z 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[nTw5^NiL<}Nf@mz#D9M%+3dJ9b>)@M7Owo{a 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 C17~Oe diff --git a/assets/scipy-demo.gif b/assets/scipy-demo.gif index ab82ea0f47dc7a4b5b49bc13ccda75cdddee7149..223ebff5d1ffad83e858267e765b5e4ff22e60fb 100644 GIT binary patch delta 93628 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