Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 7 additions & 26 deletions autoform_cli/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,7 @@
from .graph import GraphValidationError, load_graph
from .impact import ImpactError, format_impact, revision_impact
from .lean import build_linker, declaration_names, index_failure_message
from .project import (
ProjectCatalogError,
ProjectCreateError,
create_project,
inspect_project,
load_release_catalog,
)
from .project import ProjectCatalogError, ProjectCreateError, create_project, inspect_project, load_release_catalog
from .render import PublicationError, render_site
from .runtime import RuntimeProjectionError, load_runtime_graph, resolve_runtime_paths
from .scaffold import ScaffoldError, scaffold_project
Expand Down Expand Up @@ -108,20 +102,12 @@ def main(argv: Sequence[str] | None = None) -> int:
help="local port (default: choose an available port)",
)

project = subparsers.add_parser(
"project", help="create or inspect local projects and supported releases"
)
project = subparsers.add_parser("project", help="create or inspect local projects and supported releases")
project_subparsers = project.add_subparsers(dest="project_command", required=True)
project_new = project_subparsers.add_parser(
"new", help="atomically create a complete Lean and Autoform project"
)
project_new.add_argument(
"target", nargs="?", help="new project directory (required); it must not exist"
)
project_new = project_subparsers.add_parser("new", help="atomically create a complete Lean and Autoform project")
project_new.add_argument("target", nargs="?", help="new project directory (required); it must not exist")
project_new.add_argument("--package", help="UpperCamelCase Lean package name (required)")
project_new.add_argument(
"--release", help="release id from 'project versions' (default: the recommended release)"
)
project_new.add_argument("--release", help="release id from 'project versions' (default: the recommended release)")
project_new.add_argument(
"--lean-toolchain",
help=(
Expand Down Expand Up @@ -529,12 +515,7 @@ def _project(args: argparse.Namespace) -> int:
"Project creation was interrupted and no project was published. A hidden "
".autoform-new-* stage may remain in the target parent; inspect it before removal."
)
error = ProjectCreateError("project-create-interrupted", message)
if args.json:
print(error.to_json())
else:
print(f"error[{error.code}]: {error.message}", file=sys.stderr)
return 130
raise ProjectCreateError("project-create-interrupted", message) from None
if args.json:
print(result.to_json())
else:
Expand Down Expand Up @@ -564,7 +545,7 @@ def _project(args: argparse.Namespace) -> int:
print(error.to_json())
else:
print(f"error[{error.code}]: {error.message}", file=sys.stderr)
return 1
return 130 if error.code == "project-create-interrupted" else 1
except ProjectCatalogError as error:
if args.json:
print(json.dumps({"error": {"code": "project-catalog-invalid", "message": str(error)}, "ok": False}))
Expand Down
6 changes: 0 additions & 6 deletions tests/test_skill_examples.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,12 +191,6 @@ def test_setup_guidance_uses_the_offline_atomic_project_creator(repo_root: Path)
assert (repo_root / reference).is_file(), (
f"{document.relative_to(repo_root)} references missing helper {reference}"
)
for document in sorted(setup_root.rglob("*.md")):
text = document.read_text(encoding="utf-8")
for reference in re.findall(r"(?<![A-Za-z0-9_])scripts/[A-Za-z0-9_./-]+", text):
assert (repo_root / reference).is_file(), (
f"{document.relative_to(repo_root)} references missing helper {reference}"
)


def test_setup_asset_is_a_repo_shaped_thesis_vault(repo_root: Path) -> None:
Expand Down
Loading