classifyre-cli 0.4.15__tar.gz → 0.4.17__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.15 → classifyre_cli-0.4.17}/.turbo/turbo-build.log +1 -1
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/PKG-INFO +1 -1
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/package.json +1 -1
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/pyproject.toml +2 -1
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/runners/_object_detection.py +1 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/main.py +14 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/outputs/rest.py +49 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/base.py +12 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/email/source.py +23 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/uv.lock +46 -25
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/.gitignore +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/.python-version +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/README.md +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/main.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/scripts/generate_models.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/base.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/broken_links/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/broken_links/detector.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/config.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/content/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/detector.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/extractor.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/runners/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/runners/_base.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/runners/_factory.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/runners/_feature_extraction.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/runners/_gliner2.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/runners/_image_classification.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/runners/_llm.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/runners/_regex.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/runners/_text_classification.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/trainer.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/dependencies.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/pii/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/pii/detector.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/secrets/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/secrets/detector.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/threat/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/threat/code_security_detector.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/threat/yara_detector.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/models/generated_detectors.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/models/generated_input.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/models/generated_single_asset_scan_results.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/outputs/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/outputs/base.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/outputs/console.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/outputs/factory.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/outputs/file.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/pipeline/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/pipeline/content_provider.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/pipeline/detector_pipeline.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/pipeline/parsed_content_provider.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/pipeline/worker_pool.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sandbox/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sandbox/runner.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/asset_metadata.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/atlassian_common.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/azure_blob_storage/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/azure_blob_storage/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/confluence/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/confluence/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/databricks/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/databricks/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/dependencies.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/email/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/google_cloud_storage/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/google_cloud_storage/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/hive/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/hive/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/jira/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/jira/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/mongodb/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/mongodb/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/mssql/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/mssql/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/mysql/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/mysql/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/neo4j/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/neo4j/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/notion/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/notion/client.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/notion/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/object_storage/base.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/oracle/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/oracle/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/postgresql/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/postgresql/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/powerbi/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/powerbi/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/recipe_normalizer.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/s3_compatible_storage/README.md +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/s3_compatible_storage/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/s3_compatible_storage/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/servicedesk/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/servicedesk/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/slack/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/slack/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/snowflake/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/snowflake/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/sqlite/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/sqlite/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/tableau/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/tableau/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/tabular_base.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/tabular_utils.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/wordpress/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/sources/wordpress/source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/telemetry.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/utils/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/utils/content_extraction.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/utils/dependency_groups.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/utils/embedded_images.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/utils/file_metadata.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/utils/file_parser.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/utils/file_to_images.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/utils/hashing.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/utils/uv_sync.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/utils/validation.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/conftest.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/broken_links/test_broken_links_detector.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/conftest.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/content/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/custom/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/custom/conftest.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/custom/test_invoice_extraction.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/custom/test_llm_runner.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/custom/test_pipeline_integration.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/custom/test_regex_runner.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/custom/test_transformer_runners.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/pii/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/pii/conftest.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/pii/sample_invoice.pdf +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/pii/test_pii_detector.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/pii/test_pii_detector_extended.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/secrets/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/secrets/test_secrets_detector.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/secrets/test_secrets_detector_extended.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/test_base_detector.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/test_custom_detector_examples_runtime.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/test_detector_catalog_commercial.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/test_detector_pipeline_types.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/test_detector_schema_examples.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/test_detector_types.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/test_phase2_detectors.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/test_registry.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/threat/__init__.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/threat/test_code_security_detector.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/detectors/threat/test_yara_detector.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/integration/test_wordpress_broken_links_detector.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/integration/test_wordpress_links_assets.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/pipeline/test_detector_pipeline.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/pipeline/test_worker_pool.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_assets_metadata_catalog.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_azure_blob_storage_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_base_source_attachment.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_base_source_sampling.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_confluence_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_custom_extractor.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_databricks_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_dependency_groups.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_email_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_google_cloud_storage_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_hashing.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_hive_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_jira_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_mongodb_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_mssql_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_mysql_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_neo4j_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_notion_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_oracle_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_outputs.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_postgresql_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_powerbi_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_recipe_normalizer.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_s3_compatible_storage_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_sandbox_runner.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_servicedesk_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_slack_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_snowflake_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_source_dependency_groups.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_sqlite_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_tableau_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_tabular_utils.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_uv_sync.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/test_wordpress_source.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/utils/test_content_extraction.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/utils/test_embedded_images.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/utils/test_file_metadata.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/utils/test_file_parser.py +0 -0
- {classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/tests/utils/test_file_to_images.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "classifyre-cli"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.17"
|
|
4
4
|
description = "Classifyre CLI — scan and classify unstructured data sources"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -94,6 +94,7 @@ custom = [
|
|
|
94
94
|
"transformers>=4.50.0,<6.0.0",
|
|
95
95
|
"torch>=2.12.0",
|
|
96
96
|
"pillow>=12.2.0",
|
|
97
|
+
"timm>=1.0.27",
|
|
97
98
|
"setfit>=1.1.3",
|
|
98
99
|
"datasets>=4.8.5",
|
|
99
100
|
"scikit-learn>=1.7.2",
|
|
@@ -372,6 +372,20 @@ async def run_command_async(args: argparse.Namespace, recipe: dict[str, Any]) ->
|
|
|
372
372
|
total_assets,
|
|
373
373
|
output_batch_count,
|
|
374
374
|
)
|
|
375
|
+
|
|
376
|
+
# Phase 1: emit source-derived relationship edges (best-effort).
|
|
377
|
+
if hasattr(source, "collect_relationships") and hasattr(sink, "emit_edges"):
|
|
378
|
+
try:
|
|
379
|
+
edges = await source.collect_relationships()
|
|
380
|
+
if edges:
|
|
381
|
+
await sink.emit_edges(edges)
|
|
382
|
+
logger.info(
|
|
383
|
+
"Emitted %d source-derived relationship edges", len(edges)
|
|
384
|
+
)
|
|
385
|
+
except Exception as rel_error:
|
|
386
|
+
logger.warning(
|
|
387
|
+
"Relationship emission failed (non-fatal): %s", rel_error
|
|
388
|
+
)
|
|
375
389
|
except Exception as extraction_error:
|
|
376
390
|
if _is_timeout_error(extraction_error):
|
|
377
391
|
logger.warning(
|
|
@@ -97,6 +97,31 @@ class BulkIngestAssetsRequest(BaseModel):
|
|
|
97
97
|
skip_findings: bool = Field(False, serialization_alias="skipFindings")
|
|
98
98
|
|
|
99
99
|
|
|
100
|
+
class IngestEdge(BaseModel):
|
|
101
|
+
"""A source-derived relationship edge for the investigation graph.
|
|
102
|
+
|
|
103
|
+
Identify endpoints by UUID (from_id / to_id) or by asset hash
|
|
104
|
+
(from_hash / to_hash — the API resolves hashes to UUIDs).
|
|
105
|
+
"""
|
|
106
|
+
|
|
107
|
+
model_config = ConfigDict(populate_by_name=True)
|
|
108
|
+
|
|
109
|
+
from_type: str = Field(serialization_alias="fromType")
|
|
110
|
+
from_id: str | None = Field(None, serialization_alias="fromId")
|
|
111
|
+
from_hash: str | None = Field(None, serialization_alias="fromHash")
|
|
112
|
+
to_type: str = Field(serialization_alias="toType")
|
|
113
|
+
to_id: str | None = Field(None, serialization_alias="toId")
|
|
114
|
+
to_hash: str | None = Field(None, serialization_alias="toHash")
|
|
115
|
+
relation_type: str = Field(serialization_alias="relationType")
|
|
116
|
+
confidence: float = 1.0
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
class BulkIngestEdgesRequest(BaseModel):
|
|
120
|
+
model_config = ConfigDict(populate_by_name=True)
|
|
121
|
+
|
|
122
|
+
edges: list[IngestEdge]
|
|
123
|
+
|
|
124
|
+
|
|
100
125
|
class FinalizeIngestRunRequest(BaseModel):
|
|
101
126
|
model_config = ConfigDict(populate_by_name=True)
|
|
102
127
|
|
|
@@ -252,6 +277,30 @@ class RestOutputSink:
|
|
|
252
277
|
update_error,
|
|
253
278
|
)
|
|
254
279
|
|
|
280
|
+
async def emit_edges(self, edges: list[IngestEdge]) -> None:
|
|
281
|
+
"""Bulk-upsert source-derived relationship edges to the investigation graph.
|
|
282
|
+
|
|
283
|
+
Idempotent — safe to call multiple times with overlapping data.
|
|
284
|
+
Silently skips if the list is empty.
|
|
285
|
+
"""
|
|
286
|
+
if not edges:
|
|
287
|
+
return
|
|
288
|
+
|
|
289
|
+
_edge_batch = 500
|
|
290
|
+
for i in range(0, len(edges), _edge_batch):
|
|
291
|
+
chunk = edges[i : i + _edge_batch]
|
|
292
|
+
payload = BulkIngestEdgesRequest(edges=chunk)
|
|
293
|
+
try:
|
|
294
|
+
self._request_json(
|
|
295
|
+
"POST",
|
|
296
|
+
"/graph/edges",
|
|
297
|
+
payload.model_dump(mode="json", by_alias=True),
|
|
298
|
+
)
|
|
299
|
+
logger.debug("Emitted %d source-derived edges to graph", len(chunk))
|
|
300
|
+
except Exception as exc:
|
|
301
|
+
# Edge emission is best-effort: log and continue.
|
|
302
|
+
logger.warning("Failed to emit edges to graph: %s", exc)
|
|
303
|
+
|
|
255
304
|
async def register_discovered_assets(self, hashes: list[str]) -> None:
|
|
256
305
|
runner_id = self._require_runner_id()
|
|
257
306
|
for i in range(0, len(hashes), 500):
|
|
@@ -4,6 +4,7 @@ from collections.abc import AsyncGenerator, Generator
|
|
|
4
4
|
from typing import TYPE_CHECKING, Any
|
|
5
5
|
|
|
6
6
|
from ..models.generated_single_asset_scan_results import DetectionResult, SingleAssetScanResults
|
|
7
|
+
from ..outputs.rest import IngestEdge
|
|
7
8
|
|
|
8
9
|
if TYPE_CHECKING:
|
|
9
10
|
from ..utils.file_parser import ParsedBytes
|
|
@@ -315,3 +316,14 @@ class BaseSource(ABC):
|
|
|
315
316
|
this and map those identifiers back to their original URLs.
|
|
316
317
|
"""
|
|
317
318
|
return normalize_http_url(link)
|
|
319
|
+
|
|
320
|
+
async def collect_relationships(self) -> list[IngestEdge]:
|
|
321
|
+
"""Return source-derived relationship edges for the investigation graph.
|
|
322
|
+
|
|
323
|
+
Connectors override this to emit typed edges (READS, ATTACHED_TO,
|
|
324
|
+
SENT_TO, OWNS, ACCESSED, etc.) discovered during extraction. The caller
|
|
325
|
+
(main.py) will forward these to ``RestOutputSink.emit_edges()``.
|
|
326
|
+
|
|
327
|
+
Default: no relationships (empty list).
|
|
328
|
+
"""
|
|
329
|
+
return []
|
|
@@ -102,6 +102,8 @@ class EmailSource(BaseSource):
|
|
|
102
102
|
self._email_locator_by_hash: dict[str, tuple[str, str]] = {}
|
|
103
103
|
self._hash_by_url: dict[str, str] = {}
|
|
104
104
|
self._attachment_name_by_hash = {}
|
|
105
|
+
# Phase 1: tracks (email_hash → [attachment_hash, ...]) for relationship emission.
|
|
106
|
+
self._email_attachment_links: dict[str, list[str]] = {}
|
|
105
107
|
|
|
106
108
|
self._mailbox: Any = None
|
|
107
109
|
|
|
@@ -303,6 +305,9 @@ class EmailSource(BaseSource):
|
|
|
303
305
|
runner_id=self.runner_id,
|
|
304
306
|
**self.metadata_fields("email", metadata),
|
|
305
307
|
)
|
|
308
|
+
# Track for Phase 1 relationship emission.
|
|
309
|
+
if attachment_hashes:
|
|
310
|
+
self._email_attachment_links[email_hash] = attachment_hashes
|
|
306
311
|
return [email_asset, *attachment_assets]
|
|
307
312
|
|
|
308
313
|
def _attachment_to_asset(
|
|
@@ -515,6 +520,24 @@ class EmailSource(BaseSource):
|
|
|
515
520
|
# ------------------------------------------------------------------
|
|
516
521
|
# Lifecycle
|
|
517
522
|
# ------------------------------------------------------------------
|
|
523
|
+
async def collect_relationships(self) -> list[Any]:
|
|
524
|
+
"""Emit ATTACHED_TO edges: email → attachment for each extracted message."""
|
|
525
|
+
from ...outputs.rest import IngestEdge
|
|
526
|
+
|
|
527
|
+
edges: list[IngestEdge] = []
|
|
528
|
+
for email_hash, attachment_hashes in self._email_attachment_links.items():
|
|
529
|
+
for att_hash in attachment_hashes:
|
|
530
|
+
edges.append(
|
|
531
|
+
IngestEdge(
|
|
532
|
+
from_type="asset",
|
|
533
|
+
from_hash=email_hash,
|
|
534
|
+
to_type="asset",
|
|
535
|
+
to_hash=att_hash,
|
|
536
|
+
relation_type="ATTACHED_TO",
|
|
537
|
+
)
|
|
538
|
+
)
|
|
539
|
+
return edges
|
|
540
|
+
|
|
518
541
|
def abort(self) -> None:
|
|
519
542
|
logger.info("Aborting email extraction...")
|
|
520
543
|
super().abort()
|
|
@@ -399,30 +399,30 @@ wheels = [
|
|
|
399
399
|
|
|
400
400
|
[[package]]
|
|
401
401
|
name = "boto3"
|
|
402
|
-
version = "1.43.
|
|
402
|
+
version = "1.43.29"
|
|
403
403
|
source = { registry = "https://pypi.org/simple" }
|
|
404
404
|
dependencies = [
|
|
405
405
|
{ name = "botocore" },
|
|
406
406
|
{ name = "jmespath" },
|
|
407
407
|
{ name = "s3transfer" },
|
|
408
408
|
]
|
|
409
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
409
|
+
sdist = { url = "https://files.pythonhosted.org/packages/85/a6/9c02ff00d08ea87908934351d244e35bb6fb5cbc169e1a14fc5bd80d124b/boto3-1.43.29.tar.gz", hash = "sha256:354006c512cdb87ef8214a095f2ade961c8145734475cd7a7e6b39260ff5494a", size = 113198, upload-time = "2026-06-12T19:32:23.442Z" }
|
|
410
410
|
wheels = [
|
|
411
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
411
|
+
{ url = "https://files.pythonhosted.org/packages/07/5c/f12a9978526c7068c873ccf9788161fc6af338c6a025f1354a46134a6e46/boto3-1.43.29-py3-none-any.whl", hash = "sha256:77c27ada27cdbf619a3bbc41fa9e991caef818d3a2988cf92ea722e107d90108", size = 140537, upload-time = "2026-06-12T19:32:21.682Z" },
|
|
412
412
|
]
|
|
413
413
|
|
|
414
414
|
[[package]]
|
|
415
415
|
name = "botocore"
|
|
416
|
-
version = "1.43.
|
|
416
|
+
version = "1.43.29"
|
|
417
417
|
source = { registry = "https://pypi.org/simple" }
|
|
418
418
|
dependencies = [
|
|
419
419
|
{ name = "jmespath" },
|
|
420
420
|
{ name = "python-dateutil" },
|
|
421
421
|
{ name = "urllib3" },
|
|
422
422
|
]
|
|
423
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
423
|
+
sdist = { url = "https://files.pythonhosted.org/packages/6f/54/df99c5ca5c9ef275e34b87e177782e3ca054fc35f1f462c40fe180936c81/botocore-1.43.29.tar.gz", hash = "sha256:dce39d33b707aa162aa3820975f99d7f8f746d46576169fb42ce4f2b3b56b261", size = 15512384, upload-time = "2026-06-12T19:32:13.754Z" }
|
|
424
424
|
wheels = [
|
|
425
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
425
|
+
{ url = "https://files.pythonhosted.org/packages/91/b1/aa410c22355f8f6c4ac2433db6a1c557dd959acf2953ccae4bfc37488119/botocore-1.43.29-py3-none-any.whl", hash = "sha256:5d62f2a03ed279a50207ca2824e009313df15f082b6bb591a095a4f04c7faef3", size = 15194135, upload-time = "2026-06-12T19:32:09.463Z" },
|
|
426
426
|
]
|
|
427
427
|
|
|
428
428
|
[[package]]
|
|
@@ -606,7 +606,7 @@ wheels = [
|
|
|
606
606
|
|
|
607
607
|
[[package]]
|
|
608
608
|
name = "classifyre-cli"
|
|
609
|
-
version = "0.4.
|
|
609
|
+
version = "0.4.17"
|
|
610
610
|
source = { editable = "." }
|
|
611
611
|
dependencies = [
|
|
612
612
|
{ name = "beautifulsoup4" },
|
|
@@ -643,6 +643,7 @@ custom = [
|
|
|
643
643
|
{ name = "scikit-learn" },
|
|
644
644
|
{ name = "sentence-transformers" },
|
|
645
645
|
{ name = "setfit" },
|
|
646
|
+
{ name = "timm" },
|
|
646
647
|
{ name = "torch", version = "2.12.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" },
|
|
647
648
|
{ name = "torch", version = "2.12.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'linux'" },
|
|
648
649
|
{ name = "transformers" },
|
|
@@ -678,6 +679,7 @@ detectors = [
|
|
|
678
679
|
{ name = "setfit" },
|
|
679
680
|
{ name = "spacy" },
|
|
680
681
|
{ name = "textstat" },
|
|
682
|
+
{ name = "timm" },
|
|
681
683
|
{ name = "torch", version = "2.12.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" },
|
|
682
684
|
{ name = "torch", version = "2.12.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'linux'" },
|
|
683
685
|
{ name = "transformers" },
|
|
@@ -730,7 +732,7 @@ neo4j = [
|
|
|
730
732
|
ocr = [
|
|
731
733
|
{ name = "chardet" },
|
|
732
734
|
{ name = "docling", version = "2.99.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'darwin'" },
|
|
733
|
-
{ name = "docling", version = "2.
|
|
735
|
+
{ name = "docling", version = "2.102.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'darwin'" },
|
|
734
736
|
{ name = "filetype" },
|
|
735
737
|
{ name = "openpyxl" },
|
|
736
738
|
{ name = "pdfplumber" },
|
|
@@ -821,6 +823,7 @@ custom = [
|
|
|
821
823
|
{ name = "scikit-learn", specifier = ">=1.7.2" },
|
|
822
824
|
{ name = "sentence-transformers", specifier = ">=5.5.0" },
|
|
823
825
|
{ name = "setfit", specifier = ">=1.1.3" },
|
|
826
|
+
{ name = "timm", specifier = ">=1.0.27" },
|
|
824
827
|
{ name = "torch", marker = "sys_platform != 'linux'", specifier = ">=2.12.0" },
|
|
825
828
|
{ name = "torch", marker = "sys_platform == 'linux'", specifier = ">=2.12.0", index = "https://download.pytorch.org/whl/cpu" },
|
|
826
829
|
{ name = "transformers", specifier = ">=4.50.0,<6.0.0" },
|
|
@@ -856,6 +859,7 @@ detectors = [
|
|
|
856
859
|
{ name = "setfit", specifier = ">=1.1.3" },
|
|
857
860
|
{ name = "spacy", specifier = ">=3.8.14" },
|
|
858
861
|
{ name = "textstat", specifier = ">=0.7.13" },
|
|
862
|
+
{ name = "timm", specifier = ">=1.0.27" },
|
|
859
863
|
{ name = "torch", marker = "sys_platform != 'linux'", specifier = ">=2.12.0" },
|
|
860
864
|
{ name = "torch", marker = "sys_platform == 'linux'", specifier = ">=2.12.0", index = "https://download.pytorch.org/whl/cpu" },
|
|
861
865
|
{ name = "transformers", specifier = ">=4.50.0,<6.0.0" },
|
|
@@ -942,7 +946,7 @@ threat-ml = [
|
|
|
942
946
|
|
|
943
947
|
[[package]]
|
|
944
948
|
name = "classifyre-schemas"
|
|
945
|
-
version = "0.4.
|
|
949
|
+
version = "0.4.17"
|
|
946
950
|
source = { editable = "../../packages/schemas" }
|
|
947
951
|
dependencies = [
|
|
948
952
|
{ name = "fastjsonschema" },
|
|
@@ -1250,7 +1254,7 @@ wheels = [
|
|
|
1250
1254
|
|
|
1251
1255
|
[[package]]
|
|
1252
1256
|
name = "docling"
|
|
1253
|
-
version = "2.
|
|
1257
|
+
version = "2.102.1"
|
|
1254
1258
|
source = { registry = "https://pypi.org/simple" }
|
|
1255
1259
|
resolution-markers = [
|
|
1256
1260
|
"python_full_version >= '3.15' and sys_platform == 'linux'",
|
|
@@ -1263,11 +1267,11 @@ resolution-markers = [
|
|
|
1263
1267
|
"python_full_version < '3.13' and sys_platform != 'darwin' and sys_platform != 'linux'",
|
|
1264
1268
|
]
|
|
1265
1269
|
dependencies = [
|
|
1266
|
-
{ name = "docling-slim", version = "2.
|
|
1270
|
+
{ name = "docling-slim", version = "2.102.1", source = { registry = "https://pypi.org/simple" }, extra = ["standard"], marker = "sys_platform != 'darwin'" },
|
|
1267
1271
|
]
|
|
1268
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1272
|
+
sdist = { url = "https://files.pythonhosted.org/packages/2d/02/850594f939348b5d9ef6b8521c3ac821c3c8ee98e76784f5d0412fb61e44/docling-2.102.1.tar.gz", hash = "sha256:aecaa07df4077d6e62e9545f1ea415e8e73c8c3e8f7c5a2874c6535f55413723", size = 8842, upload-time = "2026-06-12T15:55:24.538Z" }
|
|
1269
1273
|
wheels = [
|
|
1270
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1274
|
+
{ url = "https://files.pythonhosted.org/packages/46/05/ce8b976f0949dc7b7fa3a87e20e750ab915665266a4a3ff6a97174f0bac0/docling-2.102.1-py3-none-any.whl", hash = "sha256:529458b2a95e457fa23aa148a55c73b1ba8cc56f73a852a8fa07e233f20b80e9", size = 5016, upload-time = "2026-06-12T15:55:23.33Z" },
|
|
1271
1275
|
]
|
|
1272
1276
|
|
|
1273
1277
|
[[package]]
|
|
@@ -1505,7 +1509,7 @@ standard = [
|
|
|
1505
1509
|
|
|
1506
1510
|
[[package]]
|
|
1507
1511
|
name = "docling-slim"
|
|
1508
|
-
version = "2.
|
|
1512
|
+
version = "2.102.1"
|
|
1509
1513
|
source = { registry = "https://pypi.org/simple" }
|
|
1510
1514
|
resolution-markers = [
|
|
1511
1515
|
"python_full_version >= '3.15' and sys_platform == 'linux'",
|
|
@@ -1527,9 +1531,9 @@ dependencies = [
|
|
|
1527
1531
|
{ name = "requests", marker = "sys_platform != 'darwin'" },
|
|
1528
1532
|
{ name = "tqdm", marker = "sys_platform != 'darwin'" },
|
|
1529
1533
|
]
|
|
1530
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1534
|
+
sdist = { url = "https://files.pythonhosted.org/packages/4b/e6/92a6cbb904af69cd82f7c92914b4633c35501a281a1f025a7cd1e393534f/docling_slim-2.102.1.tar.gz", hash = "sha256:95a59ce7f3a067d592c9addb25849eb7ea4898fa3ddbf3276f9989cda23101d4", size = 420218, upload-time = "2026-06-12T15:54:01.595Z" }
|
|
1531
1535
|
wheels = [
|
|
1532
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1536
|
+
{ url = "https://files.pythonhosted.org/packages/e0/78/4e57bdda64c6c68372e1ab6d032e2677e77913c8afa12a9e5abee53469e3/docling_slim-2.102.1-py3-none-any.whl", hash = "sha256:f6dd21dc84b5c0c62da8eb2f043788ba938be6ded2dcb91b23d27f39ef20fe48", size = 542248, upload-time = "2026-06-12T15:53:59.721Z" },
|
|
1533
1537
|
]
|
|
1534
1538
|
|
|
1535
1539
|
[package.optional-dependencies]
|
|
@@ -1877,15 +1881,15 @@ wheels = [
|
|
|
1877
1881
|
|
|
1878
1882
|
[[package]]
|
|
1879
1883
|
name = "google-auth"
|
|
1880
|
-
version = "2.
|
|
1884
|
+
version = "2.54.0"
|
|
1881
1885
|
source = { registry = "https://pypi.org/simple" }
|
|
1882
1886
|
dependencies = [
|
|
1883
1887
|
{ name = "cryptography" },
|
|
1884
1888
|
{ name = "pyasn1-modules" },
|
|
1885
1889
|
]
|
|
1886
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1890
|
+
sdist = { url = "https://files.pythonhosted.org/packages/15/f6/494e18317546d7def90c957b71d68b025d24f0e22e486c2606bc57765c48/google_auth-2.54.0.tar.gz", hash = "sha256:130f6fd5e3f497fdad897a23ed9489973437edf561238c4b92a4d02c435f8af9", size = 343161, upload-time = "2026-06-12T18:03:17.606Z" }
|
|
1887
1891
|
wheels = [
|
|
1888
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1892
|
+
{ url = "https://files.pythonhosted.org/packages/70/c5/d53bddd2c0949833fcb4ea06f9d5dd1c40575a1a4214cd1021eff57ba301/google_auth-2.54.0-py3-none-any.whl", hash = "sha256:784e9837f92244141250470d47c893df50cbab485ce491aca5e9deb558ad2b48", size = 249878, upload-time = "2026-06-12T18:02:57.58Z" },
|
|
1889
1893
|
]
|
|
1890
1894
|
|
|
1891
1895
|
[[package]]
|
|
@@ -1903,7 +1907,7 @@ wheels = [
|
|
|
1903
1907
|
|
|
1904
1908
|
[[package]]
|
|
1905
1909
|
name = "google-cloud-storage"
|
|
1906
|
-
version = "3.
|
|
1910
|
+
version = "3.12.0"
|
|
1907
1911
|
source = { registry = "https://pypi.org/simple" }
|
|
1908
1912
|
dependencies = [
|
|
1909
1913
|
{ name = "google-api-core" },
|
|
@@ -1913,9 +1917,9 @@ dependencies = [
|
|
|
1913
1917
|
{ name = "google-resumable-media" },
|
|
1914
1918
|
{ name = "requests" },
|
|
1915
1919
|
]
|
|
1916
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1920
|
+
sdist = { url = "https://files.pythonhosted.org/packages/58/72/86f94e1639a8bcd9d33e8e01b49afcaa1c3a13bda7683c681717e0901e15/google_cloud_storage-3.12.0.tar.gz", hash = "sha256:03ae9847c6babb368f35f054126b8a08cbc0e3266efb990eb17b9926a45cf3be", size = 17338620, upload-time = "2026-06-12T18:03:29.215Z" }
|
|
1917
1921
|
wheels = [
|
|
1918
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1922
|
+
{ url = "https://files.pythonhosted.org/packages/1b/bd/a89eaebd2f9db5f92ddcc8e4f23c266be1dbd11058bb83451d8dd029f34c/google_cloud_storage-3.12.0-py3-none-any.whl", hash = "sha256:3880773754ddf7c27567b04e2a4d193950b6b99429f37b9097d873686e95b09c", size = 340605, upload-time = "2026-06-12T18:03:12.677Z" },
|
|
1919
1923
|
]
|
|
1920
1924
|
|
|
1921
1925
|
[[package]]
|
|
@@ -5349,6 +5353,23 @@ wheels = [
|
|
|
5349
5353
|
{ url = "https://files.pythonhosted.org/packages/16/5b/f2aa703a4fc5d2dff73460a7d46cc2f3f44aa0f3dd8eeb20d2a0ecf68862/tiktoken-0.13.0-cp314-cp314t-win_amd64.whl", hash = "sha256:85b78cc3a2c3d48723ca751fa981f1fedccd54194ca0471b957364353a898b07", size = 918110, upload-time = "2026-05-15T04:51:17.237Z" },
|
|
5350
5354
|
]
|
|
5351
5355
|
|
|
5356
|
+
[[package]]
|
|
5357
|
+
name = "timm"
|
|
5358
|
+
version = "1.0.27"
|
|
5359
|
+
source = { registry = "https://pypi.org/simple" }
|
|
5360
|
+
dependencies = [
|
|
5361
|
+
{ name = "huggingface-hub" },
|
|
5362
|
+
{ name = "pyyaml" },
|
|
5363
|
+
{ name = "safetensors" },
|
|
5364
|
+
{ name = "torch", version = "2.12.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" },
|
|
5365
|
+
{ name = "torch", version = "2.12.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'linux'" },
|
|
5366
|
+
{ name = "torchvision" },
|
|
5367
|
+
]
|
|
5368
|
+
sdist = { url = "https://files.pythonhosted.org/packages/08/54/ece85b0eef3700c90db8271a43669b05a0ebbe2edb1962329c34374a297e/timm-1.0.27.tar.gz", hash = "sha256:315dfe63186ca9fb7ff941268941231fd5be259f2b4bb4afa28560ae1015cb9a", size = 2439861, upload-time = "2026-05-08T19:38:36.844Z" }
|
|
5369
|
+
wheels = [
|
|
5370
|
+
{ url = "https://files.pythonhosted.org/packages/1f/2e/26bab7686ff4aed48f8f5f6c23e2aa37b7a37ddd9effe3aa61e908fd518f/timm-1.0.27-py3-none-any.whl", hash = "sha256:5ff07c9ddf53cbada88eab1c93ff175c64cab683b5a2fddf863bcee985926f89", size = 2589280, upload-time = "2026-05-08T19:38:35.034Z" },
|
|
5371
|
+
]
|
|
5372
|
+
|
|
5352
5373
|
[[package]]
|
|
5353
5374
|
name = "tldextract"
|
|
5354
5375
|
version = "5.3.1"
|
|
@@ -5519,7 +5540,7 @@ wheels = [
|
|
|
5519
5540
|
|
|
5520
5541
|
[[package]]
|
|
5521
5542
|
name = "transformers"
|
|
5522
|
-
version = "5.
|
|
5543
|
+
version = "5.12.0"
|
|
5523
5544
|
source = { registry = "https://pypi.org/simple" }
|
|
5524
5545
|
dependencies = [
|
|
5525
5546
|
{ name = "huggingface-hub" },
|
|
@@ -5532,9 +5553,9 @@ dependencies = [
|
|
|
5532
5553
|
{ name = "tqdm" },
|
|
5533
5554
|
{ name = "typer" },
|
|
5534
5555
|
]
|
|
5535
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
5556
|
+
sdist = { url = "https://files.pythonhosted.org/packages/0c/f9/4552e2ba55db1c943aea0d4c09a32e9cbe5445b9eabe9856900de503dc8f/transformers-5.12.0.tar.gz", hash = "sha256:f0cf42ae1464c2eb41e7e0e66d7fd4b66145f48af17093b4cc0b2e9781faa7f4", size = 8923020, upload-time = "2026-06-12T14:39:20.43Z" }
|
|
5536
5557
|
wheels = [
|
|
5537
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
5558
|
+
{ url = "https://files.pythonhosted.org/packages/ff/1f/d385913c38e900d23b728a4188fee625f2fccb306aeebc59be9d91404a5a/transformers-5.12.0-py3-none-any.whl", hash = "sha256:500be9eb644ede81c3103eee7687fc36d05dd75d1c76686c3820b26396fe7c7c", size = 11150246, upload-time = "2026-06-12T14:39:17.009Z" },
|
|
5538
5559
|
]
|
|
5539
5560
|
|
|
5540
5561
|
[[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
|
{classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/runners/_feature_extraction.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/custom/runners/_text_classification.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
|
{classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/src/detectors/threat/code_security_detector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.15 → classifyre_cli-0.4.17}/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
|
|
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.15 → classifyre_cli-0.4.17}/src/sources/google_cloud_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
|