Deploy Phase 2 dataset classifier
Browse filesSource GitHub commit: 740750973b9c67c0d55c209c006d860192f79dc2
This view is limited to 50 files because it contains too many changes. See raw diff
- .env.example +2 -0
- .gitattributes +9 -0
- .pytest_cache/.gitignore +2 -0
- .pytest_cache/CACHEDIR.TAG +4 -0
- .pytest_cache/README.md +8 -0
- .pytest_cache/v/cache/lastfailed +1 -0
- .pytest_cache/v/cache/nodeids +685 -0
- .ruff_cache/.gitignore +2 -0
- .ruff_cache/0.15.21/11885472981295785164 +0 -0
- .ruff_cache/0.15.21/1300401175170744610 +0 -0
- .ruff_cache/0.15.21/15131953968306051049 +0 -0
- .ruff_cache/0.15.21/15313280957554967660 +0 -0
- .ruff_cache/0.15.21/15432729255545051974 +0 -0
- .ruff_cache/0.15.21/17513344015243148911 +0 -0
- .ruff_cache/0.15.21/3143687862706329986 +0 -0
- .ruff_cache/0.15.21/7626447333909823739 +0 -0
- .ruff_cache/0.15.21/9412025680110365515 +0 -0
- .ruff_cache/CACHEDIR.TAG +1 -0
- .venv/.gitignore +2 -0
- .venv/bin/Activate.ps1 +248 -0
- .venv/bin/activate +76 -0
- .venv/bin/activate.csh +27 -0
- .venv/bin/activate.fish +69 -0
- .venv/bin/distro +6 -0
- .venv/bin/f2py +6 -0
- .venv/bin/fastapi +6 -0
- .venv/bin/gradio +6 -0
- .venv/bin/hf +6 -0
- .venv/bin/httpx +6 -0
- .venv/bin/huggingface-cli +6 -0
- .venv/bin/idna +6 -0
- .venv/bin/jsonschema +6 -0
- .venv/bin/markdown-it +6 -0
- .venv/bin/numpy-config +6 -0
- .venv/bin/openai +6 -0
- .venv/bin/pip +7 -0
- .venv/bin/pip3 +7 -0
- .venv/bin/pip3.13 +7 -0
- .venv/bin/py.test +6 -0
- .venv/bin/pygmentize +6 -0
- .venv/bin/pytest +6 -0
- .venv/bin/python +3 -0
- .venv/bin/python3 +3 -0
- .venv/bin/python3.13 +3 -0
- .venv/bin/ruff +3 -0
- .venv/bin/tiny-agents +6 -0
- .venv/bin/tqdm +6 -0
- .venv/bin/typer +6 -0
- .venv/bin/upload_theme +6 -0
- .venv/bin/uvicorn +6 -0
.env.example
CHANGED
|
@@ -5,6 +5,8 @@ ARTICLES_PATH=data/articles.json
|
|
| 5 |
# Generated output paths
|
| 6 |
OUTPUT_PATH=outputs/classification_results.json
|
| 7 |
CACHE_PATH=outputs/cache
|
|
|
|
|
|
|
| 8 |
|
| 9 |
# Model configuration. Do not commit real API keys.
|
| 10 |
MODEL_PROVIDER=openai
|
|
|
|
| 5 |
# Generated output paths
|
| 6 |
OUTPUT_PATH=outputs/classification_results.json
|
| 7 |
CACHE_PATH=outputs/cache
|
| 8 |
+
DATASET_OUTPUT_ROOT=outputs/datasets
|
| 9 |
+
DATASET_CACHE_ROOT=outputs/dataset-cache
|
| 10 |
|
| 11 |
# Model configuration. Do not commit real API keys.
|
| 12 |
MODEL_PROVIDER=openai
|
.gitattributes
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.venv/bin/python filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
.venv/bin/python3 filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
.venv/bin/python3.13 filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
.venv/bin/ruff filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
.venv/lib/python3.13/site-packages/PIL/_imaging.cpython-313-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
.venv/lib/python3.13/site-packages/PIL/_imagingcms.cpython-313-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
.venv/lib/python3.13/site-packages/PIL/_imagingft.cpython-313-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
.venv/lib/python3.13/site-packages/PIL/_imagingmath.cpython-313-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
.venv/lib/python3.13/site-packages/_brotli.cpython-313-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
.pytest_cache/.gitignore
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Created by pytest automatically.
|
| 2 |
+
*
|
.pytest_cache/CACHEDIR.TAG
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Signature: 8a477f597d28d172789f06886806bc55
|
| 2 |
+
# This file is a cache directory tag created by pytest.
|
| 3 |
+
# For information about cache directory tags, see:
|
| 4 |
+
# https://bford.info/cachedir/spec.html
|
.pytest_cache/README.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# pytest cache directory #
|
| 2 |
+
|
| 3 |
+
This directory contains data from the pytest's cache plugin,
|
| 4 |
+
which provides the `--lf` and `--ff` options, as well as the `cache` fixture.
|
| 5 |
+
|
| 6 |
+
**Do not** commit this to version control.
|
| 7 |
+
|
| 8 |
+
See [the docs](https://docs.pytest.org/en/stable/how-to/cache.html) for more information.
|
.pytest_cache/v/cache/lastfailed
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{}
|
.pytest_cache/v/cache/nodeids
ADDED
|
@@ -0,0 +1,685 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
"tests/datasets/test_application_service_corrective.py::test_all_frozen_cases_retrieve_through_production_composition[0]",
|
| 3 |
+
"tests/datasets/test_application_service_corrective.py::test_all_frozen_cases_retrieve_through_production_composition[1]",
|
| 4 |
+
"tests/datasets/test_application_service_corrective.py::test_all_frozen_cases_retrieve_through_production_composition[2]",
|
| 5 |
+
"tests/datasets/test_application_service_corrective.py::test_all_frozen_cases_retrieve_through_production_composition[3]",
|
| 6 |
+
"tests/datasets/test_application_service_corrective.py::test_cross_session_waiting_reference_is_rejected",
|
| 7 |
+
"tests/datasets/test_application_service_corrective.py::test_factory_constructs_concrete_production_composition_without_calls",
|
| 8 |
+
"tests/datasets/test_application_service_corrective.py::test_frozen_source_hashes_remain_manifest_exact",
|
| 9 |
+
"tests/datasets/test_application_service_corrective.py::test_invalid_cmr_requests_return_typed_zero_inference_failure[http://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=A_1]",
|
| 10 |
+
"tests/datasets/test_application_service_corrective.py::test_invalid_cmr_requests_return_typed_zero_inference_failure[https://cmr.earthdata.nasa.gov/search/collections.umm_json]",
|
| 11 |
+
"tests/datasets/test_application_service_corrective.py::test_invalid_cmr_requests_return_typed_zero_inference_failure[https://example.org/search/collections.umm_json?native_id=A_1]",
|
| 12 |
+
"tests/datasets/test_application_service_corrective.py::test_invalid_explicit_selection_stops_before_pdf_or_model[0-/tmp/local.pdf]",
|
| 13 |
+
"tests/datasets/test_application_service_corrective.py::test_invalid_explicit_selection_stops_before_pdf_or_model[0-https://evil.example/readme.pdf]",
|
| 14 |
+
"tests/datasets/test_application_service_corrective.py::test_invalid_explicit_selection_stops_before_pdf_or_model[0-tests/fixtures/datasets/pdf/README.pdf]",
|
| 15 |
+
"tests/datasets/test_application_service_corrective.py::test_invalid_explicit_selection_stops_before_pdf_or_model[1-None]",
|
| 16 |
+
"tests/datasets/test_application_service_corrective.py::test_no_gradio_or_ui_import_and_protected_files_unchanged",
|
| 17 |
+
"tests/datasets/test_application_service_corrective.py::test_retrieve_multiple_candidates_preserves_source_order_without_choice",
|
| 18 |
+
"tests/datasets/test_application_service_corrective.py::test_retrieve_no_readme_is_skipped_without_waiting_or_inference",
|
| 19 |
+
"tests/datasets/test_application_service_corrective.py::test_retrieve_one_candidate_persists_recoverable_waiting_boundary",
|
| 20 |
+
"tests/datasets/test_application_service_corrective.py::test_stage_events_and_application_results_do_not_expose_experts",
|
| 21 |
+
"tests/datasets/test_application_service_corrective.py::test_valid_selection_delegates_to_pdf_retrieval_and_stops_before_model",
|
| 22 |
+
"tests/datasets/test_application_service_corrective.py::test_waiting_checkpoint_can_be_reopened_after_service_restart",
|
| 23 |
+
"tests/datasets/test_classifier_adapter.py::test_article_prompt_schema_and_source_models_are_byte_compatible",
|
| 24 |
+
"tests/datasets/test_classifier_adapter.py::test_bounded_retry_success_and_exhaustion",
|
| 25 |
+
"tests/datasets/test_classifier_adapter.py::test_context_only_block_cannot_be_sole_support",
|
| 26 |
+
"tests/datasets/test_classifier_adapter.py::test_dataset_semantic_validator_not_run_and_schema_valid",
|
| 27 |
+
"tests/datasets/test_classifier_adapter.py::test_direct_child_enforced_at_term_and_variable_stages",
|
| 28 |
+
"tests/datasets/test_classifier_adapter.py::test_four_frozen_milestone6_outcomes_feed_or_block_adapter",
|
| 29 |
+
"tests/datasets/test_classifier_adapter.py::test_missing_unknown_duplicate_and_context_only_citations_fail",
|
| 30 |
+
"tests/datasets/test_classifier_adapter.py::test_multiple_branches_and_joint_multi_section_citations",
|
| 31 |
+
"tests/datasets/test_classifier_adapter.py::test_packet_hash_text_component_and_review_boundary_fail_before_model",
|
| 32 |
+
"tests/datasets/test_classifier_adapter.py::test_prompt_injection_and_expert_sentinel_remain_source_data",
|
| 33 |
+
"tests/datasets/test_classifier_adapter.py::test_raw_text_blocks_manifest_and_unknown_input_are_rejected",
|
| 34 |
+
"tests/datasets/test_classifier_adapter.py::test_response_contracts_reject_unknown_fields_and_missing_stop_citation",
|
| 35 |
+
"tests/datasets/test_classifier_adapter.py::test_sealed_expert_field_rejected_from_packet_and_context",
|
| 36 |
+
"tests/datasets/test_classifier_adapter.py::test_semantic_not_classified_is_completed_and_model_failure_is_not",
|
| 37 |
+
"tests/datasets/test_classifier_adapter.py::test_separate_confidence_and_weak_product_cannot_be_overridden",
|
| 38 |
+
"tests/datasets/test_classifier_adapter.py::test_stop_at_topic_term_vl1_vl2_and_select_vl3",
|
| 39 |
+
"tests/datasets/test_classifier_adapter.py::test_unknown_skipped_uncited_fabricated_and_extra_authority_fail[<lambda>0]",
|
| 40 |
+
"tests/datasets/test_classifier_adapter.py::test_unknown_skipped_uncited_fabricated_and_extra_authority_fail[<lambda>1]",
|
| 41 |
+
"tests/datasets/test_classifier_adapter.py::test_unknown_skipped_uncited_fabricated_and_extra_authority_fail[<lambda>2]",
|
| 42 |
+
"tests/datasets/test_classifier_adapter.py::test_unknown_skipped_uncited_fabricated_and_extra_authority_fail[<lambda>3]",
|
| 43 |
+
"tests/datasets/test_classifier_adapter.py::test_unknown_skipped_uncited_fabricated_and_extra_authority_fail[<lambda>4]",
|
| 44 |
+
"tests/datasets/test_cmr.py::test_all_frozen_cmr_fixtures_resolve_and_remain_unchanged",
|
| 45 |
+
"tests/datasets/test_cmr.py::test_blind_view_is_allow_listed_and_expert_payload_is_sealed",
|
| 46 |
+
"tests/datasets/test_cmr.py::test_client_authorization_and_cookie_state_are_rejected",
|
| 47 |
+
"tests/datasets/test_cmr.py::test_declared_and_streamed_size_limits_are_enforced",
|
| 48 |
+
"tests/datasets/test_cmr.py::test_encoded_response_is_rejected_to_preserve_exact_entity_bytes",
|
| 49 |
+
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload0-CMR_CARDINALITY]",
|
| 50 |
+
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload1-CMR_CARDINALITY]",
|
| 51 |
+
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload2-CMR_CARDINALITY_MISMATCH]",
|
| 52 |
+
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload3-CMR_HITS_INVALID]",
|
| 53 |
+
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload4-CMR_ITEMS_INVALID]",
|
| 54 |
+
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload5-CMR_ITEM_INVALID]",
|
| 55 |
+
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload6-CMR_META_INVALID]",
|
| 56 |
+
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload7-CMR_UMM_INVALID]",
|
| 57 |
+
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[http://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001-CMR_URL_SCHEME]",
|
| 58 |
+
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.json?native_id=TARGET_001-CMR_URL_PATH]",
|
| 59 |
+
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.umm_json-CMR_URL_NATIVE_ID_COUNT]",
|
| 60 |
+
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=-CMR_URL_NATIVE_ID_EMPTY]",
|
| 61 |
+
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001#fragment-CMR_URL_FRAGMENT]",
|
| 62 |
+
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001&access_token=secret-CMR_URL_AUTH_QUERY]",
|
| 63 |
+
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001&client-secret=secret-CMR_URL_AUTH_QUERY]",
|
| 64 |
+
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001&native_id=OTHER_001-CMR_URL_NATIVE_ID_COUNT]",
|
| 65 |
+
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov:444/search/collections.umm_json?native_id=TARGET_001-CMR_URL_PORT]",
|
| 66 |
+
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://example.test/search/collections.umm_json?native_id=TARGET_001-CMR_URL_HOST]",
|
| 67 |
+
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://user:password@cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001-CMR_URL_USERINFO]",
|
| 68 |
+
"tests/datasets/test_cmr.py::test_invalid_redirect_target_is_rejected[http://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001]",
|
| 69 |
+
"tests/datasets/test_cmr.py::test_invalid_redirect_target_is_rejected[https://cmr.earthdata.nasa.gov/search/collections.json?native_id=TARGET_001]",
|
| 70 |
+
"tests/datasets/test_cmr.py::test_invalid_redirect_target_is_rejected[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=OTHER_001]",
|
| 71 |
+
"tests/datasets/test_cmr.py::test_invalid_redirect_target_is_rejected[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001&token=x]",
|
| 72 |
+
"tests/datasets/test_cmr.py::test_invalid_redirect_target_is_rejected[https://cmr.earthdata.nasa.gov:444/search/collections.umm_json?native_id=TARGET_001]",
|
| 73 |
+
"tests/datasets/test_cmr.py::test_invalid_redirect_target_is_rejected[https://example.test/search/collections.umm_json?native_id=TARGET_001]",
|
| 74 |
+
"tests/datasets/test_cmr.py::test_leading_zeros_and_capitalization_are_preserved",
|
| 75 |
+
"tests/datasets/test_cmr.py::test_login_response_and_unsupported_or_missing_media_type_are_rejected",
|
| 76 |
+
"tests/datasets/test_cmr.py::test_manual_redirect_is_validated_and_preserved",
|
| 77 |
+
"tests/datasets/test_cmr.py::test_non_public_status_is_rejected[401]",
|
| 78 |
+
"tests/datasets/test_cmr.py::test_non_public_status_is_rejected[403]",
|
| 79 |
+
"tests/datasets/test_cmr.py::test_overall_operation_limit_is_enforced",
|
| 80 |
+
"tests/datasets/test_cmr.py::test_percent_encoded_native_id_is_decoded_once_and_preserved",
|
| 81 |
+
"tests/datasets/test_cmr.py::test_preclassification_failure_has_zero_inference_semantics",
|
| 82 |
+
"tests/datasets/test_cmr.py::test_redirect_loop_and_limit_are_rejected",
|
| 83 |
+
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD0]",
|
| 84 |
+
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD1]",
|
| 85 |
+
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD2]",
|
| 86 |
+
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD3]",
|
| 87 |
+
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD4]",
|
| 88 |
+
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD5]",
|
| 89 |
+
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD6]",
|
| 90 |
+
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD7]",
|
| 91 |
+
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REVISION_ID_INVALID0]",
|
| 92 |
+
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REVISION_ID_INVALID1]",
|
| 93 |
+
"tests/datasets/test_cmr.py::test_sealed_keyword_hash_is_stable_for_equivalent_payloads",
|
| 94 |
+
"tests/datasets/test_cmr.py::test_source_decoding_and_json_errors_are_typed[[]-CMR_JSON_ROOT]",
|
| 95 |
+
"tests/datasets/test_cmr.py::test_source_decoding_and_json_errors_are_typed[{\"not\":\"utf8\"}\\xff-CMR_TEXT_DECODE]",
|
| 96 |
+
"tests/datasets/test_cmr.py::test_source_decoding_and_json_errors_are_typed[{invalid-CMR_JSON_INVALID]",
|
| 97 |
+
"tests/datasets/test_cmr.py::test_submitted_returned_and_derived_native_ids_match_exactly[payload0]",
|
| 98 |
+
"tests/datasets/test_cmr.py::test_submitted_returned_and_derived_native_ids_match_exactly[payload1]",
|
| 99 |
+
"tests/datasets/test_cmr.py::test_submitted_returned_and_derived_native_ids_match_exactly[payload2]",
|
| 100 |
+
"tests/datasets/test_cmr.py::test_successful_retrieval_preserves_exact_bytes_headers_timestamp_and_hash",
|
| 101 |
+
"tests/datasets/test_cmr.py::test_transport_failures_are_typed[exception0-CMR_TIMEOUT]",
|
| 102 |
+
"tests/datasets/test_cmr.py::test_transport_failures_are_typed[exception1-CMR_TRANSPORT_ERROR]",
|
| 103 |
+
"tests/datasets/test_cmr.py::test_transport_failures_are_typed[exception2-CMR_TRANSPORT_ERROR]",
|
| 104 |
+
"tests/datasets/test_cmr.py::test_unknown_source_fields_are_preserved_and_entry_id_is_not_fabricated",
|
| 105 |
+
"tests/datasets/test_cmr.py::test_valid_url_preserves_exact_native_id_and_harmless_parameters",
|
| 106 |
+
"tests/datasets/test_comparison_milestone9.py::test_ambiguous_normalized_match_is_unresolved_and_review_required",
|
| 107 |
+
"tests/datasets/test_comparison_milestone9.py::test_authoritative_uuid_and_fields_resolve_consistently",
|
| 108 |
+
"tests/datasets/test_comparison_milestone9.py::test_comparison_and_reviews_are_stable_idempotent_and_additive",
|
| 109 |
+
"tests/datasets/test_comparison_milestone9.py::test_comparison_cache_is_separate_and_expert_sensitive",
|
| 110 |
+
"tests/datasets/test_comparison_milestone9.py::test_comparison_category_precedence_and_review[experts0-vl1-atmosphere-carbon-already_assigned-False]",
|
| 111 |
+
"tests/datasets/test_comparison_milestone9.py::test_comparison_category_precedence_and_review[experts1-vl2-carbon-dioxide-proposed_refinement-True]",
|
| 112 |
+
"tests/datasets/test_comparison_milestone9.py::test_comparison_category_precedence_and_review[experts2-vl1-atmosphere-carbon-redundant_result-False]",
|
| 113 |
+
"tests/datasets/test_comparison_milestone9.py::test_comparison_category_precedence_and_review[experts3-vl1-atmosphere-carbon-proposed_addition-True]",
|
| 114 |
+
"tests/datasets/test_comparison_milestone9.py::test_comparison_category_precedence_and_review[experts4-vl1-atmosphere-carbon-review_required-True]",
|
| 115 |
+
"tests/datasets/test_comparison_milestone9.py::test_comparison_logs_contain_counts_not_expert_values",
|
| 116 |
+
"tests/datasets/test_comparison_milestone9.py::test_comparison_persistence_failure_publishes_no_complete_artifact",
|
| 117 |
+
"tests/datasets/test_comparison_milestone9.py::test_discontinuous_uuid_chain_is_rejected",
|
| 118 |
+
"tests/datasets/test_comparison_milestone9.py::test_duplicate_blind_records_are_preserved_not_mutated",
|
| 119 |
+
"tests/datasets/test_comparison_milestone9.py::test_duplicate_experts_preserve_every_source_position",
|
| 120 |
+
"tests/datasets/test_comparison_milestone9.py::test_exact_assignment_at_every_supported_level[term-atmospheric-chemistry-path1]",
|
| 121 |
+
"tests/datasets/test_comparison_milestone9.py::test_exact_assignment_at_every_supported_level[topic-atmosphere-path0]",
|
| 122 |
+
"tests/datasets/test_comparison_milestone9.py::test_exact_assignment_at_every_supported_level[vl1-atmosphere-carbon-path2]",
|
| 123 |
+
"tests/datasets/test_comparison_milestone9.py::test_exact_assignment_at_every_supported_level[vl2-carbon-dioxide-path3]",
|
| 124 |
+
"tests/datasets/test_comparison_milestone9.py::test_exact_assignment_at_every_supported_level[vl3-carbon-dioxide-profiles-path4]",
|
| 125 |
+
"tests/datasets/test_comparison_milestone9.py::test_exact_match_precedes_broader_secondary_relationship",
|
| 126 |
+
"tests/datasets/test_comparison_milestone9.py::test_frozen_experts_are_used_only_after_independent_blind_result[0]",
|
| 127 |
+
"tests/datasets/test_comparison_milestone9.py::test_frozen_experts_are_used_only_after_independent_blind_result[1]",
|
| 128 |
+
"tests/datasets/test_comparison_milestone9.py::test_frozen_experts_are_used_only_after_independent_blind_result[2]",
|
| 129 |
+
"tests/datasets/test_comparison_milestone9.py::test_frozen_experts_are_used_only_after_independent_blind_result[3]",
|
| 130 |
+
"tests/datasets/test_comparison_milestone9.py::test_invalid_and_unknown_uuid_remain_unresolved[<lambda>-invalid_uuid]",
|
| 131 |
+
"tests/datasets/test_comparison_milestone9.py::test_invalid_and_unknown_uuid_remain_unresolved[<lambda>-unknown_uuid]",
|
| 132 |
+
"tests/datasets/test_comparison_milestone9.py::test_invalid_blind_hash_never_invokes_unsealer",
|
| 133 |
+
"tests/datasets/test_comparison_milestone9.py::test_multiple_blind_and_expert_branches_keep_independent_items",
|
| 134 |
+
"tests/datasets/test_comparison_milestone9.py::test_narrower_expert_precedence_preserves_broader_secondary_relationship",
|
| 135 |
+
"tests/datasets/test_comparison_milestone9.py::test_not_classified_unresolved_expert_creates_additive_review_only",
|
| 136 |
+
"tests/datasets/test_comparison_milestone9.py::test_ordered_expert_resolution[source0-resolved_exact_ordered_fields-True]",
|
| 137 |
+
"tests/datasets/test_comparison_milestone9.py::test_ordered_expert_resolution[source1-resolved_unique_normalized_ordered_fields-True]",
|
| 138 |
+
"tests/datasets/test_comparison_milestone9.py::test_ordered_expert_resolution[source2-missing_required_intermediate_level-False]",
|
| 139 |
+
"tests/datasets/test_comparison_milestone9.py::test_ordered_expert_resolution[source3-unmatched_path-False]",
|
| 140 |
+
"tests/datasets/test_comparison_milestone9.py::test_ordered_expert_resolution[source4-malformed_assignment-False]",
|
| 141 |
+
"tests/datasets/test_comparison_milestone9.py::test_semantic_not_classified_preserves_expert_only_without_removal",
|
| 142 |
+
"tests/datasets/test_comparison_milestone9.py::test_unverified_input_never_invokes_unsealer",
|
| 143 |
+
"tests/datasets/test_comparison_milestone9.py::test_uuid_wrong_level_and_uuid_field_conflict_are_explicit",
|
| 144 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_arbitrary_or_cross_session_selection_never_reaches_service[/tmp/readme.pdf]",
|
| 145 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_arbitrary_or_cross_session_selection_never_reaches_service[https://evil.example/a.pdf]",
|
| 146 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_arbitrary_or_cross_session_selection_never_reaches_service[other-session-candidate]",
|
| 147 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_candidates_preserve_source_order_and_exact_selection",
|
| 148 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_comparison_failure_preserves_verified_blind_without_partial_experts",
|
| 149 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_fresh_session_state_and_initial_enablement",
|
| 150 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_fresh_state_is_per_session_and_initially_safe",
|
| 151 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_multiple_candidates_preserve_order_and_exact_selected_request",
|
| 152 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_presenters_expose_only_sanitized_values",
|
| 153 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_protected_hashes_and_root_launcher_boundary",
|
| 154 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_protected_publication_hashes_unchanged",
|
| 155 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_real_gradio_builds_one_blocks_application_without_work",
|
| 156 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_real_gradio_constructs_exact_two_tabs_without_service_calls",
|
| 157 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_enablement[0-skipped-False]",
|
| 158 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_enablement[1-completed-True]",
|
| 159 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_enablement[2-completed-False]",
|
| 160 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_states[0-None-False]",
|
| 161 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_states[1-choice-0-True]",
|
| 162 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_states[1-dynamic-True]",
|
| 163 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_states[2-None-False]",
|
| 164 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_failure_is_sanitized_and_zero_inference",
|
| 165 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_semantic_not_classified_is_distinct_and_comparison_may_be_authorized",
|
| 166 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_state_serialization_contains_no_raw_source_or_sealed_expert",
|
| 167 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_tampered_stale_and_local_selection_are_rejected_without_service_call",
|
| 168 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_two_sessions_cannot_cross_candidates_or_results",
|
| 169 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_two_sessions_cannot_cross_selection_or_results",
|
| 170 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_typed_failures_are_sanitized_and_preinference",
|
| 171 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_untyped_failures_hide_raw_secret_path_and_markup",
|
| 172 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_unverified_failure_never_exposes_blind_or_expert_values",
|
| 173 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_unverified_or_comparison_failed_result_never_exposes_experts",
|
| 174 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_url_edit_stales_selection_and_hides_outputs",
|
| 175 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_verified_blind_and_authorized_comparison_render_separately",
|
| 176 |
+
"tests/datasets/test_dataset_ui_milestone10.py::test_verified_result_controls_expert_visibility_and_preserves_confidences",
|
| 177 |
+
"tests/datasets/test_documents.py::test_all_frozen_cases_require_discovery_selection_and_exact_mocked_bytes",
|
| 178 |
+
"tests/datasets/test_documents.py::test_authentication_status_is_not_public[401]",
|
| 179 |
+
"tests/datasets/test_documents.py::test_authentication_status_is_not_public[403]",
|
| 180 |
+
"tests/datasets/test_documents.py::test_empty_invalid_dns_results_are_typed",
|
| 181 |
+
"tests/datasets/test_documents.py::test_failure_preserves_partial_artifact_and_performs_no_cleanup",
|
| 182 |
+
"tests/datasets/test_documents.py::test_login_html_is_not_public",
|
| 183 |
+
"tests/datasets/test_documents.py::test_mixed_public_nonpublic_and_dns_rebinding_are_rejected",
|
| 184 |
+
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[0.0.0.0]",
|
| 185 |
+
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[10.0.0.1]",
|
| 186 |
+
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[127.0.0.1]",
|
| 187 |
+
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[169.254.1.1]",
|
| 188 |
+
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[169.254.169.254]",
|
| 189 |
+
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[192.0.2.1]",
|
| 190 |
+
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[2001:db8::1]",
|
| 191 |
+
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[224.0.0.1]",
|
| 192 |
+
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[::1]",
|
| 193 |
+
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[::]",
|
| 194 |
+
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[fe80::1]",
|
| 195 |
+
"tests/datasets/test_documents.py::test_operation_metadata_encoding_client_state_and_run_collision_controls",
|
| 196 |
+
"tests/datasets/test_documents.py::test_pdf_byte_validation_is_extension_independent_and_stable[None]",
|
| 197 |
+
"tests/datasets/test_documents.py::test_pdf_byte_validation_is_extension_independent_and_stable[application/octet-stream]",
|
| 198 |
+
"tests/datasets/test_documents.py::test_pdf_byte_validation_is_extension_independent_and_stable[application/pdf]",
|
| 199 |
+
"tests/datasets/test_documents.py::test_public_ipv4_ipv6_and_mixed_public_addresses_are_allowed[addresses0]",
|
| 200 |
+
"tests/datasets/test_documents.py::test_public_ipv4_ipv6_and_mixed_public_addresses_are_allowed[addresses1]",
|
| 201 |
+
"tests/datasets/test_documents.py::test_public_ipv4_ipv6_and_mixed_public_addresses_are_allowed[addresses2]",
|
| 202 |
+
"tests/datasets/test_documents.py::test_raw_url_local_path_and_tampered_selection_cannot_enter_retriever",
|
| 203 |
+
"tests/datasets/test_documents.py::test_redirect_loop_and_limit",
|
| 204 |
+
"tests/datasets/test_documents.py::test_selected_url_policy_rejects_unsafe_destinations[file:///tmp/readme.pdf]",
|
| 205 |
+
"tests/datasets/test_documents.py::test_selected_url_policy_rejects_unsafe_destinations[https://-bad.example/readme.pdf]",
|
| 206 |
+
"tests/datasets/test_documents.py::test_selected_url_policy_rejects_unsafe_destinations[https://bad_host.example/readme.pdf]",
|
| 207 |
+
"tests/datasets/test_documents.py::test_selected_url_policy_rejects_unsafe_destinations[https://example.test/readme.pdf#fragment]",
|
| 208 |
+
"tests/datasets/test_documents.py::test_selected_url_policy_rejects_unsafe_destinations[https://example.test:444/readme.pdf]",
|
| 209 |
+
"tests/datasets/test_documents.py::test_selected_url_policy_rejects_unsafe_destinations[https://user:pass@example.test/readme.pdf]",
|
| 210 |
+
"tests/datasets/test_documents.py::test_size_content_length_truncation_and_operation_limits",
|
| 211 |
+
"tests/datasets/test_documents.py::test_transport_failures_are_typed_and_preserve_no_false_success[exc0]",
|
| 212 |
+
"tests/datasets/test_documents.py::test_transport_failures_are_typed_and_preserve_no_false_success[exc1]",
|
| 213 |
+
"tests/datasets/test_documents.py::test_transport_failures_are_typed_and_preserve_no_false_success[exc2]",
|
| 214 |
+
"tests/datasets/test_documents.py::test_unsafe_and_authentication_redirects_are_rejected[ftp://example.test/a.pdf]",
|
| 215 |
+
"tests/datasets/test_documents.py::test_unsafe_and_authentication_redirects_are_rejected[https://example.test/a.pdf#x]",
|
| 216 |
+
"tests/datasets/test_documents.py::test_unsafe_and_authentication_redirects_are_rejected[https://example.test/a.pdf?token=x]",
|
| 217 |
+
"tests/datasets/test_documents.py::test_unsafe_and_authentication_redirects_are_rejected[https://example.test/login]",
|
| 218 |
+
"tests/datasets/test_documents.py::test_unsafe_and_authentication_redirects_are_rejected[https://example.test:444/a.pdf]",
|
| 219 |
+
"tests/datasets/test_documents.py::test_unsafe_and_authentication_redirects_are_rejected[https://u:p@example.test/a.pdf]",
|
| 220 |
+
"tests/datasets/test_documents.py::test_unsupported_and_misleading_content_is_rejected[%PDF-1.7 malformed-application/pdf]",
|
| 221 |
+
"tests/datasets/test_documents.py::test_unsupported_and_misleading_content_is_rejected[-application/pdf]",
|
| 222 |
+
"tests/datasets/test_documents.py::test_unsupported_and_misleading_content_is_rejected[<html>not pdf</html>-text/html]",
|
| 223 |
+
"tests/datasets/test_documents.py::test_unsupported_and_misleading_content_is_rejected[PNG-application/pdf]",
|
| 224 |
+
"tests/datasets/test_documents.py::test_unsupported_and_misleading_content_is_rejected[plain-text/plain]",
|
| 225 |
+
"tests/datasets/test_documents.py::test_unsupported_and_misleading_content_is_rejected[{}-application/json]",
|
| 226 |
+
"tests/datasets/test_documents.py::test_valid_redirect_revalidates_destination_and_preserves_history",
|
| 227 |
+
"tests/datasets/test_evidence.py::test_all_frozen_cases_group_and_preserve_product_scope_without_keywords",
|
| 228 |
+
"tests/datasets/test_evidence.py::test_authoritative_text_or_hash_mismatch_rejected",
|
| 229 |
+
"tests/datasets/test_evidence.py::test_conflicting_repeated_decisions_are_rejected",
|
| 230 |
+
"tests/datasets/test_evidence.py::test_context_only_packet_and_vague_scope_stop_typed",
|
| 231 |
+
"tests/datasets/test_evidence.py::test_deterministic_single_and_multiple_bounded_groups",
|
| 232 |
+
"tests/datasets/test_evidence.py::test_expert_sentinel_rejected_by_blind_type_and_absent_everywhere",
|
| 233 |
+
"tests/datasets/test_evidence.py::test_explicitly_linked_context_is_labeled_and_cannot_stand_alone",
|
| 234 |
+
"tests/datasets/test_evidence.py::test_generated_summary_excerpt_or_altered_text_never_accepted",
|
| 235 |
+
"tests/datasets/test_evidence.py::test_other_product_and_ambiguous_blocks_cannot_enter_packet",
|
| 236 |
+
"tests/datasets/test_evidence.py::test_packet_exact_text_source_order_hashes_and_classifier_boundary",
|
| 237 |
+
"tests/datasets/test_evidence.py::test_packet_hash_changes_with_authoritative_source_text",
|
| 238 |
+
"tests/datasets/test_evidence.py::test_packet_limit_second_pass_and_single_bounded_reduction",
|
| 239 |
+
"tests/datasets/test_evidence.py::test_packet_still_oversized_after_one_pass_is_explicit_failure",
|
| 240 |
+
"tests/datasets/test_evidence.py::test_reduction_cannot_override_product_scope",
|
| 241 |
+
"tests/datasets/test_evidence.py::test_retry_success_and_prompt_injection_isolation",
|
| 242 |
+
"tests/datasets/test_evidence.py::test_schema_is_strict_and_packet_schema_validates_result",
|
| 243 |
+
"tests/datasets/test_evidence.py::test_stable_hashes_policy_changes_and_volatile_data_excluded",
|
| 244 |
+
"tests/datasets/test_evidence.py::test_stale_manifest_identity_stops_before_model_call",
|
| 245 |
+
"tests/datasets/test_evidence.py::test_strict_response_partition_ids_scope_and_links[<lambda>-EVIDENCE_SELECTION_RETRIES_EXHAUSTED0]",
|
| 246 |
+
"tests/datasets/test_evidence.py::test_strict_response_partition_ids_scope_and_links[<lambda>-EVIDENCE_SELECTION_RETRIES_EXHAUSTED1]",
|
| 247 |
+
"tests/datasets/test_evidence.py::test_strict_response_partition_ids_scope_and_links[<lambda>-EVIDENCE_SELECTION_RETRIES_EXHAUSTED2]",
|
| 248 |
+
"tests/datasets/test_evidence.py::test_strict_response_partition_ids_scope_and_links[<lambda>-EVIDENCE_SELECTION_RETRIES_EXHAUSTED3]",
|
| 249 |
+
"tests/datasets/test_evidence.py::test_strict_response_partition_ids_scope_and_links[<lambda>-EVIDENCE_SELECTION_RETRIES_EXHAUSTED4]",
|
| 250 |
+
"tests/datasets/test_evidence.py::test_unknown_fields_and_invalid_role_fail_schema_and_bounded_retry",
|
| 251 |
+
"tests/datasets/test_expert_source_boundary.py::test_all_frozen_sources_persist_exact_ordered_sealed_artifacts[0]",
|
| 252 |
+
"tests/datasets/test_expert_source_boundary.py::test_all_frozen_sources_persist_exact_ordered_sealed_artifacts[1]",
|
| 253 |
+
"tests/datasets/test_expert_source_boundary.py::test_all_frozen_sources_persist_exact_ordered_sealed_artifacts[2]",
|
| 254 |
+
"tests/datasets/test_expert_source_boundary.py::test_all_frozen_sources_persist_exact_ordered_sealed_artifacts[3]",
|
| 255 |
+
"tests/datasets/test_expert_source_boundary.py::test_cross_run_and_tampered_sealed_artifacts_are_rejected",
|
| 256 |
+
"tests/datasets/test_expert_source_boundary.py::test_expert_change_does_not_change_blind_view_result_or_cache_identity",
|
| 257 |
+
"tests/datasets/test_expert_source_boundary.py::test_fixture_hashes_remain_exact",
|
| 258 |
+
"tests/datasets/test_expert_source_boundary.py::test_generated_corrective_schemas_have_no_drift",
|
| 259 |
+
"tests/datasets/test_expert_source_boundary.py::test_identical_boundary_is_stable_and_immutable",
|
| 260 |
+
"tests/datasets/test_expert_source_boundary.py::test_legacy_verified_reference_without_binding_is_rejected",
|
| 261 |
+
"tests/datasets/test_expert_source_boundary.py::test_sealed_persistence_interruption_is_prepublication_and_non_deleting",
|
| 262 |
+
"tests/datasets/test_expert_source_boundary.py::test_verified_reference_contains_opaque_complete_provenance",
|
| 263 |
+
"tests/datasets/test_extraction.py::test_all_frozen_pdfs_extract_deterministically_and_validate_schema",
|
| 264 |
+
"tests/datasets/test_extraction.py::test_blank_page_warning_and_fully_blank_failure",
|
| 265 |
+
"tests/datasets/test_extraction.py::test_encrypted_and_malformed_pdf_fail_before_inference",
|
| 266 |
+
"tests/datasets/test_extraction.py::test_hash_page_character_block_and_timeout_limits",
|
| 267 |
+
"tests/datasets/test_extraction.py::test_image_only_page_and_document",
|
| 268 |
+
"tests/datasets/test_extraction.py::test_multiple_headings_on_page_and_heading_at_page_end",
|
| 269 |
+
"tests/datasets/test_extraction.py::test_multiple_pages_repeated_headings_boundary_and_cross_page_section",
|
| 270 |
+
"tests/datasets/test_extraction.py::test_no_heading_uses_derived_label_and_long_text_splits_deterministically",
|
| 271 |
+
"tests/datasets/test_extraction.py::test_one_page_exact_provenance_stability_and_reconstruction",
|
| 272 |
+
"tests/datasets/test_extraction.py::test_page_failure_partial_failure_and_unavailable_coordinates",
|
| 273 |
+
"tests/datasets/test_extraction.py::test_policy_version_change_is_explicit_but_content_ids_remain_source_based",
|
| 274 |
+
"tests/datasets/test_extraction.py::test_table_multicolumn_and_low_coverage_warnings",
|
| 275 |
+
"tests/datasets/test_fixture_manifest.py::test_canonical_source_indexes_match_original_entries_and_production_discovery",
|
| 276 |
+
"tests/datasets/test_fixture_manifest.py::test_fixture_case_serializes_only_canonical_source_index",
|
| 277 |
+
"tests/datasets/test_fixture_manifest.py::test_frozen_manifest_loads_all_cases_without_hard_coded_case_paths",
|
| 278 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_contains_no_expected_keyword_answers",
|
| 279 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_absolute_and_escaping_paths[../outside.json]",
|
| 280 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_absolute_and_escaping_paths[/etc/passwd]",
|
| 281 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_duplicate_case_and_native_ids",
|
| 282 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_invalid_selected_readme_source_index[-1]",
|
| 283 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_invalid_selected_readme_source_index[1.5]",
|
| 284 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_invalid_selected_readme_source_index[5]",
|
| 285 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_invalid_selected_readme_source_index[None]",
|
| 286 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_invalid_selected_readme_source_index[True]",
|
| 287 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_missing_or_non_regular_references",
|
| 288 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_noncanonical_source_index_names[selected_readme_source_position]",
|
| 289 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_noncanonical_source_index_names[source_index]",
|
| 290 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_noncanonical_source_index_names[source_position]",
|
| 291 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_semantically_wrong_source_index[0]",
|
| 292 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_semantically_wrong_source_index[10000]",
|
| 293 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_semantically_wrong_source_index[4]",
|
| 294 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_requires_selected_readme_source_index",
|
| 295 |
+
"tests/datasets/test_fixture_manifest.py::test_manifest_validates_hash_format_and_provenance_fields",
|
| 296 |
+
"tests/datasets/test_models_and_schemas.py::test_comparison_requires_persisted_blind_result",
|
| 297 |
+
"tests/datasets/test_models_and_schemas.py::test_core_dataset_schemas_are_valid_and_accept_typed_outputs",
|
| 298 |
+
"tests/datasets/test_models_and_schemas.py::test_dataset_comparison_category_and_schema_contract",
|
| 299 |
+
"tests/datasets/test_models_and_schemas.py::test_dataset_error_taxonomy_is_separate_and_hierarchical",
|
| 300 |
+
"tests/datasets/test_models_and_schemas.py::test_dataset_identity_preserves_concept_native_and_legacy_ids",
|
| 301 |
+
"tests/datasets/test_models_and_schemas.py::test_dataset_settings_are_namespaced_and_environment_configurable",
|
| 302 |
+
"tests/datasets/test_models_and_schemas.py::test_evidence_packet_rejects_duplicate_block_ids",
|
| 303 |
+
"tests/datasets/test_models_and_schemas.py::test_extraction_and_evidence_contracts_preserve_exact_text",
|
| 304 |
+
"tests/datasets/test_models_and_schemas.py::test_four_dataset_schemas_are_valid_and_accept_typed_outputs",
|
| 305 |
+
"tests/datasets/test_models_and_schemas.py::test_invalid_dataset_schema_example_is_rejected",
|
| 306 |
+
"tests/datasets/test_models_and_schemas.py::test_publication_contract_is_unchanged",
|
| 307 |
+
"tests/datasets/test_models_and_schemas.py::test_unattempted_classification_forbids_inference_outputs[blind_result-value2]",
|
| 308 |
+
"tests/datasets/test_models_and_schemas.py::test_unattempted_classification_forbids_inference_outputs[classification_outcome-classified]",
|
| 309 |
+
"tests/datasets/test_models_and_schemas.py::test_unattempted_classification_forbids_inference_outputs[classifications-value1]",
|
| 310 |
+
"tests/datasets/test_models_and_schemas.py::test_unattempted_classification_forbids_inference_outputs[comparison_reference-comparison.json]",
|
| 311 |
+
"tests/datasets/test_models_and_schemas.py::test_unattempted_classification_forbids_inference_outputs[processing_metadata-value4]",
|
| 312 |
+
"tests/datasets/test_models_and_schemas.py::test_valid_unattempted_dataset_result",
|
| 313 |
+
"tests/datasets/test_product_resolution.py::test_batched_responses_form_exact_source_order_partition",
|
| 314 |
+
"tests/datasets/test_product_resolution.py::test_boundary_aware_identity_capitalization_version_and_signal_stability",
|
| 315 |
+
"tests/datasets/test_product_resolution.py::test_bounded_retry_succeeds_after_invalid_coverage_response",
|
| 316 |
+
"tests/datasets/test_product_resolution.py::test_deterministic_complete_identity_resolution_makes_zero_model_calls",
|
| 317 |
+
"tests/datasets/test_product_resolution.py::test_enumeration_family_template_heading_and_optional_structure_signals",
|
| 318 |
+
"tests/datasets/test_product_resolution.py::test_every_coverage_mode_is_typed_and_ambiguity_requires_review[explicit_multi_product]",
|
| 319 |
+
"tests/datasets/test_product_resolution.py::test_every_coverage_mode_is_typed_and_ambiguity_requires_review[product_family]",
|
| 320 |
+
"tests/datasets/test_product_resolution.py::test_every_coverage_mode_is_typed_and_ambiguity_requires_review[single_product]",
|
| 321 |
+
"tests/datasets/test_product_resolution.py::test_every_coverage_mode_is_typed_and_ambiguity_requires_review[undetermined]",
|
| 322 |
+
"tests/datasets/test_product_resolution.py::test_every_coverage_mode_is_typed_and_ambiguity_requires_review[vague_product_scope]",
|
| 323 |
+
"tests/datasets/test_product_resolution.py::test_explicit_readme_alias_preserves_literal_span_and_provenance",
|
| 324 |
+
"tests/datasets/test_product_resolution.py::test_four_frozen_coverage_modes_scope_counts_and_expert_isolation",
|
| 325 |
+
"tests/datasets/test_product_resolution.py::test_invalid_model_block_partition_alias_and_products_retry_then_fail[alias]",
|
| 326 |
+
"tests/datasets/test_product_resolution.py::test_invalid_model_block_partition_alias_and_products_retry_then_fail[cross_document]",
|
| 327 |
+
"tests/datasets/test_product_resolution.py::test_invalid_model_block_partition_alias_and_products_retry_then_fail[duplicate]",
|
| 328 |
+
"tests/datasets/test_product_resolution.py::test_invalid_model_block_partition_alias_and_products_retry_then_fail[missing]",
|
| 329 |
+
"tests/datasets/test_product_resolution.py::test_invalid_model_block_partition_alias_and_products_retry_then_fail[product]",
|
| 330 |
+
"tests/datasets/test_product_resolution.py::test_invalid_model_block_partition_alias_and_products_retry_then_fail[unknown]",
|
| 331 |
+
"tests/datasets/test_product_resolution.py::test_malformed_schema_enum_confidence_timeout_and_retry_exhaustion",
|
| 332 |
+
"tests/datasets/test_product_resolution.py::test_model_requests_use_dataset_stages_and_strict_response_schemas",
|
| 333 |
+
"tests/datasets/test_product_resolution.py::test_prompt_injection_is_delimited_and_cannot_change_schema_or_target",
|
| 334 |
+
"tests/datasets/test_product_resolution.py::test_sealed_expert_sentinel_is_unreachable_from_blind_prompts_results_and_errors",
|
| 335 |
+
"tests/datasets/test_product_resolution.py::test_source_order_partition_inclusion_exclusion_ambiguity_and_context",
|
| 336 |
+
"tests/datasets/test_readme_discovery.py::test_blind_view_contract_rejects_non_array_related_urls",
|
| 337 |
+
"tests/datasets/test_readme_discovery.py::test_changed_or_stale_selection_binding_is_rejected",
|
| 338 |
+
"tests/datasets/test_readme_discovery.py::test_duplicate_candidates_remain_distinct_by_source_position",
|
| 339 |
+
"tests/datasets/test_readme_discovery.py::test_exact_match_without_usable_url_is_explicit_error[4]",
|
| 340 |
+
"tests/datasets/test_readme_discovery.py::test_exact_match_without_usable_url_is_explicit_error[None]",
|
| 341 |
+
"tests/datasets/test_readme_discovery.py::test_exact_match_without_usable_url_is_explicit_error[url2]",
|
| 342 |
+
"tests/datasets/test_readme_discovery.py::test_exact_match_without_usable_url_is_explicit_error[url3]",
|
| 343 |
+
"tests/datasets/test_readme_discovery.py::test_exact_subtype_only_and_complete_source_order_preservation",
|
| 344 |
+
"tests/datasets/test_readme_discovery.py::test_missing_null_non_string_and_malformed_subtypes_do_not_match[3]",
|
| 345 |
+
"tests/datasets/test_readme_discovery.py::test_missing_null_non_string_and_malformed_subtypes_do_not_match[None]",
|
| 346 |
+
"tests/datasets/test_readme_discovery.py::test_missing_null_non_string_and_malformed_subtypes_do_not_match[READ-ME ]",
|
| 347 |
+
"tests/datasets/test_readme_discovery.py::test_missing_null_non_string_and_malformed_subtypes_do_not_match[subtype2]",
|
| 348 |
+
"tests/datasets/test_readme_discovery.py::test_missing_null_non_string_and_malformed_subtypes_do_not_match[subtype3]",
|
| 349 |
+
"tests/datasets/test_readme_discovery.py::test_one_candidate_requires_explicit_confirmation",
|
| 350 |
+
"tests/datasets/test_readme_discovery.py::test_selection_rejects_missing_multiple_position_and_url_substitution[selections0]",
|
| 351 |
+
"tests/datasets/test_readme_discovery.py::test_selection_rejects_missing_multiple_position_and_url_substitution[selections1]",
|
| 352 |
+
"tests/datasets/test_readme_discovery.py::test_selection_rejects_missing_multiple_position_and_url_substitution[selections2]",
|
| 353 |
+
"tests/datasets/test_readme_discovery.py::test_selection_rejects_missing_multiple_position_and_url_substitution[selections3]",
|
| 354 |
+
"tests/datasets/test_readme_discovery.py::test_selection_rejects_missing_multiple_position_and_url_substitution[selections4]",
|
| 355 |
+
"tests/datasets/test_readme_discovery.py::test_zero_candidate_outcome_has_exact_nonsemantic_boundary",
|
| 356 |
+
"tests/datasets/test_runtime_milestone8.py::test_artifact_store_is_atomic_immutable_and_run_isolated",
|
| 357 |
+
"tests/datasets/test_runtime_milestone8.py::test_atomic_failure_never_publishes_success",
|
| 358 |
+
"tests/datasets/test_runtime_milestone8.py::test_blind_cache_round_trip_and_tamper_detection",
|
| 359 |
+
"tests/datasets/test_runtime_milestone8.py::test_cache_identity_requires_complete_stage_inputs",
|
| 360 |
+
"tests/datasets/test_runtime_milestone8.py::test_failed_attempt_checkpoint_prevents_transport",
|
| 361 |
+
"tests/datasets/test_runtime_milestone8.py::test_illegal_and_terminal_transitions_are_rejected",
|
| 362 |
+
"tests/datasets/test_runtime_milestone8.py::test_inference_attempt_is_durable_before_transport",
|
| 363 |
+
"tests/datasets/test_runtime_milestone8.py::test_log_contract_rejects_absolute_reference",
|
| 364 |
+
"tests/datasets/test_runtime_milestone8.py::test_ordered_pipeline_no_readme_is_preinference_skip",
|
| 365 |
+
"tests/datasets/test_runtime_milestone8.py::test_recovery_uses_validated_checkpoint_chain",
|
| 366 |
+
"tests/datasets/test_runtime_milestone8.py::test_runtime_models_reject_unknown_fields",
|
| 367 |
+
"tests/datasets/test_runtime_milestone8.py::test_sealed_artifact_failure_stops_pipeline_before_inference",
|
| 368 |
+
"tests/datasets/test_runtime_milestone8.py::test_storage_rejects_fixture_root",
|
| 369 |
+
"tests/datasets/test_runtime_milestone8.py::test_successful_not_classified_pipeline_is_persisted_and_verified",
|
| 370 |
+
"tests/datasets/test_runtime_milestone8.py::test_verified_blind_result_gate_reads_persisted_bytes",
|
| 371 |
+
"tests/datasets/test_smoke_milestone11.py::test_all_frozen_cases_use_real_two_step_service_without_live_boundaries",
|
| 372 |
+
"tests/datasets/test_smoke_milestone11.py::test_fixture_readme_is_human_policy_only_and_manifest_is_only_configuration",
|
| 373 |
+
"tests/datasets/test_smoke_milestone11.py::test_frozen_transport_denies_pdf_before_discovery_and_selection",
|
| 374 |
+
"tests/datasets/test_smoke_milestone11.py::test_manifest_has_no_expected_keyword_or_fake_answer_configuration",
|
| 375 |
+
"tests/datasets/test_smoke_milestone11.py::test_optional_live_public_cmr_and_readme_retrieval",
|
| 376 |
+
"tests/datasets/test_smoke_milestone11.py::test_preflight_rejects_provenance_mismatches_without_transport_or_model_calls",
|
| 377 |
+
"tests/datasets/test_smoke_milestone11.py::test_repeated_runs_have_stable_logical_report_hash_and_safe_persisted_report",
|
| 378 |
+
"tests/datasets/test_smoke_milestone11.py::test_report_path_must_remain_under_output_root",
|
| 379 |
+
"tests/test_articles.py::test_duplicate_doi_detection_excludes_duplicate_records_from_valid_records",
|
| 380 |
+
"tests/test_articles.py::test_empty_abstract_is_valid_and_preserved",
|
| 381 |
+
"tests/test_articles.py::test_empty_required_strings[record0-DOI]",
|
| 382 |
+
"tests/test_articles.py::test_empty_required_strings[record1-Title]",
|
| 383 |
+
"tests/test_articles.py::test_exact_serialization_field_names",
|
| 384 |
+
"tests/test_articles.py::test_exact_source_value_preservation",
|
| 385 |
+
"tests/test_articles.py::test_file_not_found_behavior",
|
| 386 |
+
"tests/test_articles.py::test_full_data_smoke_current_articles_file",
|
| 387 |
+
"tests/test_articles.py::test_invalid_fixture_reports_multiple_record_errors",
|
| 388 |
+
"tests/test_articles.py::test_invalid_json",
|
| 389 |
+
"tests/test_articles.py::test_invalid_year_types_rejected[2024.0]",
|
| 390 |
+
"tests/test_articles.py::test_invalid_year_types_rejected[2024]",
|
| 391 |
+
"tests/test_articles.py::test_invalid_year_types_rejected[False]",
|
| 392 |
+
"tests/test_articles.py::test_invalid_year_types_rejected[True]",
|
| 393 |
+
"tests/test_articles.py::test_missing_required_fields[record0-DOI]",
|
| 394 |
+
"tests/test_articles.py::test_missing_required_fields[record1-Title]",
|
| 395 |
+
"tests/test_articles.py::test_missing_required_fields[record2-Year]",
|
| 396 |
+
"tests/test_articles.py::test_missing_required_fields[record3-Abstract]",
|
| 397 |
+
"tests/test_articles.py::test_non_object_article_entry",
|
| 398 |
+
"tests/test_articles.py::test_non_string_fields_rejected[Abstract-42]",
|
| 399 |
+
"tests/test_articles.py::test_non_string_fields_rejected[DOI-123]",
|
| 400 |
+
"tests/test_articles.py::test_non_string_fields_rejected[Title-value1]",
|
| 401 |
+
"tests/test_articles.py::test_null_field_values_rejected",
|
| 402 |
+
"tests/test_articles.py::test_preserves_source_order",
|
| 403 |
+
"tests/test_articles.py::test_source_file_immutability",
|
| 404 |
+
"tests/test_articles.py::test_top_level_non_list_json",
|
| 405 |
+
"tests/test_articles.py::test_valid_article_loading",
|
| 406 |
+
"tests/test_articles.py::test_whitespace_only_title_is_preserved_not_normalized",
|
| 407 |
+
"tests/test_cache.py::test_cache_hit_returns_cache_used_true_and_completed_status",
|
| 408 |
+
"tests/test_cache.py::test_cache_key_changes_when_article_content_changes",
|
| 409 |
+
"tests/test_cache.py::test_cache_key_changes_when_model_provider_name_or_parameters_change",
|
| 410 |
+
"tests/test_cache.py::test_cache_key_changes_when_prompt_versions_change",
|
| 411 |
+
"tests/test_cache.py::test_cache_key_changes_when_relevant_config_changes",
|
| 412 |
+
"tests/test_cache.py::test_cache_key_changes_when_vocabulary_hash_changes",
|
| 413 |
+
"tests/test_cache.py::test_cache_key_includes_article_fingerprint",
|
| 414 |
+
"tests/test_cache.py::test_stale_cache_is_not_reused",
|
| 415 |
+
"tests/test_llm_config.py::test_default_model_settings_load",
|
| 416 |
+
"tests/test_llm_config.py::test_environment_overrides_work",
|
| 417 |
+
"tests/test_llm_config.py::test_model_provider_and_name_are_configurable_in_requests",
|
| 418 |
+
"tests/test_llm_config.py::test_prompt_versions_are_configurable_in_requests",
|
| 419 |
+
"tests/test_llm_fake.py::test_fake_model_can_exhaust_retries",
|
| 420 |
+
"tests/test_llm_fake.py::test_fake_model_can_fail_once_then_succeed_with_retry_wrapper",
|
| 421 |
+
"tests/test_llm_fake.py::test_fake_model_can_raise_non_retryable_errors",
|
| 422 |
+
"tests/test_llm_fake.py::test_fake_model_can_raise_retryable_errors",
|
| 423 |
+
"tests/test_llm_fake.py::test_fake_model_can_return_invalid_candidate_ids_for_later_validation",
|
| 424 |
+
"tests/test_llm_fake.py::test_fake_model_can_return_no_selection",
|
| 425 |
+
"tests/test_llm_fake.py::test_fake_model_records_requests",
|
| 426 |
+
"tests/test_llm_fake.py::test_fake_model_rejects_contradictory_structured_response",
|
| 427 |
+
"tests/test_llm_fake.py::test_fake_model_returns_typed_term_response",
|
| 428 |
+
"tests/test_llm_fake.py::test_fake_model_returns_typed_topic_response",
|
| 429 |
+
"tests/test_llm_fake.py::test_fake_model_returns_typed_variable_response",
|
| 430 |
+
"tests/test_llm_prompts.py::test_prompt_delimits_title_and_abstract",
|
| 431 |
+
"tests/test_llm_prompts.py::test_prompt_includes_untrusted_article_instruction",
|
| 432 |
+
"tests/test_llm_prompts.py::test_prompt_preserves_source_article_text_exactly",
|
| 433 |
+
"tests/test_llm_prompts.py::test_prompt_prevents_generating_authoritative_vocabulary_fields",
|
| 434 |
+
"tests/test_llm_prompts.py::test_prompt_remains_valid_when_abstract_is_empty",
|
| 435 |
+
"tests/test_llm_prompts.py::test_prompt_uses_candidate_ids_and_only_supplied_candidates_instruction",
|
| 436 |
+
"tests/test_llm_prompts.py::test_term_prompt_includes_parent_context_and_direct_child_candidates",
|
| 437 |
+
"tests/test_llm_prompts.py::test_topic_prompt_includes_supplied_candidates",
|
| 438 |
+
"tests/test_llm_prompts.py::test_variable_prompt_includes_parent_context_and_direct_child_candidates",
|
| 439 |
+
"tests/test_llm_retries.py::test_non_retryable_error_is_not_retried",
|
| 440 |
+
"tests/test_llm_retries.py::test_retry_count_is_recorded_as_zero_without_retry",
|
| 441 |
+
"tests/test_llm_retries.py::test_retryable_error_fails_after_max_retries",
|
| 442 |
+
"tests/test_llm_retries.py::test_retryable_error_succeeds_after_retry",
|
| 443 |
+
"tests/test_mvp_smoke.py::test_fake_model_mvp_smoke_run_end_to_end",
|
| 444 |
+
"tests/test_mvp_smoke.py::test_optional_live_model_smoke_is_skipped_unless_explicitly_enabled",
|
| 445 |
+
"tests/test_openai_provider.py::test_gpt4o_request_preserves_temperature_behavior",
|
| 446 |
+
"tests/test_openai_provider.py::test_gpt5_family_request_omits_temperature_when_configured_zero",
|
| 447 |
+
"tests/test_openai_provider.py::test_openai_provider_does_not_make_live_call_without_explicit_key",
|
| 448 |
+
"tests/test_openai_provider.py::test_openai_provider_is_isolated_from_fake_model_tests",
|
| 449 |
+
"tests/test_openai_provider.py::test_openai_provider_module_import_does_not_require_openai",
|
| 450 |
+
"tests/test_openai_provider.py::test_openai_provider_non_retryable_error_includes_sanitized_diagnostics",
|
| 451 |
+
"tests/test_openai_provider.py::test_openai_provider_retryable_error_includes_sanitized_diagnostics",
|
| 452 |
+
"tests/test_output_schema.py::test_accepted_classification_requires_valid_deterministic_validation",
|
| 453 |
+
"tests/test_output_schema.py::test_basic_run_summary_validates_against_json_schema",
|
| 454 |
+
"tests/test_output_schema.py::test_boolean_year_is_invalid_for_article_result",
|
| 455 |
+
"tests/test_output_schema.py::test_classified_result_validates_against_json_schema",
|
| 456 |
+
"tests/test_output_schema.py::test_confidence_metadata_range_validation",
|
| 457 |
+
"tests/test_output_schema.py::test_empty_abstract_is_allowed_in_article_result_output",
|
| 458 |
+
"tests/test_output_schema.py::test_failed_result_validates_against_json_schema",
|
| 459 |
+
"tests/test_output_schema.py::test_generated_fields_use_snake_case_and_source_fields_remain_exact",
|
| 460 |
+
"tests/test_output_schema.py::test_minimal_no_classification_result_validates_against_json_schema",
|
| 461 |
+
"tests/test_output_schema.py::test_processing_metadata_can_represent_title_only_input",
|
| 462 |
+
"tests/test_output_schema.py::test_review_compatible_values_can_be_represented_without_review_trigger_logic",
|
| 463 |
+
"tests/test_output_schema.py::test_schema_files_are_valid_json",
|
| 464 |
+
"tests/test_output_schema.py::test_status_scopes_do_not_accept_values_from_wrong_enum",
|
| 465 |
+
"tests/test_output_schema.py::test_support_type_enum_values_are_schema_compatible",
|
| 466 |
+
"tests/test_output_schema.py::test_valid_accepted_classification_record",
|
| 467 |
+
"tests/test_output_schema.py::test_valid_article_result_with_classifications",
|
| 468 |
+
"tests/test_output_schema.py::test_valid_failed_article_result_without_classifications",
|
| 469 |
+
"tests/test_output_schema.py::test_valid_minimal_no_classification_article_result",
|
| 470 |
+
"tests/test_output_schema.py::test_valid_partial_article_result_without_classifications",
|
| 471 |
+
"tests/test_output_schema.py::test_valid_reduced_to_ancestor_classification_record",
|
| 472 |
+
"tests/test_output_schema.py::test_valid_rejected_classification_record",
|
| 473 |
+
"tests/test_package_import.py::test_package_imports",
|
| 474 |
+
"tests/test_persistence.py::test_article_result_is_saved_after_completion",
|
| 475 |
+
"tests/test_persistence.py::test_atomic_checkpoint_temp_file_is_removed_after_success",
|
| 476 |
+
"tests/test_persistence.py::test_consolidated_output_is_valid_json",
|
| 477 |
+
"tests/test_persistence.py::test_duplicate_output_records_for_same_doi_are_avoided",
|
| 478 |
+
"tests/test_persistence.py::test_failed_article_result_is_saved",
|
| 479 |
+
"tests/test_persistence.py::test_loading_existing_results_works",
|
| 480 |
+
"tests/test_persistence.py::test_previous_results_survive_simulated_later_failure",
|
| 481 |
+
"tests/test_pipeline.py::test_article_stops_at_term_and_becomes_term_classification",
|
| 482 |
+
"tests/test_pipeline.py::test_article_stops_at_topic_and_becomes_topic_classification",
|
| 483 |
+
"tests/test_pipeline.py::test_batch_cache_hit_is_completed_not_skipped_and_force_reprocess_bypasses_cache",
|
| 484 |
+
"tests/test_pipeline.py::test_batch_continues_after_one_article_failure",
|
| 485 |
+
"tests/test_pipeline.py::test_batch_output_summary_validates_against_schema",
|
| 486 |
+
"tests/test_pipeline.py::test_batch_processes_multiple_valid_articles_and_preserves_order",
|
| 487 |
+
"tests/test_pipeline.py::test_batch_reports_invalid_source_records_without_inventing_doi",
|
| 488 |
+
"tests/test_pipeline.py::test_empty_abstract_remains_valid_and_can_be_processed",
|
| 489 |
+
"tests/test_pipeline.py::test_full_data_smoke_reports_current_invalid_article_without_modifying_sources",
|
| 490 |
+
"tests/test_pipeline.py::test_invalid_model_candidate_produces_structured_error",
|
| 491 |
+
"tests/test_pipeline.py::test_logging_records_processing_events_without_secrets",
|
| 492 |
+
"tests/test_pipeline.py::test_model_retry_counts_and_cache_flags_appear_in_metadata",
|
| 493 |
+
"tests/test_pipeline.py::test_no_topic_selection_is_completed_not_classified",
|
| 494 |
+
"tests/test_pipeline.py::test_partial_branch_failure_preserves_successful_sibling_outcome",
|
| 495 |
+
"tests/test_pipeline.py::test_review_risk_flagging_preserves_accepted_topic_classification",
|
| 496 |
+
"tests/test_pipeline.py::test_single_article_deep_variable_classification_is_accepted",
|
| 497 |
+
"tests/test_pipeline.py::test_structured_diagnostics_do_not_include_secrets",
|
| 498 |
+
"tests/test_redundancy.py::test_ancestor_preserved_when_independent_branch",
|
| 499 |
+
"tests/test_redundancy.py::test_ancestor_removed_when_descendant_exists_in_same_branch_lineage",
|
| 500 |
+
"tests/test_redundancy.py::test_deepest_descendant_retained",
|
| 501 |
+
"tests/test_redundancy.py::test_exact_duplicate_canonical_path_removed",
|
| 502 |
+
"tests/test_redundancy.py::test_exact_duplicate_uuid_removed",
|
| 503 |
+
"tests/test_redundancy.py::test_insufficient_branch_provenance_preserves_ancestor_with_warning",
|
| 504 |
+
"tests/test_redundancy.py::test_redundancy_uses_uuid_ancestry_not_string_prefix_matching",
|
| 505 |
+
"tests/test_redundancy.py::test_removal_and_preservation_diagnostics_include_branch_provenance",
|
| 506 |
+
"tests/test_redundancy.py::test_same_concept_name_in_different_branches_is_preserved_when_uuid_and_path_differ",
|
| 507 |
+
"tests/test_redundancy.py::test_sibling_classifications_preserved",
|
| 508 |
+
"tests/test_review_flagging.py::test_explicit_or_strong_mixed_classification_is_not_flagged",
|
| 509 |
+
"tests/test_review_flagging.py::test_inferred_low_confidence_is_flagged",
|
| 510 |
+
"tests/test_review_flagging.py::test_inferred_or_mixed_topic_is_flagged",
|
| 511 |
+
"tests/test_review_flagging.py::test_inferred_variable_level_2_is_flagged_even_with_high_confidence",
|
| 512 |
+
"tests/test_review_flagging.py::test_inferred_variable_level_3_is_flagged_even_with_high_confidence",
|
| 513 |
+
"tests/test_review_flagging.py::test_mixed_low_confidence_is_flagged",
|
| 514 |
+
"tests/test_review_flagging.py::test_non_accepted_classification_is_not_flagged",
|
| 515 |
+
"tests/test_review_flagging.py::test_review_warning_appears_in_json_output",
|
| 516 |
+
"tests/test_small_run_script.py::test_build_model_client_fake_returns_fake_model",
|
| 517 |
+
"tests/test_small_run_script.py::test_console_summary_includes_classification_and_no_classification",
|
| 518 |
+
"tests/test_small_run_script.py::test_fake_scripted_responses_support_requested_article_count",
|
| 519 |
+
"tests/test_small_run_script.py::test_limit_article_load_uses_first_valid_articles",
|
| 520 |
+
"tests/test_small_run_script.py::test_live_mode_requires_credentials",
|
| 521 |
+
"tests/test_small_run_script.py::test_live_mode_requires_openai_provider",
|
| 522 |
+
"tests/test_small_run_script.py::test_one_line_compacts_tabs_and_newlines",
|
| 523 |
+
"tests/test_small_run_script.py::test_progress_helpers_print_safe_truncated_output",
|
| 524 |
+
"tests/test_small_run_script.py::test_review_csv_contains_classification_and_article_level_rows",
|
| 525 |
+
"tests/test_small_run_script.py::test_review_csv_path_follows_output_dir",
|
| 526 |
+
"tests/test_small_run_script.py::test_small_run_script_imports_without_live_api_calls",
|
| 527 |
+
"tests/test_small_run_script.py::test_truncate_title_uses_one_line_and_limit",
|
| 528 |
+
"tests/test_structured_responses.py::test_empty_candidate_id_rejected",
|
| 529 |
+
"tests/test_structured_responses.py::test_invalid_confidence_range[-0.01]",
|
| 530 |
+
"tests/test_structured_responses.py::test_invalid_confidence_range[1.01]",
|
| 531 |
+
"tests/test_structured_responses.py::test_invalid_term_response_stopping_without_stop_reason[None]",
|
| 532 |
+
"tests/test_structured_responses.py::test_invalid_term_response_stopping_without_stop_reason[]",
|
| 533 |
+
"tests/test_structured_responses.py::test_invalid_term_response_with_stop_and_selected[payload0]",
|
| 534 |
+
"tests/test_structured_responses.py::test_invalid_term_response_with_stop_and_selected[payload1]",
|
| 535 |
+
"tests/test_structured_responses.py::test_invalid_variable_response_stopping_without_stop_reason[None]",
|
| 536 |
+
"tests/test_structured_responses.py::test_invalid_variable_response_stopping_without_stop_reason[]",
|
| 537 |
+
"tests/test_structured_responses.py::test_invalid_variable_response_with_stop_and_selected[payload0]",
|
| 538 |
+
"tests/test_structured_responses.py::test_invalid_variable_response_with_stop_and_selected[payload1]",
|
| 539 |
+
"tests/test_structured_responses.py::test_malformed_candidate_decision_rejected",
|
| 540 |
+
"tests/test_structured_responses.py::test_unknown_fields_rejected",
|
| 541 |
+
"tests/test_structured_responses.py::test_valid_missing_confidence",
|
| 542 |
+
"tests/test_structured_responses.py::test_valid_term_response_selecting_candidates",
|
| 543 |
+
"tests/test_structured_responses.py::test_valid_term_response_stopping_at_parent",
|
| 544 |
+
"tests/test_structured_responses.py::test_valid_topic_response_with_multiple_selected_candidates",
|
| 545 |
+
"tests/test_structured_responses.py::test_valid_topic_response_with_no_selected_candidates_and_reason",
|
| 546 |
+
"tests/test_structured_responses.py::test_valid_topic_response_with_one_selected_candidate",
|
| 547 |
+
"tests/test_structured_responses.py::test_valid_variable_response_selecting_candidates",
|
| 548 |
+
"tests/test_structured_responses.py::test_valid_variable_response_stopping_at_parent",
|
| 549 |
+
"tests/test_term_routing.py::test_candidate_from_sibling_topic_cannot_be_accepted",
|
| 550 |
+
"tests/test_term_routing.py::test_confidence_is_preserved_as_uncalibrated_metadata_only",
|
| 551 |
+
"tests/test_term_routing.py::test_duplicate_term_candidate_id_is_rejected",
|
| 552 |
+
"tests/test_term_routing.py::test_empty_abstract_remains_valid_and_is_passed_to_term_prompt",
|
| 553 |
+
"tests/test_term_routing.py::test_empty_or_malformed_term_candidate_id_is_rejected_by_structured_validation",
|
| 554 |
+
"tests/test_term_routing.py::test_fake_model_receives_article_fields_parent_context_and_direct_term_candidates",
|
| 555 |
+
"tests/test_term_routing.py::test_full_data_current_vocabulary_has_144_direct_term_candidates",
|
| 556 |
+
"tests/test_term_routing.py::test_invalid_term_candidate_id_is_rejected",
|
| 557 |
+
"tests/test_term_routing.py::test_manually_invalid_candidate_to_record_mapping_is_rejected",
|
| 558 |
+
"tests/test_term_routing.py::test_multiple_terms_selected_under_one_topic",
|
| 559 |
+
"tests/test_term_routing.py::test_no_fake_fallback_term_is_created",
|
| 560 |
+
"tests/test_term_routing.py::test_no_variable_routing_is_performed",
|
| 561 |
+
"tests/test_term_routing.py::test_one_term_selected_under_selected_topic",
|
| 562 |
+
"tests/test_term_routing.py::test_selected_term_branch_seed_is_populated_from_vocabulary_index",
|
| 563 |
+
"tests/test_term_routing.py::test_selected_topic_with_no_direct_term_children_is_handled_explicitly",
|
| 564 |
+
"tests/test_term_routing.py::test_stop_at_topic_with_stop_at_parent_true",
|
| 565 |
+
"tests/test_term_routing.py::test_term_candidate_construction_does_not_hard_code_term_names_or_uuids",
|
| 566 |
+
"tests/test_term_routing.py::test_term_candidate_ids_are_unique_within_prompt",
|
| 567 |
+
"tests/test_term_routing.py::test_term_candidate_ids_map_to_uuid_bearing_term_records",
|
| 568 |
+
"tests/test_term_routing.py::test_term_candidates_are_built_only_from_selected_topic_direct_children",
|
| 569 |
+
"tests/test_term_routing.py::test_term_router_never_evaluates_all_terms_globally",
|
| 570 |
+
"tests/test_term_routing.py::test_term_router_uses_provider_neutral_model_interface",
|
| 571 |
+
"tests/test_term_routing.py::test_term_selected_from_correct_topic_succeeds",
|
| 572 |
+
"tests/test_term_routing.py::test_terms_from_sibling_topics_are_not_included",
|
| 573 |
+
"tests/test_term_routing.py::test_topic_with_no_supported_term_returns_stop_at_topic_result",
|
| 574 |
+
"tests/test_topic_routing.py::test_candidate_construction_does_not_hard_code_topic_names_or_uuids",
|
| 575 |
+
"tests/test_topic_routing.py::test_candidate_ids_are_unique_and_stable",
|
| 576 |
+
"tests/test_topic_routing.py::test_confidence_is_preserved_as_uncalibrated_metadata_only",
|
| 577 |
+
"tests/test_topic_routing.py::test_duplicate_candidate_id_returned_by_model_is_rejected",
|
| 578 |
+
"tests/test_topic_routing.py::test_empty_abstract_remains_valid_and_is_passed_to_prompt",
|
| 579 |
+
"tests/test_topic_routing.py::test_empty_or_malformed_candidate_id_rejected_by_structured_schema",
|
| 580 |
+
"tests/test_topic_routing.py::test_every_topic_candidate_maps_to_uuid_bearing_topic_record",
|
| 581 |
+
"tests/test_topic_routing.py::test_fake_model_receives_article_fields_and_topic_candidates",
|
| 582 |
+
"tests/test_topic_routing.py::test_full_data_current_vocabulary_has_14_topic_candidates",
|
| 583 |
+
"tests/test_topic_routing.py::test_invalid_candidate_id_returned_by_fake_model_is_rejected",
|
| 584 |
+
"tests/test_topic_routing.py::test_multiple_topic_selection",
|
| 585 |
+
"tests/test_topic_routing.py::test_no_fake_fallback_topic_is_created",
|
| 586 |
+
"tests/test_topic_routing.py::test_no_term_or_variable_routing_is_performed",
|
| 587 |
+
"tests/test_topic_routing.py::test_no_topic_selection_with_reason",
|
| 588 |
+
"tests/test_topic_routing.py::test_root_category_is_never_included_as_candidate",
|
| 589 |
+
"tests/test_topic_routing.py::test_selected_topic_branch_seed_is_populated_from_vocabulary_index",
|
| 590 |
+
"tests/test_topic_routing.py::test_single_topic_selection",
|
| 591 |
+
"tests/test_topic_routing.py::test_topic_candidates_are_built_from_vocabulary_index",
|
| 592 |
+
"tests/test_topic_routing.py::test_topic_router_uses_provider_neutral_model_interface",
|
| 593 |
+
"tests/test_ui.py::test_classification_table_rows_include_only_demo_relevant_fields",
|
| 594 |
+
"tests/test_ui.py::test_classification_table_rows_include_wide_text_fields",
|
| 595 |
+
"tests/test_ui.py::test_classified_result_includes_uuid_and_canonical_path",
|
| 596 |
+
"tests/test_ui.py::test_compact_summary_includes_status_model_and_review_counts",
|
| 597 |
+
"tests/test_ui.py::test_create_demo_constructs_gradio_interface",
|
| 598 |
+
"tests/test_ui.py::test_empty_abstract_is_accepted_by_ui_input_path",
|
| 599 |
+
"tests/test_ui.py::test_errors_and_warnings_are_displayed",
|
| 600 |
+
"tests/test_ui.py::test_gradio_app_imports_without_gradio_or_api_keys",
|
| 601 |
+
"tests/test_ui.py::test_no_classification_result_is_formatted_correctly",
|
| 602 |
+
"tests/test_ui.py::test_prototype_app_remains_unchanged_during_ui_import",
|
| 603 |
+
"tests/test_ui.py::test_root_app_defines_zerogpu_probe_with_spaces_decorator",
|
| 604 |
+
"tests/test_ui.py::test_root_app_imports_when_spaces_is_not_installed",
|
| 605 |
+
"tests/test_ui.py::test_root_app_imports_without_launching_server",
|
| 606 |
+
"tests/test_ui.py::test_root_app_is_thin_launcher_without_classification_logic",
|
| 607 |
+
"tests/test_ui.py::test_root_app_launch_uses_spaces_compatible_settings",
|
| 608 |
+
"tests/test_ui.py::test_root_app_uses_spaces_default_server_settings",
|
| 609 |
+
"tests/test_ui.py::test_ui_calls_pipeline_service",
|
| 610 |
+
"tests/test_ui.py::test_ui_module_does_not_classify_or_call_model_at_import_time",
|
| 611 |
+
"tests/test_validation.py::test_final_concept_under_expected_topic_and_term_succeeds",
|
| 612 |
+
"tests/test_validation.py::test_full_data_representative_records_pass_validation",
|
| 613 |
+
"tests/test_validation.py::test_invalid_parent_child_chain_rejected",
|
| 614 |
+
"tests/test_validation.py::test_invalid_path_components_rejected",
|
| 615 |
+
"tests/test_validation.py::test_multiple_terminal_outcomes_validate_independently",
|
| 616 |
+
"tests/test_validation.py::test_nonexistent_uuid_rejected",
|
| 617 |
+
"tests/test_validation.py::test_rejected_invalid_candidates_do_not_appear_in_accepted_classifications",
|
| 618 |
+
"tests/test_validation.py::test_root_category_rejected",
|
| 619 |
+
"tests/test_validation.py::test_selected_variable_level_3_terminal_outcome_can_become_valid_classification",
|
| 620 |
+
"tests/test_validation.py::test_stop_at_term_terminal_outcome_can_become_valid_term_classification",
|
| 621 |
+
"tests/test_validation.py::test_stop_at_variable_level_1_terminal_outcome_can_become_valid_classification",
|
| 622 |
+
"tests/test_validation.py::test_term_level_final_classification_succeeds_from_term_branch",
|
| 623 |
+
"tests/test_validation.py::test_topic_level_final_classification_succeeds",
|
| 624 |
+
"tests/test_validation.py::test_uuid_canonical_path_mismatch_rejected",
|
| 625 |
+
"tests/test_validation.py::test_uuid_level_mismatch_rejected",
|
| 626 |
+
"tests/test_validation.py::test_uuid_name_mismatch_rejected",
|
| 627 |
+
"tests/test_validation.py::test_valid_candidate_accepted_and_populated_from_vocabulary_index",
|
| 628 |
+
"tests/test_validation.py::test_validation_does_not_require_model_call",
|
| 629 |
+
"tests/test_validation.py::test_variable_level_1_final_classification_succeeds",
|
| 630 |
+
"tests/test_validation.py::test_variable_level_2_final_classification_succeeds",
|
| 631 |
+
"tests/test_validation.py::test_variable_level_3_final_classification_succeeds",
|
| 632 |
+
"tests/test_validation.py::test_wrong_term_membership_rejected",
|
| 633 |
+
"tests/test_validation.py::test_wrong_topic_membership_rejected",
|
| 634 |
+
"tests/test_variable_traversal.py::test_child_branch_ids_are_distinct_and_preserve_parent_context",
|
| 635 |
+
"tests/test_variable_traversal.py::test_confidence_is_preserved_only_as_uncalibrated_metadata",
|
| 636 |
+
"tests/test_variable_traversal.py::test_duplicate_variable_candidate_id_is_rejected",
|
| 637 |
+
"tests/test_variable_traversal.py::test_empty_abstract_remains_valid_and_is_passed_to_variable_prompt",
|
| 638 |
+
"tests/test_variable_traversal.py::test_empty_or_malformed_variable_candidate_id_rejected_by_structured_validation",
|
| 639 |
+
"tests/test_variable_traversal.py::test_fake_model_receives_article_parent_context_and_direct_variable_candidates",
|
| 640 |
+
"tests/test_variable_traversal.py::test_full_data_current_variable_candidate_counts_are_direct_children_only",
|
| 641 |
+
"tests/test_variable_traversal.py::test_grandchildren_are_not_included_before_child_parent_is_selected",
|
| 642 |
+
"tests/test_variable_traversal.py::test_manually_invalid_candidate_to_record_mapping_is_rejected",
|
| 643 |
+
"tests/test_variable_traversal.py::test_multiple_selected_descendants_under_one_branch_continue_independently",
|
| 644 |
+
"tests/test_variable_traversal.py::test_multiple_selected_variable_level_1_children_create_independent_branches",
|
| 645 |
+
"tests/test_variable_traversal.py::test_no_forced_leaf_descent",
|
| 646 |
+
"tests/test_variable_traversal.py::test_no_skipped_hierarchy_levels_or_non_direct_descendant_evaluation",
|
| 647 |
+
"tests/test_variable_traversal.py::test_parent_with_no_direct_children_is_terminal_outcome",
|
| 648 |
+
"tests/test_variable_traversal.py::test_select_variable_level_3_and_stop_naturally_at_leaf",
|
| 649 |
+
"tests/test_variable_traversal.py::test_selected_candidate_from_sibling_parent_is_rejected",
|
| 650 |
+
"tests/test_variable_traversal.py::test_sibling_branch_continuation_after_one_branch_fails",
|
| 651 |
+
"tests/test_variable_traversal.py::test_sibling_branch_continuation_after_one_branch_stops",
|
| 652 |
+
"tests/test_variable_traversal.py::test_sibling_branches_are_not_included",
|
| 653 |
+
"tests/test_variable_traversal.py::test_stop_at_term_when_no_variable_child_supported",
|
| 654 |
+
"tests/test_variable_traversal.py::test_stop_at_variable_level_1",
|
| 655 |
+
"tests/test_variable_traversal.py::test_stop_at_variable_level_2",
|
| 656 |
+
"tests/test_variable_traversal.py::test_terminal_outcome_includes_provenance_and_required_fields",
|
| 657 |
+
"tests/test_variable_traversal.py::test_unknown_variable_candidate_id_is_rejected",
|
| 658 |
+
"tests/test_variable_traversal.py::test_variable_candidate_construction_does_not_hard_code_names_or_uuids",
|
| 659 |
+
"tests/test_variable_traversal.py::test_variable_candidate_ids_are_unique_within_prompt",
|
| 660 |
+
"tests/test_variable_traversal.py::test_variable_candidate_ids_map_to_uuid_bearing_variable_records",
|
| 661 |
+
"tests/test_variable_traversal.py::test_variable_candidates_are_built_only_from_current_parent_direct_children",
|
| 662 |
+
"tests/test_variable_traversal.py::test_variable_descent_uses_provider_neutral_model_interface",
|
| 663 |
+
"tests/test_vocabulary.py::test_ancestor_and_descendant_checks",
|
| 664 |
+
"tests/test_vocabulary.py::test_canonical_path_excludes_root_category",
|
| 665 |
+
"tests/test_vocabulary.py::test_duplicate_canonical_path_detection",
|
| 666 |
+
"tests/test_vocabulary.py::test_duplicate_uuid_detection",
|
| 667 |
+
"tests/test_vocabulary.py::test_every_current_topic_and_term_has_uuid",
|
| 668 |
+
"tests/test_vocabulary.py::test_full_data_smoke_counts_for_current_vocabulary",
|
| 669 |
+
"tests/test_vocabulary.py::test_identical_names_in_different_branches_are_allowed_when_paths_differ",
|
| 670 |
+
"tests/test_vocabulary.py::test_invalid_hierarchy_level_transition",
|
| 671 |
+
"tests/test_vocabulary.py::test_missing_required_fields[level]",
|
| 672 |
+
"tests/test_vocabulary.py::test_missing_required_fields[name]",
|
| 673 |
+
"tests/test_vocabulary.py::test_optional_and_missing_definitions",
|
| 674 |
+
"tests/test_vocabulary.py::test_parent_and_direct_child_lookup",
|
| 675 |
+
"tests/test_vocabulary.py::test_recursive_traversal_and_variable_depth_branches",
|
| 676 |
+
"tests/test_vocabulary.py::test_root_category_is_non_assignable_context",
|
| 677 |
+
"tests/test_vocabulary.py::test_source_file_immutability",
|
| 678 |
+
"tests/test_vocabulary.py::test_term_to_variable_lookup",
|
| 679 |
+
"tests/test_vocabulary.py::test_topic_term_and_variable_records_are_assignable",
|
| 680 |
+
"tests/test_vocabulary.py::test_topic_to_term_lookup",
|
| 681 |
+
"tests/test_vocabulary.py::test_unexpected_uuidless_non_root_node",
|
| 682 |
+
"tests/test_vocabulary.py::test_uuid_preservation_and_record_fields",
|
| 683 |
+
"tests/test_vocabulary.py::test_valid_hierarchy_level_transitions",
|
| 684 |
+
"tests/test_vocabulary.py::test_vocabulary_file_hash_stability"
|
| 685 |
+
]
|
.ruff_cache/.gitignore
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Automatically created by ruff.
|
| 2 |
+
*
|
.ruff_cache/0.15.21/11885472981295785164
ADDED
|
Binary file (172 Bytes). View file
|
|
|
.ruff_cache/0.15.21/1300401175170744610
ADDED
|
Binary file (236 Bytes). View file
|
|
|
.ruff_cache/0.15.21/15131953968306051049
ADDED
|
Binary file (180 Bytes). View file
|
|
|
.ruff_cache/0.15.21/15313280957554967660
ADDED
|
Binary file (148 Bytes). View file
|
|
|
.ruff_cache/0.15.21/15432729255545051974
ADDED
|
Binary file (2.55 kB). View file
|
|
|
.ruff_cache/0.15.21/17513344015243148911
ADDED
|
Binary file (3.45 kB). View file
|
|
|
.ruff_cache/0.15.21/3143687862706329986
ADDED
|
Binary file (340 Bytes). View file
|
|
|
.ruff_cache/0.15.21/7626447333909823739
ADDED
|
Binary file (284 Bytes). View file
|
|
|
.ruff_cache/0.15.21/9412025680110365515
ADDED
|
Binary file (180 Bytes). View file
|
|
|
.ruff_cache/CACHEDIR.TAG
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
Signature: 8a477f597d28d172789f06886806bc55
|
.venv/.gitignore
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Created by venv; see https://docs.python.org/3/library/venv.html
|
| 2 |
+
*
|
.venv/bin/Activate.ps1
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<#
|
| 2 |
+
.Synopsis
|
| 3 |
+
Activate a Python virtual environment for the current PowerShell session.
|
| 4 |
+
|
| 5 |
+
.Description
|
| 6 |
+
Pushes the python executable for a virtual environment to the front of the
|
| 7 |
+
$Env:PATH environment variable and sets the prompt to signify that you are
|
| 8 |
+
in a Python virtual environment. Makes use of the command line switches as
|
| 9 |
+
well as the `pyvenv.cfg` file values present in the virtual environment.
|
| 10 |
+
|
| 11 |
+
.Parameter VenvDir
|
| 12 |
+
Path to the directory that contains the virtual environment to activate. The
|
| 13 |
+
default value for this is the parent of the directory that the Activate.ps1
|
| 14 |
+
script is located within.
|
| 15 |
+
|
| 16 |
+
.Parameter Prompt
|
| 17 |
+
The prompt prefix to display when this virtual environment is activated. By
|
| 18 |
+
default, this prompt is the name of the virtual environment folder (VenvDir)
|
| 19 |
+
surrounded by parentheses and followed by a single space (ie. '(.venv) ').
|
| 20 |
+
|
| 21 |
+
.Example
|
| 22 |
+
Activate.ps1
|
| 23 |
+
Activates the Python virtual environment that contains the Activate.ps1 script.
|
| 24 |
+
|
| 25 |
+
.Example
|
| 26 |
+
Activate.ps1 -Verbose
|
| 27 |
+
Activates the Python virtual environment that contains the Activate.ps1 script,
|
| 28 |
+
and shows extra information about the activation as it executes.
|
| 29 |
+
|
| 30 |
+
.Example
|
| 31 |
+
Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
|
| 32 |
+
Activates the Python virtual environment located in the specified location.
|
| 33 |
+
|
| 34 |
+
.Example
|
| 35 |
+
Activate.ps1 -Prompt "MyPython"
|
| 36 |
+
Activates the Python virtual environment that contains the Activate.ps1 script,
|
| 37 |
+
and prefixes the current prompt with the specified string (surrounded in
|
| 38 |
+
parentheses) while the virtual environment is active.
|
| 39 |
+
|
| 40 |
+
.Notes
|
| 41 |
+
On Windows, it may be required to enable this Activate.ps1 script by setting the
|
| 42 |
+
execution policy for the user. You can do this by issuing the following PowerShell
|
| 43 |
+
command:
|
| 44 |
+
|
| 45 |
+
PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
| 46 |
+
|
| 47 |
+
For more information on Execution Policies:
|
| 48 |
+
https://go.microsoft.com/fwlink/?LinkID=135170
|
| 49 |
+
|
| 50 |
+
#>
|
| 51 |
+
Param(
|
| 52 |
+
[Parameter(Mandatory = $false)]
|
| 53 |
+
[String]
|
| 54 |
+
$VenvDir,
|
| 55 |
+
[Parameter(Mandatory = $false)]
|
| 56 |
+
[String]
|
| 57 |
+
$Prompt
|
| 58 |
+
)
|
| 59 |
+
|
| 60 |
+
<# Function declarations --------------------------------------------------- #>
|
| 61 |
+
|
| 62 |
+
<#
|
| 63 |
+
.Synopsis
|
| 64 |
+
Remove all shell session elements added by the Activate script, including the
|
| 65 |
+
addition of the virtual environment's Python executable from the beginning of
|
| 66 |
+
the PATH variable.
|
| 67 |
+
|
| 68 |
+
.Parameter NonDestructive
|
| 69 |
+
If present, do not remove this function from the global namespace for the
|
| 70 |
+
session.
|
| 71 |
+
|
| 72 |
+
#>
|
| 73 |
+
function global:deactivate ([switch]$NonDestructive) {
|
| 74 |
+
# Revert to original values
|
| 75 |
+
|
| 76 |
+
# The prior prompt:
|
| 77 |
+
if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
|
| 78 |
+
Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
|
| 79 |
+
Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
# The prior PYTHONHOME:
|
| 83 |
+
if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
|
| 84 |
+
Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
|
| 85 |
+
Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
# The prior PATH:
|
| 89 |
+
if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
|
| 90 |
+
Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
|
| 91 |
+
Remove-Item -Path Env:_OLD_VIRTUAL_PATH
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
# Just remove the VIRTUAL_ENV altogether:
|
| 95 |
+
if (Test-Path -Path Env:VIRTUAL_ENV) {
|
| 96 |
+
Remove-Item -Path env:VIRTUAL_ENV
|
| 97 |
+
}
|
| 98 |
+
|
| 99 |
+
# Just remove VIRTUAL_ENV_PROMPT altogether.
|
| 100 |
+
if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) {
|
| 101 |
+
Remove-Item -Path env:VIRTUAL_ENV_PROMPT
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
# Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
|
| 105 |
+
if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
|
| 106 |
+
Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
|
| 107 |
+
}
|
| 108 |
+
|
| 109 |
+
# Leave deactivate function in the global namespace if requested:
|
| 110 |
+
if (-not $NonDestructive) {
|
| 111 |
+
Remove-Item -Path function:deactivate
|
| 112 |
+
}
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
<#
|
| 116 |
+
.Description
|
| 117 |
+
Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
|
| 118 |
+
given folder, and returns them in a map.
|
| 119 |
+
|
| 120 |
+
For each line in the pyvenv.cfg file, if that line can be parsed into exactly
|
| 121 |
+
two strings separated by `=` (with any amount of whitespace surrounding the =)
|
| 122 |
+
then it is considered a `key = value` line. The left hand string is the key,
|
| 123 |
+
the right hand is the value.
|
| 124 |
+
|
| 125 |
+
If the value starts with a `'` or a `"` then the first and last character is
|
| 126 |
+
stripped from the value before being captured.
|
| 127 |
+
|
| 128 |
+
.Parameter ConfigDir
|
| 129 |
+
Path to the directory that contains the `pyvenv.cfg` file.
|
| 130 |
+
#>
|
| 131 |
+
function Get-PyVenvConfig(
|
| 132 |
+
[String]
|
| 133 |
+
$ConfigDir
|
| 134 |
+
) {
|
| 135 |
+
Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
|
| 136 |
+
|
| 137 |
+
# Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
|
| 138 |
+
$pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
|
| 139 |
+
|
| 140 |
+
# An empty map will be returned if no config file is found.
|
| 141 |
+
$pyvenvConfig = @{ }
|
| 142 |
+
|
| 143 |
+
if ($pyvenvConfigPath) {
|
| 144 |
+
|
| 145 |
+
Write-Verbose "File exists, parse `key = value` lines"
|
| 146 |
+
$pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
|
| 147 |
+
|
| 148 |
+
$pyvenvConfigContent | ForEach-Object {
|
| 149 |
+
$keyval = $PSItem -split "\s*=\s*", 2
|
| 150 |
+
if ($keyval[0] -and $keyval[1]) {
|
| 151 |
+
$val = $keyval[1]
|
| 152 |
+
|
| 153 |
+
# Remove extraneous quotations around a string value.
|
| 154 |
+
if ("'""".Contains($val.Substring(0, 1))) {
|
| 155 |
+
$val = $val.Substring(1, $val.Length - 2)
|
| 156 |
+
}
|
| 157 |
+
|
| 158 |
+
$pyvenvConfig[$keyval[0]] = $val
|
| 159 |
+
Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
}
|
| 163 |
+
return $pyvenvConfig
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
|
| 167 |
+
<# Begin Activate script --------------------------------------------------- #>
|
| 168 |
+
|
| 169 |
+
# Determine the containing directory of this script
|
| 170 |
+
$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
|
| 171 |
+
$VenvExecDir = Get-Item -Path $VenvExecPath
|
| 172 |
+
|
| 173 |
+
Write-Verbose "Activation script is located in path: '$VenvExecPath'"
|
| 174 |
+
Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
|
| 175 |
+
Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
|
| 176 |
+
|
| 177 |
+
# Set values required in priority: CmdLine, ConfigFile, Default
|
| 178 |
+
# First, get the location of the virtual environment, it might not be
|
| 179 |
+
# VenvExecDir if specified on the command line.
|
| 180 |
+
if ($VenvDir) {
|
| 181 |
+
Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
|
| 182 |
+
}
|
| 183 |
+
else {
|
| 184 |
+
Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
|
| 185 |
+
$VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
|
| 186 |
+
Write-Verbose "VenvDir=$VenvDir"
|
| 187 |
+
}
|
| 188 |
+
|
| 189 |
+
# Next, read the `pyvenv.cfg` file to determine any required value such
|
| 190 |
+
# as `prompt`.
|
| 191 |
+
$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
|
| 192 |
+
|
| 193 |
+
# Next, set the prompt from the command line, or the config file, or
|
| 194 |
+
# just use the name of the virtual environment folder.
|
| 195 |
+
if ($Prompt) {
|
| 196 |
+
Write-Verbose "Prompt specified as argument, using '$Prompt'"
|
| 197 |
+
}
|
| 198 |
+
else {
|
| 199 |
+
Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
|
| 200 |
+
if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
|
| 201 |
+
Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
|
| 202 |
+
$Prompt = $pyvenvCfg['prompt'];
|
| 203 |
+
}
|
| 204 |
+
else {
|
| 205 |
+
Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)"
|
| 206 |
+
Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
|
| 207 |
+
$Prompt = Split-Path -Path $venvDir -Leaf
|
| 208 |
+
}
|
| 209 |
+
}
|
| 210 |
+
|
| 211 |
+
Write-Verbose "Prompt = '$Prompt'"
|
| 212 |
+
Write-Verbose "VenvDir='$VenvDir'"
|
| 213 |
+
|
| 214 |
+
# Deactivate any currently active virtual environment, but leave the
|
| 215 |
+
# deactivate function in place.
|
| 216 |
+
deactivate -nondestructive
|
| 217 |
+
|
| 218 |
+
# Now set the environment variable VIRTUAL_ENV, used by many tools to determine
|
| 219 |
+
# that there is an activated venv.
|
| 220 |
+
$env:VIRTUAL_ENV = $VenvDir
|
| 221 |
+
|
| 222 |
+
$env:VIRTUAL_ENV_PROMPT = $Prompt
|
| 223 |
+
|
| 224 |
+
if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
|
| 225 |
+
|
| 226 |
+
Write-Verbose "Setting prompt to '$Prompt'"
|
| 227 |
+
|
| 228 |
+
# Set the prompt to include the env name
|
| 229 |
+
# Make sure _OLD_VIRTUAL_PROMPT is global
|
| 230 |
+
function global:_OLD_VIRTUAL_PROMPT { "" }
|
| 231 |
+
Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
|
| 232 |
+
New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
|
| 233 |
+
|
| 234 |
+
function global:prompt {
|
| 235 |
+
Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
|
| 236 |
+
_OLD_VIRTUAL_PROMPT
|
| 237 |
+
}
|
| 238 |
+
}
|
| 239 |
+
|
| 240 |
+
# Clear PYTHONHOME
|
| 241 |
+
if (Test-Path -Path Env:PYTHONHOME) {
|
| 242 |
+
Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
|
| 243 |
+
Remove-Item -Path Env:PYTHONHOME
|
| 244 |
+
}
|
| 245 |
+
|
| 246 |
+
# Add the venv to the PATH
|
| 247 |
+
Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
|
| 248 |
+
$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
|
.venv/bin/activate
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# This file must be used with "source bin/activate" *from bash*
|
| 2 |
+
# You cannot run it directly
|
| 3 |
+
|
| 4 |
+
deactivate () {
|
| 5 |
+
# reset old environment variables
|
| 6 |
+
if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
|
| 7 |
+
PATH="${_OLD_VIRTUAL_PATH:-}"
|
| 8 |
+
export PATH
|
| 9 |
+
unset _OLD_VIRTUAL_PATH
|
| 10 |
+
fi
|
| 11 |
+
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
|
| 12 |
+
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
|
| 13 |
+
export PYTHONHOME
|
| 14 |
+
unset _OLD_VIRTUAL_PYTHONHOME
|
| 15 |
+
fi
|
| 16 |
+
|
| 17 |
+
# Call hash to forget past locations. Without forgetting
|
| 18 |
+
# past locations the $PATH changes we made may not be respected.
|
| 19 |
+
# See "man bash" for more details. hash is usually a builtin of your shell
|
| 20 |
+
hash -r 2> /dev/null
|
| 21 |
+
|
| 22 |
+
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
|
| 23 |
+
PS1="${_OLD_VIRTUAL_PS1:-}"
|
| 24 |
+
export PS1
|
| 25 |
+
unset _OLD_VIRTUAL_PS1
|
| 26 |
+
fi
|
| 27 |
+
|
| 28 |
+
unset VIRTUAL_ENV
|
| 29 |
+
unset VIRTUAL_ENV_PROMPT
|
| 30 |
+
if [ ! "${1:-}" = "nondestructive" ] ; then
|
| 31 |
+
# Self destruct!
|
| 32 |
+
unset -f deactivate
|
| 33 |
+
fi
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
# unset irrelevant variables
|
| 37 |
+
deactivate nondestructive
|
| 38 |
+
|
| 39 |
+
# on Windows, a path can contain colons and backslashes and has to be converted:
|
| 40 |
+
case "$(uname)" in
|
| 41 |
+
CYGWIN*|MSYS*|MINGW*)
|
| 42 |
+
# transform D:\path\to\venv to /d/path/to/venv on MSYS and MINGW
|
| 43 |
+
# and to /cygdrive/d/path/to/venv on Cygwin
|
| 44 |
+
VIRTUAL_ENV=$(cygpath /home/igerasim/GCMD_Classifier/.venv)
|
| 45 |
+
export VIRTUAL_ENV
|
| 46 |
+
;;
|
| 47 |
+
*)
|
| 48 |
+
# use the path as-is
|
| 49 |
+
export VIRTUAL_ENV=/home/igerasim/GCMD_Classifier/.venv
|
| 50 |
+
;;
|
| 51 |
+
esac
|
| 52 |
+
|
| 53 |
+
_OLD_VIRTUAL_PATH="$PATH"
|
| 54 |
+
PATH="$VIRTUAL_ENV/"bin":$PATH"
|
| 55 |
+
export PATH
|
| 56 |
+
|
| 57 |
+
VIRTUAL_ENV_PROMPT=.venv
|
| 58 |
+
export VIRTUAL_ENV_PROMPT
|
| 59 |
+
|
| 60 |
+
# unset PYTHONHOME if set
|
| 61 |
+
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
|
| 62 |
+
# could use `if (set -u; : $PYTHONHOME) ;` in bash
|
| 63 |
+
if [ -n "${PYTHONHOME:-}" ] ; then
|
| 64 |
+
_OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
|
| 65 |
+
unset PYTHONHOME
|
| 66 |
+
fi
|
| 67 |
+
|
| 68 |
+
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
|
| 69 |
+
_OLD_VIRTUAL_PS1="${PS1:-}"
|
| 70 |
+
PS1="(".venv") ${PS1:-}"
|
| 71 |
+
export PS1
|
| 72 |
+
fi
|
| 73 |
+
|
| 74 |
+
# Call hash to forget past commands. Without forgetting
|
| 75 |
+
# past commands the $PATH changes we made may not be respected
|
| 76 |
+
hash -r 2> /dev/null
|
.venv/bin/activate.csh
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# This file must be used with "source bin/activate.csh" *from csh*.
|
| 2 |
+
# You cannot run it directly.
|
| 3 |
+
|
| 4 |
+
# Created by Davide Di Blasi <davidedb@gmail.com>.
|
| 5 |
+
# Ported to Python 3.3 venv by Andrew Svetlov <andrew.svetlov@gmail.com>
|
| 6 |
+
|
| 7 |
+
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate'
|
| 8 |
+
|
| 9 |
+
# Unset irrelevant variables.
|
| 10 |
+
deactivate nondestructive
|
| 11 |
+
|
| 12 |
+
setenv VIRTUAL_ENV /home/igerasim/GCMD_Classifier/.venv
|
| 13 |
+
|
| 14 |
+
set _OLD_VIRTUAL_PATH="$PATH"
|
| 15 |
+
setenv PATH "$VIRTUAL_ENV/"bin":$PATH"
|
| 16 |
+
setenv VIRTUAL_ENV_PROMPT .venv
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
set _OLD_VIRTUAL_PROMPT="$prompt"
|
| 20 |
+
|
| 21 |
+
if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
|
| 22 |
+
set prompt = "(".venv") $prompt:q"
|
| 23 |
+
endif
|
| 24 |
+
|
| 25 |
+
alias pydoc python -m pydoc
|
| 26 |
+
|
| 27 |
+
rehash
|
.venv/bin/activate.fish
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# This file must be used with "source <venv>/bin/activate.fish" *from fish*
|
| 2 |
+
# (https://fishshell.com/). You cannot run it directly.
|
| 3 |
+
|
| 4 |
+
function deactivate -d "Exit virtual environment and return to normal shell environment"
|
| 5 |
+
# reset old environment variables
|
| 6 |
+
if test -n "$_OLD_VIRTUAL_PATH"
|
| 7 |
+
set -gx PATH $_OLD_VIRTUAL_PATH
|
| 8 |
+
set -e _OLD_VIRTUAL_PATH
|
| 9 |
+
end
|
| 10 |
+
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
|
| 11 |
+
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
|
| 12 |
+
set -e _OLD_VIRTUAL_PYTHONHOME
|
| 13 |
+
end
|
| 14 |
+
|
| 15 |
+
if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
|
| 16 |
+
set -e _OLD_FISH_PROMPT_OVERRIDE
|
| 17 |
+
# prevents error when using nested fish instances (Issue #93858)
|
| 18 |
+
if functions -q _old_fish_prompt
|
| 19 |
+
functions -e fish_prompt
|
| 20 |
+
functions -c _old_fish_prompt fish_prompt
|
| 21 |
+
functions -e _old_fish_prompt
|
| 22 |
+
end
|
| 23 |
+
end
|
| 24 |
+
|
| 25 |
+
set -e VIRTUAL_ENV
|
| 26 |
+
set -e VIRTUAL_ENV_PROMPT
|
| 27 |
+
if test "$argv[1]" != "nondestructive"
|
| 28 |
+
# Self-destruct!
|
| 29 |
+
functions -e deactivate
|
| 30 |
+
end
|
| 31 |
+
end
|
| 32 |
+
|
| 33 |
+
# Unset irrelevant variables.
|
| 34 |
+
deactivate nondestructive
|
| 35 |
+
|
| 36 |
+
set -gx VIRTUAL_ENV /home/igerasim/GCMD_Classifier/.venv
|
| 37 |
+
|
| 38 |
+
set -gx _OLD_VIRTUAL_PATH $PATH
|
| 39 |
+
set -gx PATH "$VIRTUAL_ENV/"bin $PATH
|
| 40 |
+
set -gx VIRTUAL_ENV_PROMPT .venv
|
| 41 |
+
|
| 42 |
+
# Unset PYTHONHOME if set.
|
| 43 |
+
if set -q PYTHONHOME
|
| 44 |
+
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
|
| 45 |
+
set -e PYTHONHOME
|
| 46 |
+
end
|
| 47 |
+
|
| 48 |
+
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
|
| 49 |
+
# fish uses a function instead of an env var to generate the prompt.
|
| 50 |
+
|
| 51 |
+
# Save the current fish_prompt function as the function _old_fish_prompt.
|
| 52 |
+
functions -c fish_prompt _old_fish_prompt
|
| 53 |
+
|
| 54 |
+
# With the original prompt function renamed, we can override with our own.
|
| 55 |
+
function fish_prompt
|
| 56 |
+
# Save the return status of the last command.
|
| 57 |
+
set -l old_status $status
|
| 58 |
+
|
| 59 |
+
# Output the venv prompt; color taken from the blue of the Python logo.
|
| 60 |
+
printf "%s(%s)%s " (set_color 4B8BBE) .venv (set_color normal)
|
| 61 |
+
|
| 62 |
+
# Restore the return status of the previous command.
|
| 63 |
+
echo "exit $old_status" | .
|
| 64 |
+
# Output the original/"old" prompt.
|
| 65 |
+
_old_fish_prompt
|
| 66 |
+
end
|
| 67 |
+
|
| 68 |
+
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
|
| 69 |
+
end
|
.venv/bin/distro
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from distro.distro import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/f2py
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from numpy.f2py.f2py2e import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/fastapi
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from fastapi.cli import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/gradio
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from gradio.cli import cli
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(cli())
|
.venv/bin/hf
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from huggingface_hub.cli.hf import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/httpx
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from httpx import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/huggingface-cli
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from huggingface_hub.cli.deprecated_cli import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/idna
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from idna.cli import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/jsonschema
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from jsonschema.cli import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/markdown-it
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from markdown_it.cli.parse import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/numpy-config
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from numpy._configtool import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/openai
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from openai.cli import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/pip
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from pip._internal.cli.main import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
if sys.argv[0].endswith('.exe'):
|
| 6 |
+
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
+
sys.exit(main())
|
.venv/bin/pip3
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from pip._internal.cli.main import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
if sys.argv[0].endswith('.exe'):
|
| 6 |
+
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
+
sys.exit(main())
|
.venv/bin/pip3.13
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from pip._internal.cli.main import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
if sys.argv[0].endswith('.exe'):
|
| 6 |
+
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
+
sys.exit(main())
|
.venv/bin/py.test
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from pytest import console_main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(console_main())
|
.venv/bin/pygmentize
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from pygments.cmdline import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/pytest
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from pytest import console_main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(console_main())
|
.venv/bin/python
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:be5bf5719c6fda4e041336380ddb3208f440e8507557d92c98b9e23c332102d3
|
| 3 |
+
size 32959480
|
.venv/bin/python3
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:be5bf5719c6fda4e041336380ddb3208f440e8507557d92c98b9e23c332102d3
|
| 3 |
+
size 32959480
|
.venv/bin/python3.13
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:be5bf5719c6fda4e041336380ddb3208f440e8507557d92c98b9e23c332102d3
|
| 3 |
+
size 32959480
|
.venv/bin/ruff
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:68971e86ff2a4bd44f45dc2dd28e590e785fea12dc966410ae269173ce6d64db
|
| 3 |
+
size 27942368
|
.venv/bin/tiny-agents
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from huggingface_hub.inference._mcp.cli import app
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(app())
|
.venv/bin/tqdm
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from tqdm.cli import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/typer
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from typer.cli import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/upload_theme
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from gradio.themes.upload_theme import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|
.venv/bin/uvicorn
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/home/igerasim/GCMD_Classifier/.venv/bin/python
|
| 2 |
+
import sys
|
| 3 |
+
from uvicorn.main import main
|
| 4 |
+
if __name__ == '__main__':
|
| 5 |
+
sys.argv[0] = sys.argv[0].removesuffix('.exe')
|
| 6 |
+
sys.exit(main())
|