classifyre-cli 0.4.113__tar.gz → 0.4.114__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/.turbo/turbo-build.log +1 -1
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/PKG-INFO +1 -1
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/package.json +1 -1
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/pyproject.toml +1 -1
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/outputs/rest.py +20 -5
- classifyre_cli-0.4.114/tests/test_rest_backpressure.py +150 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/uv.lock +37 -37
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/.gitignore +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/.python-version +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/README.md +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/main.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/scripts/generate_models.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/config.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/base.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/broken_links/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/broken_links/detector.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/config.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/content/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/detector.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/extractor.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/runners/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/runners/_base.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/runners/_factory.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/runners/_gliner2.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/runners/_image_classification.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/runners/_llm.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/runners/_object_detection.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/runners/_regex.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/runners/_text_classification.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/trainer.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/dependencies.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/engine_version.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/pii/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/pii/detector.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/secrets/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/secrets/detector.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/threat/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/threat/code_security_detector.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/threat/yara_detector.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/file_evaluation/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/file_evaluation/runner.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/main.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/models/generated_detectors.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/models/generated_input.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/models/generated_single_asset_scan_results.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/outputs/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/outputs/base.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/outputs/console.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/outputs/factory.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/outputs/file.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/pipeline/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/pipeline/content_provider.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/pipeline/detector_pipeline.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/pipeline/parsed_content_provider.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/pipeline/payload_window.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/pipeline/scan_cache.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/pipeline/text_artifact.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/pipeline/worker_pool.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/asset_metadata.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/atlassian_common.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/azure_blob_storage/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/azure_blob_storage/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/base.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/confluence/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/confluence/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/databricks/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/databricks/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/delta_lake/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/delta_lake/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/dependencies.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/dropbox/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/dropbox/auth.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/dropbox/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/elasticsearch/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/elasticsearch/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/email/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/email/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/git/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/git/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/google_cloud_storage/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/google_cloud_storage/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/google_workspace/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/google_workspace/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/hive/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/hive/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/hugging_face/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/hugging_face/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/iceberg/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/iceberg/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/jira/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/jira/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/kafka/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/kafka/rest.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/kafka/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/lakehouse_base.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/local_folder/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/local_folder/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/meilisearch/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/meilisearch/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/microsoft_365/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/microsoft_365/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/mongodb/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/mongodb/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/mssql/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/mssql/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/mysql/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/mysql/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/neo4j/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/neo4j/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/notion/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/notion/client.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/notion/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/object_storage/base.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/opensearch/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/opensearch/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/oracle/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/oracle/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/postgresql/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/postgresql/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/powerbi/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/powerbi/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/recipe_normalizer.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/reddit/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/reddit/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/s3_client.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/s3_compatible_storage/README.md +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/s3_compatible_storage/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/s3_compatible_storage/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/sandbox/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/sandbox/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/search_engine_base.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/servicedesk/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/servicedesk/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/slack/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/slack/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/snowflake/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/snowflake/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/sqlite/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/sqlite/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/tableau/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/tableau/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/tabular_base.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/tabular_utils.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/wordpress/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/wordpress/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/youtube/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/youtube/source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/telemetry.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/archive_extraction.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/content_extraction.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/dependency_groups.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/embedded_files.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/external_video.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/file_metadata.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/file_parser.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/file_to_images.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/hashing.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/legacy_office.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/payload.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/range_reader.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/resources.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/transcription.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/uv_sync.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/validation.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/utils/video_processing.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/_lakehouse_fakes.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/conftest.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/broken_links/test_broken_links_detector.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/conftest.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/content/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/custom/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/custom/conftest.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/custom/test_gliner2_classification.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/custom/test_invoice_extraction.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/custom/test_llm_runner.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/custom/test_pipeline_integration.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/custom/test_regex_runner.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/custom/test_runner_hardening.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/custom/test_transformer_runners.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/pii/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/pii/conftest.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/pii/sample_invoice.pdf +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/pii/test_pii_chunking.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/pii/test_pii_detector.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/pii/test_pii_detector_extended.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/pii/test_pii_regional_entities.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/pii/test_pii_severity.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/secrets/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/secrets/test_secrets_detector.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/secrets/test_secrets_detector_extended.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/test_base_detector.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/test_custom_detector_examples_runtime.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/test_detector_catalog_commercial.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/test_detector_pipeline_types.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/test_detector_schema_examples.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/test_detector_types.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/test_phase2_detectors.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/test_registry.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/threat/__init__.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/threat/test_code_security_detector.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/detectors/threat/test_yara_detector.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/integration/test_wordpress_broken_links_detector.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/integration/test_wordpress_links_assets.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/pipeline/test_detector_outcomes.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/pipeline/test_detector_pipeline.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/pipeline/test_worker_pool.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_arrow_ipc_payloads.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_assets_metadata_catalog.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_azure_blob_storage_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_base_source_attachment.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_base_source_sampling.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_byte_valued_fields.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_config.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_confluence_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_custom_extractor.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_databricks_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_delta_lake_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_dependency_groups.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_dropbox_auth_command.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_dropbox_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_elasticsearch_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_email_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_file_evaluation_runner.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_git_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_google_cloud_storage_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_google_workspace_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_hashing.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_hive_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_hugging_face_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_iceberg_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_jira_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_kafka_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_local_folder_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_main.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_meilisearch_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_microsoft_365_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_mongodb_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_mssql_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_mysql_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_neo4j_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_notion_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_object_storage_download_efficiency.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_opensearch_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_oracle_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_outputs.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_payload_window.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_payload_window_parquet.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_postgresql_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_powerbi_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_range_reading.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_recipe_normalizer.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_reddit_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_s3_compatible_storage_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_sampling_automatic.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_sandbox_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_scan_cache.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_servicedesk_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_slack_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_snowflake_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_source_dependency_groups.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_source_strategy_conformance.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_sqlite_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_tableau_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_tabular_automatic_sampling.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_tabular_utils.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_uv_sync.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_wordpress_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_youtube_source.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/test_youtube_source_integration.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/utils/test_archive_extraction.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/utils/test_content_extraction.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/utils/test_embedded_files.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/utils/test_file_metadata.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/utils/test_file_parser.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/utils/test_file_to_images.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/utils/test_legacy_office.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/utils/test_payload.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/utils/test_transcription.py +0 -0
- {classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/tests/utils/test_video_processing.py +0 -0
|
@@ -77,17 +77,32 @@ class _JitteredRetry(Retry):
|
|
|
77
77
|
# attempt 5 → ~16 s
|
|
78
78
|
# attempt 6 → ~32 s
|
|
79
79
|
# attempt 7 → ~60 s (capped)
|
|
80
|
-
# attempt 8 → ~60 s
|
|
81
|
-
#
|
|
82
|
-
#
|
|
80
|
+
# attempt 8+ → ~60 s (capped)
|
|
81
|
+
#
|
|
82
|
+
# Status retries are budgeted separately from — and much more generously than —
|
|
83
|
+
# connect/read, because the two failures mean opposite things. A connect/read
|
|
84
|
+
# failure is a broken request that will not fix itself by waiting much longer.
|
|
85
|
+
# A 503 is the API *deliberately* shedding an idempotent batch it wants us to
|
|
86
|
+
# send again (see AssetService.bulkIngest and CliBackpressureGuard); giving up
|
|
87
|
+
# on it discards ingested work, which is the one outcome backpressure exists to
|
|
88
|
+
# avoid. At 60 s per attempt past the ramp, _STATUS_RETRIES ≈ 30 minutes of
|
|
89
|
+
# patience: the CLI stalls under sustained pressure but the data still lands.
|
|
90
|
+
# Retry-After is honoured when the server sends it (urllib3 default), so the
|
|
91
|
+
# API can shorten or lengthen this on its own.
|
|
92
|
+
#
|
|
93
|
+
# total=None so the status budget is not silently capped by a smaller overall
|
|
94
|
+
# count — with total set, whichever limit is lowest wins.
|
|
83
95
|
#
|
|
84
96
|
# POST and PATCH are explicitly allowed: without this urllib3 only retries
|
|
85
97
|
# idempotent methods (GET/HEAD) by default.
|
|
98
|
+
_STATUS_RETRIES = 32
|
|
99
|
+
|
|
86
100
|
_RETRY_POLICY = _JitteredRetry(
|
|
87
|
-
total=
|
|
101
|
+
total=None,
|
|
88
102
|
connect=8,
|
|
89
103
|
read=8,
|
|
90
|
-
status=
|
|
104
|
+
status=_STATUS_RETRIES,
|
|
105
|
+
other=8,
|
|
91
106
|
backoff_factor=2,
|
|
92
107
|
backoff_max=60,
|
|
93
108
|
status_forcelist={408, 429, 502, 503, 504},
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"""Backpressure contract between the CLI and the API.
|
|
2
|
+
|
|
3
|
+
The API sheds ingestion with 503 when its heap is near the V8 ceiling
|
|
4
|
+
(AssetService.bulkIngest / CliBackpressureGuard). That is only safe if the CLI
|
|
5
|
+
treats a 503 as "hold, then send this again" rather than as a failure: bulk
|
|
6
|
+
ingest is an idempotent upsert, so a retry costs a round trip, while giving up
|
|
7
|
+
silently discards assets and findings that were already extracted.
|
|
8
|
+
|
|
9
|
+
These tests pin that contract with a real socket server, because the thing that
|
|
10
|
+
can break it is the urllib3 Retry configuration, not our own code — and a
|
|
11
|
+
misconfiguration there (a `total` lower than `status`, a status code missing
|
|
12
|
+
from the forcelist) fails open, quietly, in exactly the case that matters.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
|
|
17
|
+
import json
|
|
18
|
+
import threading
|
|
19
|
+
from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
20
|
+
from typing import ClassVar
|
|
21
|
+
|
|
22
|
+
import pytest
|
|
23
|
+
import requests
|
|
24
|
+
from requests.adapters import HTTPAdapter
|
|
25
|
+
|
|
26
|
+
from src.outputs.rest import _RETRY_POLICY, _STATUS_RETRIES
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class _FlakyHandler(BaseHTTPRequestHandler):
|
|
30
|
+
"""Answers 503 for the first `unavailable_responses` calls, then 200."""
|
|
31
|
+
|
|
32
|
+
unavailable_responses: ClassVar[int] = 0
|
|
33
|
+
received_bodies: ClassVar[list[dict]] = []
|
|
34
|
+
calls: ClassVar[int] = 0
|
|
35
|
+
|
|
36
|
+
def do_POST(self) -> None:
|
|
37
|
+
type(self).calls += 1
|
|
38
|
+
length = int(self.headers.get("Content-Length", 0))
|
|
39
|
+
body = self.rfile.read(length)
|
|
40
|
+
|
|
41
|
+
if type(self).calls <= type(self).unavailable_responses:
|
|
42
|
+
self.send_response(503)
|
|
43
|
+
# Keeps the test fast: the CLI honours Retry-After, so the server
|
|
44
|
+
# picks the schedule instead of the ~2/4/8/16s exponential ramp.
|
|
45
|
+
# Note "0" would NOT work — urllib3 treats a falsy Retry-After as
|
|
46
|
+
# absent and falls back to its own backoff.
|
|
47
|
+
self.send_header("Retry-After", "1")
|
|
48
|
+
self.send_header("Content-Length", "0")
|
|
49
|
+
self.end_headers()
|
|
50
|
+
return
|
|
51
|
+
|
|
52
|
+
type(self).received_bodies.append(json.loads(body))
|
|
53
|
+
payload = b'{"ok": true}'
|
|
54
|
+
self.send_response(200)
|
|
55
|
+
self.send_header("Content-Type", "application/json")
|
|
56
|
+
self.send_header("Content-Length", str(len(payload)))
|
|
57
|
+
self.end_headers()
|
|
58
|
+
self.wfile.write(payload)
|
|
59
|
+
|
|
60
|
+
def log_message(self, *args: object) -> None:
|
|
61
|
+
pass
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
@pytest.fixture
|
|
65
|
+
def flaky_server():
|
|
66
|
+
def _start(unavailable_responses: int):
|
|
67
|
+
_FlakyHandler.unavailable_responses = unavailable_responses
|
|
68
|
+
_FlakyHandler.received_bodies = []
|
|
69
|
+
_FlakyHandler.calls = 0
|
|
70
|
+
server = HTTPServer(("127.0.0.1", 0), _FlakyHandler)
|
|
71
|
+
thread = threading.Thread(target=server.serve_forever, daemon=True)
|
|
72
|
+
thread.start()
|
|
73
|
+
return server
|
|
74
|
+
|
|
75
|
+
servers: list[HTTPServer] = []
|
|
76
|
+
|
|
77
|
+
def _factory(unavailable_responses: int) -> HTTPServer:
|
|
78
|
+
server = _start(unavailable_responses)
|
|
79
|
+
servers.append(server)
|
|
80
|
+
return server
|
|
81
|
+
|
|
82
|
+
yield _factory
|
|
83
|
+
|
|
84
|
+
for server in servers:
|
|
85
|
+
server.shutdown()
|
|
86
|
+
server.server_close()
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def _session() -> requests.Session:
|
|
90
|
+
"""A session wired exactly as RestOutput wires its own."""
|
|
91
|
+
session = requests.Session()
|
|
92
|
+
adapter = HTTPAdapter(max_retries=_RETRY_POLICY)
|
|
93
|
+
session.mount("http://", adapter)
|
|
94
|
+
session.mount("https://", adapter)
|
|
95
|
+
return session
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def test_batch_survives_sustained_backpressure(flaky_server) -> None:
|
|
99
|
+
"""The batch still lands after more 503s than the old budget allowed.
|
|
100
|
+
|
|
101
|
+
Nine is chosen deliberately: the previous policy was `total=8`, so this
|
|
102
|
+
exact scenario used to end with the assets discarded.
|
|
103
|
+
"""
|
|
104
|
+
server = flaky_server(9)
|
|
105
|
+
url = f"http://127.0.0.1:{server.server_port}/assets/bulk"
|
|
106
|
+
batch = {"assets": [{"unique_id": "a1"}, {"unique_id": "a2"}]}
|
|
107
|
+
|
|
108
|
+
response = _session().post(url, json=batch, timeout=10)
|
|
109
|
+
|
|
110
|
+
assert response.status_code == 200
|
|
111
|
+
# The point of the whole exercise: the data arrived, unchanged, exactly
|
|
112
|
+
# once as far as the server's successful handling is concerned.
|
|
113
|
+
assert _FlakyHandler.received_bodies == [batch]
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def test_status_budget_is_not_capped_by_total() -> None:
|
|
117
|
+
"""`total` must not silently shorten the status budget.
|
|
118
|
+
|
|
119
|
+
urllib3 applies whichever limit is lowest, so a `total` of 8 would make a
|
|
120
|
+
`status` of 32 a lie — which is how the retry budget read as generous while
|
|
121
|
+
actually expiring after ~3 minutes. Asserted as configuration rather than
|
|
122
|
+
behaviour because waiting out 32 real backoffs would take ~28 minutes.
|
|
123
|
+
"""
|
|
124
|
+
assert _RETRY_POLICY.total is None
|
|
125
|
+
assert _RETRY_POLICY.status == _STATUS_RETRIES
|
|
126
|
+
assert _STATUS_RETRIES >= 16
|
|
127
|
+
|
|
128
|
+
# The wall-clock patience that budget buys, at backoff_max per attempt
|
|
129
|
+
# once the ramp saturates.
|
|
130
|
+
patience_s = sum(
|
|
131
|
+
min(_RETRY_POLICY.backoff_factor * (2**i), _RETRY_POLICY.backoff_max)
|
|
132
|
+
for i in range(_RETRY_POLICY.status)
|
|
133
|
+
)
|
|
134
|
+
assert patience_s > 20 * 60
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
def test_backpressure_codes_are_all_retried() -> None:
|
|
138
|
+
for status in (408, 429, 502, 503, 504):
|
|
139
|
+
assert status in _RETRY_POLICY.status_forcelist
|
|
140
|
+
|
|
141
|
+
# Ingest is POST; urllib3 retries only idempotent methods unless told
|
|
142
|
+
# otherwise, and bulk ingest is an upsert so replay is safe.
|
|
143
|
+
assert "POST" in _RETRY_POLICY.allowed_methods
|
|
144
|
+
assert _RETRY_POLICY.respect_retry_after_header is True
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def test_client_errors_are_not_retried() -> None:
|
|
148
|
+
"""A rejected payload must fail fast, not be resent 32 times."""
|
|
149
|
+
for status in (400, 404, 422):
|
|
150
|
+
assert status not in _RETRY_POLICY.status_forcelist
|
|
@@ -562,30 +562,30 @@ wheels = [
|
|
|
562
562
|
|
|
563
563
|
[[package]]
|
|
564
564
|
name = "boto3"
|
|
565
|
-
version = "1.43.
|
|
565
|
+
version = "1.43.71"
|
|
566
566
|
source = { registry = "https://pypi.org/simple" }
|
|
567
567
|
dependencies = [
|
|
568
568
|
{ name = "botocore" },
|
|
569
569
|
{ name = "jmespath" },
|
|
570
570
|
{ name = "s3transfer" },
|
|
571
571
|
]
|
|
572
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
572
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e0/ed/3220ca6396a7ce00a49aa6f43f20cae05ec6ac386e2b5d668adfad0b3eed/boto3-1.43.71.tar.gz", hash = "sha256:e3eddb6346ee23c895dd98e5c2cfc72cb5e5ed111aa6d4331f9e903a3e3bf4ee", size = 112630, upload-time = "2026-08-13T19:20:35.332Z" }
|
|
573
573
|
wheels = [
|
|
574
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
574
|
+
{ url = "https://files.pythonhosted.org/packages/4f/16/7b54e7f5271756ab13beaaf6da03f62edcc3ee5ded651c2b17297e107040/boto3-1.43.71-py3-none-any.whl", hash = "sha256:3bb46661dc33121e56e3706753069d18f8dbcb644599cf098206546338602e16", size = 140024, upload-time = "2026-08-13T19:20:32.542Z" },
|
|
575
575
|
]
|
|
576
576
|
|
|
577
577
|
[[package]]
|
|
578
578
|
name = "botocore"
|
|
579
|
-
version = "1.43.
|
|
579
|
+
version = "1.43.71"
|
|
580
580
|
source = { registry = "https://pypi.org/simple" }
|
|
581
581
|
dependencies = [
|
|
582
582
|
{ name = "jmespath" },
|
|
583
583
|
{ name = "python-dateutil" },
|
|
584
584
|
{ name = "urllib3" },
|
|
585
585
|
]
|
|
586
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
586
|
+
sdist = { url = "https://files.pythonhosted.org/packages/d6/c2/98b8ff6a21a9ed99b0699f468446f26a679443b2bca46fcd6aaa0cfbae75/botocore-1.43.71.tar.gz", hash = "sha256:2cde7a55aaac86a2e9a3bcd2ce3fad1a31a4711749e10f350af231e55ccef7ed", size = 15943777, upload-time = "2026-08-13T19:20:29.292Z" }
|
|
587
587
|
wheels = [
|
|
588
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
588
|
+
{ url = "https://files.pythonhosted.org/packages/81/2f/700d973e3f0a37a275900be1a389af5a4ab67dd9362d17782b17f1045f0b/botocore-1.43.71-py3-none-any.whl", hash = "sha256:7bc3d5ddaca6f68e2eef707714264789048a6f496d375d976c560674f0cd1d1b", size = 15635728, upload-time = "2026-08-13T19:20:26.302Z" },
|
|
589
589
|
]
|
|
590
590
|
|
|
591
591
|
[[package]]
|
|
@@ -923,7 +923,7 @@ wheels = [
|
|
|
923
923
|
|
|
924
924
|
[[package]]
|
|
925
925
|
name = "classifyre-cli"
|
|
926
|
-
version = "0.4.
|
|
926
|
+
version = "0.4.114"
|
|
927
927
|
source = { editable = "." }
|
|
928
928
|
dependencies = [
|
|
929
929
|
{ name = "beautifulsoup4" },
|
|
@@ -1462,7 +1462,7 @@ youtube = [
|
|
|
1462
1462
|
|
|
1463
1463
|
[[package]]
|
|
1464
1464
|
name = "classifyre-schemas"
|
|
1465
|
-
version = "0.4.
|
|
1465
|
+
version = "0.4.114"
|
|
1466
1466
|
source = { editable = "../../packages/schemas" }
|
|
1467
1467
|
dependencies = [
|
|
1468
1468
|
{ name = "fastjsonschema" },
|
|
@@ -1847,14 +1847,14 @@ wheels = [
|
|
|
1847
1847
|
|
|
1848
1848
|
[[package]]
|
|
1849
1849
|
name = "docling"
|
|
1850
|
-
version = "2.
|
|
1850
|
+
version = "2.120.1"
|
|
1851
1851
|
source = { registry = "https://pypi.org/simple" }
|
|
1852
1852
|
dependencies = [
|
|
1853
1853
|
{ name = "docling-slim", extra = ["standard"] },
|
|
1854
1854
|
]
|
|
1855
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1855
|
+
sdist = { url = "https://files.pythonhosted.org/packages/83/a3/537c6f0ee2208e61538579f3dcf3abf5df4a4d6448c5c28c8574b5291903/docling-2.120.1.tar.gz", hash = "sha256:8ff9773147e7ce3588d67594239fb3b79be5733adfbf306ba46f4310fb1f61f0", size = 9013, upload-time = "2026-08-14T11:51:21.073Z" }
|
|
1856
1856
|
wheels = [
|
|
1857
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1857
|
+
{ url = "https://files.pythonhosted.org/packages/16/90/ec73628602e3a49544f3c6a6a4fde02e0f6053d58e9b4279bc0839a55f8e/docling-2.120.1-py3-none-any.whl", hash = "sha256:04897c566285bf2df166ccae6acd285f1d41e2336755a89d05be515be2090bc3", size = 5179, upload-time = "2026-08-14T11:51:19.875Z" },
|
|
1858
1858
|
]
|
|
1859
1859
|
|
|
1860
1860
|
[[package]]
|
|
@@ -1922,7 +1922,7 @@ wheels = [
|
|
|
1922
1922
|
|
|
1923
1923
|
[[package]]
|
|
1924
1924
|
name = "docling-parse"
|
|
1925
|
-
version = "7.
|
|
1925
|
+
version = "7.13.0"
|
|
1926
1926
|
source = { registry = "https://pypi.org/simple" }
|
|
1927
1927
|
dependencies = [
|
|
1928
1928
|
{ name = "docling-core" },
|
|
@@ -1930,28 +1930,28 @@ dependencies = [
|
|
|
1930
1930
|
{ name = "pydantic" },
|
|
1931
1931
|
{ name = "pywin32", marker = "sys_platform == 'win32'" },
|
|
1932
1932
|
]
|
|
1933
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1933
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ba/80/861612a7ee977ec27cf4966337cbfa9033e9a58378fbeb0449e732b6fe31/docling_parse-7.13.0.tar.gz", hash = "sha256:23575b21b8722466899135340b254124792d0c19d18cd223cad437dc4283f8f5", size = 6864422, upload-time = "2026-08-14T06:28:50.233Z" }
|
|
1934
1934
|
wheels = [
|
|
1935
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1936
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1937
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1938
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1939
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1940
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1941
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1942
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1943
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1944
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1945
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1946
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1947
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1948
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1949
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1935
|
+
{ url = "https://files.pythonhosted.org/packages/68/95/45b9a5cfd04853bf2a8ebe54722096ee6969a19142cfa39f320dc3254322/docling_parse-7.13.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:21eb89636a9707c484f7d73dae0e56f64807869281716ccb511c55a5adf3121f", size = 9698711, upload-time = "2026-08-14T06:28:12.256Z" },
|
|
1936
|
+
{ url = "https://files.pythonhosted.org/packages/0d/72/269de56bbb4eec9255d4f5b89a0fa0996b1fd697bfc15e3f959a53adc285/docling_parse-7.13.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a1f7d03e74e1fd6e8f11bff03c47b1300e259ea1b1ffd733166001d237baec9", size = 10223985, upload-time = "2026-08-14T06:28:14.875Z" },
|
|
1937
|
+
{ url = "https://files.pythonhosted.org/packages/dd/4a/45a7ba9b8694ab552613cd4d93df1d60905023857cfee1a99289aa3f89c3/docling_parse-7.13.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f68c5dffee3e0596e0f8ee4efdb30ee52bec59b913170eaa082d0cc2f287c259", size = 10614327, upload-time = "2026-08-14T06:28:17.228Z" },
|
|
1938
|
+
{ url = "https://files.pythonhosted.org/packages/6e/f7/4f18b540c6dc1f513abf38e9c7f9d1f25f664fed9af6bc52cb099ef09a78/docling_parse-7.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:f683f3ad7b428b18e236e0175dbff897619f9433d39aac6d16a859263ec4125b", size = 11673968, upload-time = "2026-08-14T06:28:19.568Z" },
|
|
1939
|
+
{ url = "https://files.pythonhosted.org/packages/35/7a/f203bacb44f1e4113894b26479261dc400137e5675e670e0ffe2d9d75adb/docling_parse-7.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:a73f3ecc446aa8832396eeb49f64924304b7eb52c473ae9a610ec6b4a1b06e2f", size = 8992588, upload-time = "2026-08-14T06:28:23.477Z" },
|
|
1940
|
+
{ url = "https://files.pythonhosted.org/packages/68/a6/427efea60890d2962005039260a61ecba4cd23a0e2a83b116e7064bc1c62/docling_parse-7.13.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9cc2cdf4aed0c83d690c733259c1a7a38e9690e2b42bae39b3f6ff1d289194ae", size = 9698752, upload-time = "2026-08-14T06:28:25.835Z" },
|
|
1941
|
+
{ url = "https://files.pythonhosted.org/packages/2f/d9/16593f172dce343fb9b5fbb6711070dd898bd52d05afe7fb38182d0c2588/docling_parse-7.13.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:979978f903bb1b387429eb7e0cbc44eb877080c4f2129c8b637e24100bd75ff5", size = 10223995, upload-time = "2026-08-14T06:28:28.518Z" },
|
|
1942
|
+
{ url = "https://files.pythonhosted.org/packages/1c/da/e4bc26a0345d0651779bfb04f5cd99552a3fac1fca2681d88b67a27348d9/docling_parse-7.13.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac73eb49b6194d40d58f01eba6e134bea857667f6aa99dc2371cf3d24d5fd817", size = 10614354, upload-time = "2026-08-14T06:28:30.871Z" },
|
|
1943
|
+
{ url = "https://files.pythonhosted.org/packages/e2/b8/a40158593b3293a8364d62cf2866a29e71f0d909f46c2413e4c98f127142/docling_parse-7.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:f16952a2cc2a609f444bf0d6fe7ee1d9b35f1d38f26ebb7f208652a8c7999b71", size = 11673865, upload-time = "2026-08-14T06:28:33.354Z" },
|
|
1944
|
+
{ url = "https://files.pythonhosted.org/packages/13/af/f255fcd2d2b5987c2e3b6dae5d42283266720c775f32e6a1503b5c6683f2/docling_parse-7.13.0-cp313-cp313-win_arm64.whl", hash = "sha256:30c612b0378233d6dbc4b76a10a4fb1492c975a50121aa3a8f691b1dd6ba8298", size = 8992516, upload-time = "2026-08-14T06:28:35.64Z" },
|
|
1945
|
+
{ url = "https://files.pythonhosted.org/packages/43/8f/452ea0ccdc577d7cdab49b21a97463650cf29447b381dc79866032f9a87b/docling_parse-7.13.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:1404f4292303c53c8d7822957888edb3c2ffc9029f6289862150af09cd2263d1", size = 9699328, upload-time = "2026-08-14T06:28:38.109Z" },
|
|
1946
|
+
{ url = "https://files.pythonhosted.org/packages/3e/ec/f23d35ccd988e8c3e2960bf9475713387e87fe1b56747fc5700f8e5e695b/docling_parse-7.13.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:764a4cfa366e430ded399d505e39f91cb1f7060dece48a83c49512b2acd57928", size = 10224649, upload-time = "2026-08-14T06:28:40.433Z" },
|
|
1947
|
+
{ url = "https://files.pythonhosted.org/packages/92/d2/063dcaa311702a2500e4d063f08e7134d048c000813235e5e085d3d4a1e1/docling_parse-7.13.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fbe720eab2ae5b38928872953acd4ac693c7c79ef340203285b7345dd4ba3a42", size = 10614598, upload-time = "2026-08-14T06:28:42.955Z" },
|
|
1948
|
+
{ url = "https://files.pythonhosted.org/packages/d2/75/9c9bace0574c2aaf2b9332083446c563dd0356ca0651d74f2c41bbdd334e/docling_parse-7.13.0-cp314-cp314-win_amd64.whl", hash = "sha256:9ff2657c8950225a894558a0ff9c8198af3ed813c4e945e5c1995b8892c17dce", size = 12107442, upload-time = "2026-08-14T06:28:45.362Z" },
|
|
1949
|
+
{ url = "https://files.pythonhosted.org/packages/5c/09/ba429e3ed8566d5dc00b72064c2d223595ecd6666cd3b3a5b781cd1d9297/docling_parse-7.13.0-cp314-cp314-win_arm64.whl", hash = "sha256:28c7881ee8fec08d119d661966f6cbf581b9da5896bddd4221732b6e17993121", size = 9359125, upload-time = "2026-08-14T06:28:47.667Z" },
|
|
1950
1950
|
]
|
|
1951
1951
|
|
|
1952
1952
|
[[package]]
|
|
1953
1953
|
name = "docling-slim"
|
|
1954
|
-
version = "2.
|
|
1954
|
+
version = "2.120.1"
|
|
1955
1955
|
source = { registry = "https://pypi.org/simple" }
|
|
1956
1956
|
dependencies = [
|
|
1957
1957
|
{ name = "certifi" },
|
|
@@ -1963,9 +1963,9 @@ dependencies = [
|
|
|
1963
1963
|
{ name = "requests" },
|
|
1964
1964
|
{ name = "tqdm" },
|
|
1965
1965
|
]
|
|
1966
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1966
|
+
sdist = { url = "https://files.pythonhosted.org/packages/f0/5b/3bd25d1832168ce15b788d3e995c7c0e2aa4bb3dd226aaa6adce44ef4d66/docling_slim-2.120.1.tar.gz", hash = "sha256:451622619c08fa75cb9fc7a4deb3c2f165be33503d46226f4c63024a863be64c", size = 588136, upload-time = "2026-08-14T11:49:56.896Z" }
|
|
1967
1967
|
wheels = [
|
|
1968
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1968
|
+
{ url = "https://files.pythonhosted.org/packages/96/dd/9f5bad579bfd712075ea4a56b7e35036cbe5bc9c39a2b668003d15a6b8a5/docling_slim-2.120.1-py3-none-any.whl", hash = "sha256:97e0275ff06865df4b9a4162d01674401e4046d85e012b923f6eb8fc53441732", size = 729536, upload-time = "2026-08-14T11:49:54.741Z" },
|
|
1969
1969
|
]
|
|
1970
1970
|
|
|
1971
1971
|
[package.optional-dependencies]
|
|
@@ -4366,11 +4366,11 @@ wheels = [
|
|
|
4366
4366
|
|
|
4367
4367
|
[[package]]
|
|
4368
4368
|
name = "platformdirs"
|
|
4369
|
-
version = "4.11.
|
|
4369
|
+
version = "4.11.3"
|
|
4370
4370
|
source = { registry = "https://pypi.org/simple" }
|
|
4371
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
4371
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b8/d7/e7bfbc86e9f99ff7807e24de7703f032e9c9ba80bb355cf26e0e9bc5a75e/platformdirs-4.11.3.tar.gz", hash = "sha256:66a73d38a849810252df809a3d8bcbda8e26f6c189920e7535ad608a48dbb5ab", size = 33050, upload-time = "2026-08-13T22:43:27.52Z" }
|
|
4372
4372
|
wheels = [
|
|
4373
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
4373
|
+
{ url = "https://files.pythonhosted.org/packages/19/a9/c34aebedd3a4c9afe5101b1b8713710b3fec18087c8a36c35d2f909861bd/platformdirs-4.11.3-py3-none-any.whl", hash = "sha256:5ed065d443751de711da036041a7a214122efc4a4de393b3f4137ba5576540e7", size = 23491, upload-time = "2026-08-13T22:43:26.121Z" },
|
|
4374
4374
|
]
|
|
4375
4375
|
|
|
4376
4376
|
[[package]]
|
|
@@ -5201,11 +5201,11 @@ wheels = [
|
|
|
5201
5201
|
|
|
5202
5202
|
[[package]]
|
|
5203
5203
|
name = "pyphen"
|
|
5204
|
-
version = "0.18.
|
|
5204
|
+
version = "0.18.1"
|
|
5205
5205
|
source = { registry = "https://pypi.org/simple" }
|
|
5206
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
5206
|
+
sdist = { url = "https://files.pythonhosted.org/packages/94/47/8430452269cd28863d73b903d07d329d058cf762527ff211b3864ba61fc7/pyphen-0.18.1.tar.gz", hash = "sha256:dbae6fbbe4f01cb206108b43573d857c67107be9d0e38eb1b08d6fa2210634a7", size = 2116411, upload-time = "2026-08-14T11:30:12.083Z" }
|
|
5207
5207
|
wheels = [
|
|
5208
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
5208
|
+
{ url = "https://files.pythonhosted.org/packages/ec/1d/23801cf008f71575f0a4800463f349afa5f04b27fe783178a45cdc4d5edf/pyphen-0.18.1-py3-none-any.whl", hash = "sha256:0aa9051e15928cecadd4c632cea0258ba57215b2a197a39baa46abcdb0f47e84", size = 2116143, upload-time = "2026-08-14T11:30:10.428Z" },
|
|
5209
5209
|
]
|
|
5210
5210
|
|
|
5211
5211
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/custom/runners/_object_detection.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/detectors/threat/code_security_detector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/models/generated_single_asset_scan_results.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.113 → classifyre_cli-0.4.114}/src/sources/azure_blob_storage/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|