paratext-cli 0.2.3__tar.gz → 0.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/PKG-INFO +1 -1
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/pyproject.toml +1 -1
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/__init__.py +1 -1
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/extract.py +29 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_extract.py +41 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/uv.lock +1 -1
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.github/workflows/ci.yml +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.github/workflows/publish.yml +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.gitignore +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/intro.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-1 split-the-framework-out-of-paratext-nls-and-release-it.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-10 remove-the-watttime-provider.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-11 make-paratext-new-self-installing.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-12 add-paratext-guide-so-agents-can-self-orient.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-13 guard-schema-prompt-and-view-drift.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-14 build-the-human-corrected-gold-eval-set-in-review.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-15 add-marc-and-dublin-core-export-formats.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-16 ship-schema-json-with-each-exported-dataset.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-17 add-the-project-inspector-and-fix-sqlite-thread-safety.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-18 point-the-default-card-detector-at-the-published-nls-repo.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-19 add-the-scope-aware-export-modal.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-2 add-the-inbuilt-review-web-ui.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-20 move-the-review-ui-onto-oat.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-21 render-entries-as-tables-read-only-and-editable.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-22 publish-gold-to-hugging-face-with-sign-in-with-hf.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-23 warn-on-incomplete-provenance-without-blocking-publication.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-24 add-the-paratext-logo-and-favicon.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-25 remove-duplicated-helpers-across-the-codebase.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-26 split-store-and-dataset-loading-out-of-the-review-server.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-27 lean-the-readme-and-split-the-reference-into-docs.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-28 add-notice-and-make-the-repository-public.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-29 rename-the-distribution-to-paratext-cli-and-publish-to-pypi.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-3 make-the-review-server-configurable.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-30 make-project-discovery-work-from-any-environment.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-31 give-clear-errors-for-provider-and-source-misconfiguration.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-32 add-a-configurable-output-budget-and-provider-extra-body-pas.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-33 bring-marc-output-up-to-isbd-punctuation-and-leader-conventi.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-34 replace-the-blind-margin-crop-with-a-content-aware-fallback.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-35 add-the-opt-in-ai-assistance-note-to-marc-and-dc-export.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-36 emit-only-one-main-entry-per-marc-record.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-37 extend-cli-test-coverage-to-argparse-wiring-round-resolution.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-38 walk-a-real-run-from-a-fresh-scaffold.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-39 add-the-paratext-dependency-when-scaffolding-into-an-existin.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-4 genericise-the-defaults-away-from-local-inference-servers.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-40 fix-cross-batch-accumulation-overwriting-metadata-jsonl.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-41 remove-the-silent-hf-default-from-format.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-42 add-paratext-export-db.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-43 decide-whether-a-gold-export-ships-as-a-held-out-test-split.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-44 hf-export-v2-multi-image-projects-and-round-versioning-as-hu.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-45 add-paratext-bench.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-46 review-ui-polish-flagged-stat-key-score-badge-and-verdict-to.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-47 eval-editor-reach-view-hidden-fields-and-diff-corrected-agai.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-48 add-richer-scaffolder-field-types-for-enums-and-lists.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-49 extend-the-carbon-providers.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-5 add-source-adapters-and-slim-the-project-layout.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-50 build-the-wordmark-in-a-mono-typeface.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-51 decide-whether-to-pursue-the-pypi-paratext-name.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-6 rename-init-to-new-and-document-every-cli-flag.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-7 key-runs-and-packages-on-the-prompt-hash.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-8 add-paratext-export-for-publishing-a-reviewed-round.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-9 add-carbon-aware-scheduling.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/AGENTS.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/LICENSE +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/NOTICE +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/README.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/assets/logo.png +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/assets/logo.svg +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/config.yml +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/milestones/m-0 - framework-split-and-first-release.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/milestones/m-1 - review-ui.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/milestones/m-2 - export-and-publishing.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/milestones/m-3 - oat-first-ui-rework.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/milestones/m-4 - packaging-and-pypi-release.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/milestones/m-5 - marc-fidelity.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/milestones/m-6 - test-coverage-and-onboarding.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/milestones/m-7 - export-v2.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/milestones/m-8 - review-ui-polish.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-1 - Split-the-framework-out-of-paratext-nls-and-release-it.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-10 - Remove-the-WattTime-provider.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-11 - Make-paratext-new-self-installing.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-12 - Add-paratext-guide-so-agents-can-self-orient.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-13 - Guard-schema-prompt-and-view-drift.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-14 - Build-the-human-corrected-gold-eval-set-in-review.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-15 - Add-MARC-and-Dublin-Core-export-formats.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-16 - Ship-schema.json-with-each-exported-dataset.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-17 - Add-the-project-inspector-and-fix-sqlite-thread-safety.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-18 - Point-the-default-card-detector-at-the-published-NLS-repo.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-19 - Add-the-scope-aware-export-modal.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-2 - Add-the-inbuilt-review-web-UI.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-20 - Move-the-review-UI-onto-Oat.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-21 - Render-entries-as-tables-read-only-and-editable.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-22 - Publish-gold-to-Hugging-Face-with-Sign-in-with-HF.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-23 - Warn-on-incomplete-provenance-without-blocking-publication.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-24 - Add-the-paratext-logo-and-favicon.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-25 - Remove-duplicated-helpers-across-the-codebase.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-26 - Split-Store-and-dataset-loading-out-of-the-review-server.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-27 - Lean-the-README-and-split-the-reference-into-docs.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-28 - Add-NOTICE-and-make-the-repository-public.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-29 - Rename-the-distribution-to-paratext-cli-and-publish-to-PyPI.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-3 - Make-the-review-server-configurable.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-30 - Make-project-discovery-work-from-any-environment.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-31 - Give-clear-errors-for-provider-and-source-misconfiguration.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-32 - Add-a-configurable-output-budget-and-provider-extra-body-passthrough.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-33 - Bring-MARC-output-up-to-ISBD-punctuation-and-leader-conventions.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-34 - Replace-the-blind-margin-crop-with-a-content-aware-fallback.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-35 - Add-the-opt-in-AI-assistance-note-to-MARC-and-DC-export.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-36 - Emit-only-one-main-entry-per-MARC-record.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-37 - Extend-CLI-test-coverage-to-argparse-wiring-round-resolution-and-config-layering.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-38 - Walk-a-real-run-from-a-fresh-scaffold.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-39 - Add-the-paratext-dependency-when-scaffolding-into-an-existing-project.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-4 - Genericise-the-defaults-away-from-local-inference-servers.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-40 - Fix-cross-batch-accumulation-overwriting-metadata.jsonl.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-41 - Remove-the-silent-hf-default-from-format.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-42 - Add-paratext-export-db.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-43 - Decide-whether-a-gold-export-ships-as-a-held-out-test-split.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-44 - HF-export-v2-multi-image-projects-and-round-versioning-as-Hub-revisions.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-45 - Add-paratext-bench.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-46 - Review-UI-polish-flagged-stat-key-score-badge-and-verdict-toggles.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-47 - Eval-editor-reach-View-hidden-fields-and-diff-corrected-against-model-output.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-48 - Add-richer-scaffolder-field-types-for-enums-and-lists.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-49 - Extend-the-carbon-providers.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-5 - Add-source-adapters-and-slim-the-project-layout.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-50 - Build-the-wordmark-in-a-mono-typeface.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-51 - Decide-whether-to-pursue-the-PyPI-paratext-name.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-6 - Rename-init-to-new-and-document-every-CLI-flag.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-7 - Key-runs-and-packages-on-the-prompt-hash.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-8 - Add-paratext-export-for-publishing-a-reviewed-round.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-9 - Add-carbon-aware-scheduling.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/docs/configuration.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/docs/export.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/docs/green-scheduling.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/docs/hf-export-spec.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/docs/publishing.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/docs/scanned-cards.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/paratext.example.toml +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/AGENTS.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/carbon.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/cards.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/catalogue.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/cli.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/config.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/datasets.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/hf_export.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/inspect.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/io.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/packaging.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/paratext.example.toml +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/projects/__init__.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/projects/card_template/__init__.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/projects/card_template/prompt.md +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/projects/card_template/schema.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/records.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/review/__init__.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/review/hf_oauth.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/review/server.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/review/static/app.js +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/review/static/favicon.svg +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/review/static/index.html +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/review/static/oat.min.css +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/review/static/oat.min.js +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/runner.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/scaffold.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/sources.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/src/paratext/store.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_carbon.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_catalogue.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_cli.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_config.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_guide.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_hf_export.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_io.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_packaging.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_project_audit.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_records.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_review.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_rounds.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_runner.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_scaffold.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_show_through.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_sources.py +0 -0
- {paratext_cli-0.2.3 → paratext_cli-0.2.4}/tests/test_verso.py +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# the plain name on PyPI belongs to an unrelated project, so the distribution
|
|
4
4
|
# carries the `-cli` suffix.
|
|
5
5
|
name = "paratext-cli"
|
|
6
|
-
version = "0.2.
|
|
6
|
+
version = "0.2.4"
|
|
7
7
|
description = "Modular, project-based metadata extraction from digitised library/archive collections with a multimodal model"
|
|
8
8
|
readme = "README.md"
|
|
9
9
|
# Core is pure-Python + numpy/pillow/pydantic. The [detector] extra needs
|
|
@@ -84,6 +84,27 @@ def _guard_stale_output(output: Path, header: dict, project: str, re_extract: bo
|
|
|
84
84
|
)
|
|
85
85
|
|
|
86
86
|
|
|
87
|
+
def _report_failures(attempted: int, succeeded: int, last_error: str, output: Path) -> None:
|
|
88
|
+
"""A run where the model never answered is a failure, not an empty result.
|
|
89
|
+
|
|
90
|
+
Every call failing means one cause — a bad key, a wrong base-url, a model the
|
|
91
|
+
endpoint doesn't serve — so it stops with that cause instead of reporting
|
|
92
|
+
success over an empty file.
|
|
93
|
+
"""
|
|
94
|
+
failed = attempted - succeeded
|
|
95
|
+
if not failed:
|
|
96
|
+
return
|
|
97
|
+
errors = output.with_name(output.stem + "_errors" + output.suffix)
|
|
98
|
+
if succeeded:
|
|
99
|
+
print(f"\n! {failed} of {attempted} sample(s) failed — see {errors}")
|
|
100
|
+
return
|
|
101
|
+
raise SystemExit(
|
|
102
|
+
f"\nAll {attempted} sample(s) failed — the model was never reached.\n"
|
|
103
|
+
f" last error: {last_error}\n"
|
|
104
|
+
f" Check --base-url, --model and the API key, then see {errors}."
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
|
|
87
108
|
def run(
|
|
88
109
|
project: Project,
|
|
89
110
|
source: Path,
|
|
@@ -138,9 +159,12 @@ def run(
|
|
|
138
159
|
if seen:
|
|
139
160
|
logger.info("Resuming run — skipping %d already-processed sample(s)", len(seen))
|
|
140
161
|
|
|
162
|
+
attempted = succeeded = 0
|
|
163
|
+
last_error = ""
|
|
141
164
|
for sample in tqdm(project.iter_samples(source, limit), unit="sample"):
|
|
142
165
|
if sample.id in seen:
|
|
143
166
|
continue
|
|
167
|
+
attempted += 1
|
|
144
168
|
# A sample can be pre-classified by iter_samples (e.g. a deterministic
|
|
145
169
|
# verso filter) to skip the model call entirely.
|
|
146
170
|
pre = (sample.metadata or {}).get("preclassified")
|
|
@@ -154,6 +178,7 @@ def run(
|
|
|
154
178
|
"elapsed_s": 0.0,
|
|
155
179
|
},
|
|
156
180
|
)
|
|
181
|
+
succeeded += 1
|
|
157
182
|
continue
|
|
158
183
|
t0 = time.monotonic()
|
|
159
184
|
try:
|
|
@@ -188,6 +213,7 @@ def run(
|
|
|
188
213
|
except Exception as e:
|
|
189
214
|
append_error(output, sample.id, str(e))
|
|
190
215
|
logger.warning("[%s] failed: %s", sample.id, e)
|
|
216
|
+
last_error = str(e)
|
|
191
217
|
continue
|
|
192
218
|
elapsed = time.monotonic() - t0
|
|
193
219
|
record = {
|
|
@@ -197,6 +223,9 @@ def run(
|
|
|
197
223
|
"elapsed_s": round(elapsed, 3),
|
|
198
224
|
}
|
|
199
225
|
append_jsonl(output, record)
|
|
226
|
+
succeeded += 1
|
|
227
|
+
|
|
228
|
+
_report_failures(attempted, succeeded, last_error, Path(output))
|
|
200
229
|
|
|
201
230
|
for notice in getattr(project.source, "notices", []):
|
|
202
231
|
logger.warning("%s", notice)
|
|
@@ -165,3 +165,44 @@ def test_guard_is_a_no_op_for_a_new_file(tmp_path):
|
|
|
165
165
|
from paratext.extract import _guard_stale_output
|
|
166
166
|
|
|
167
167
|
_guard_stale_output(tmp_path / "nope.jsonl", _header(), "p", False)
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
def test_report_failures_is_silent_when_all_succeeded(tmp_path, capsys):
|
|
171
|
+
from paratext.extract import _report_failures
|
|
172
|
+
|
|
173
|
+
_report_failures(3, 3, "", tmp_path / "out.jsonl")
|
|
174
|
+
assert capsys.readouterr().out == ""
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def test_report_failures_notes_a_partial_failure(tmp_path, capsys):
|
|
178
|
+
from paratext.extract import _report_failures
|
|
179
|
+
|
|
180
|
+
_report_failures(5, 3, "boom", tmp_path / "out.jsonl")
|
|
181
|
+
out = capsys.readouterr().out
|
|
182
|
+
assert "2 of 5" in out and "out_errors.jsonl" in out
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def test_report_failures_stops_when_nothing_succeeded(tmp_path):
|
|
186
|
+
import pytest
|
|
187
|
+
|
|
188
|
+
from paratext.extract import _report_failures
|
|
189
|
+
|
|
190
|
+
with pytest.raises(SystemExit, match="All 4 sample"):
|
|
191
|
+
_report_failures(4, 0, "401 unauthorized", tmp_path / "out.jsonl")
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
def test_report_failures_names_the_last_error(tmp_path):
|
|
195
|
+
import pytest
|
|
196
|
+
|
|
197
|
+
from paratext.extract import _report_failures
|
|
198
|
+
|
|
199
|
+
with pytest.raises(SystemExit, match="401 unauthorized"):
|
|
200
|
+
_report_failures(1, 0, "401 unauthorized", tmp_path / "out.jsonl")
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
def test_report_failures_ignores_a_run_with_nothing_to_do(tmp_path, capsys):
|
|
204
|
+
from paratext.extract import _report_failures
|
|
205
|
+
|
|
206
|
+
# A full resume attempts nothing; that is not a failure.
|
|
207
|
+
_report_failures(0, 0, "", tmp_path / "out.jsonl")
|
|
208
|
+
assert capsys.readouterr().out == ""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-10 remove-the-watttime-provider.md
RENAMED
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-11 make-paratext-new-self-installing.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-19 add-the-scope-aware-export-modal.md
RENAMED
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-2 add-the-inbuilt-review-web-ui.md
RENAMED
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-20 move-the-review-ui-onto-oat.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-24 add-the-paratext-logo-and-favicon.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-49 extend-the-carbon-providers.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/.helical/tasks/PTX-9 add-carbon-aware-scheduling.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/milestones/m-4 - packaging-and-pypi-release.md
RENAMED
|
File without changes
|
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/milestones/m-6 - test-coverage-and-onboarding.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-10 - Remove-the-WattTime-provider.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-2 - Add-the-inbuilt-review-web-UI.md
RENAMED
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-20 - Move-the-review-UI-onto-Oat.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-49 - Extend-the-carbon-providers.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paratext_cli-0.2.3 → paratext_cli-0.2.4}/backlog/tasks/task-9 - Add-carbon-aware-scheduling.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|