classifyre-cli 0.4.59__tar.gz → 0.4.60__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.60/.turbo/turbo-build.log +3 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/PKG-INFO +1 -1
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/package.json +1 -1
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/pyproject.toml +1 -1
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/pipeline/worker_pool.py +16 -1
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/resources.py +11 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/uv.lock +2 -2
- classifyre_cli-0.4.59/.turbo/turbo-build.log +0 -3
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/.gitignore +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/.python-version +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/README.md +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/main.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/scripts/generate_models.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/config.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/base.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/broken_links/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/broken_links/detector.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/config.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/content/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/custom/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/custom/detector.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/custom/extractor.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/custom/runners/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/custom/runners/_base.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/custom/runners/_factory.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/custom/runners/_gliner2.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/custom/runners/_image_classification.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/custom/runners/_llm.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/custom/runners/_object_detection.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/custom/runners/_regex.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/custom/runners/_text_classification.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/custom/trainer.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/dependencies.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/pii/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/pii/detector.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/secrets/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/secrets/detector.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/threat/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/threat/code_security_detector.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/detectors/threat/yara_detector.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/file_evaluation/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/file_evaluation/runner.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/main.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/models/generated_detectors.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/models/generated_input.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/models/generated_single_asset_scan_results.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/outputs/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/outputs/base.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/outputs/console.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/outputs/factory.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/outputs/file.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/outputs/rest.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/pipeline/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/pipeline/content_provider.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/pipeline/detector_pipeline.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/pipeline/parsed_content_provider.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/pipeline/text_artifact.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/asset_metadata.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/atlassian_common.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/azure_blob_storage/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/azure_blob_storage/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/base.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/confluence/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/confluence/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/databricks/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/databricks/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/delta_lake/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/delta_lake/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/dependencies.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/elasticsearch/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/elasticsearch/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/email/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/email/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/google_cloud_storage/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/google_cloud_storage/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/google_workspace/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/google_workspace/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/hive/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/hive/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/iceberg/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/iceberg/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/jira/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/jira/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/kafka/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/kafka/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/lakehouse_base.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/local_folder/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/local_folder/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/meilisearch/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/meilisearch/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/microsoft_365/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/microsoft_365/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/mongodb/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/mongodb/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/mssql/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/mssql/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/mysql/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/mysql/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/neo4j/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/neo4j/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/notion/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/notion/client.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/notion/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/object_storage/base.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/opensearch/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/opensearch/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/oracle/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/oracle/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/postgresql/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/postgresql/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/powerbi/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/powerbi/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/recipe_normalizer.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/s3_client.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/s3_compatible_storage/README.md +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/s3_compatible_storage/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/s3_compatible_storage/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/sandbox/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/sandbox/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/search_engine_base.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/servicedesk/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/servicedesk/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/slack/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/slack/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/snowflake/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/snowflake/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/sqlite/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/sqlite/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/tableau/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/tableau/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/tabular_base.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/tabular_utils.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/wordpress/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/wordpress/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/youtube/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/youtube/source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/telemetry.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/archive_extraction.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/content_extraction.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/dependency_groups.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/embedded_images.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/file_metadata.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/file_parser.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/file_to_images.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/hashing.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/legacy_office.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/transcription.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/uv_sync.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/validation.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/utils/video_processing.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/_lakehouse_fakes.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/conftest.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/broken_links/test_broken_links_detector.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/conftest.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/content/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/custom/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/custom/conftest.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/custom/test_gliner2_classification.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/custom/test_invoice_extraction.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/custom/test_llm_runner.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/custom/test_pipeline_integration.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/custom/test_regex_runner.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/custom/test_runner_hardening.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/custom/test_transformer_runners.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/pii/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/pii/conftest.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/pii/sample_invoice.pdf +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/pii/test_pii_chunking.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/pii/test_pii_detector.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/pii/test_pii_detector_extended.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/pii/test_pii_severity.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/secrets/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/secrets/test_secrets_detector.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/secrets/test_secrets_detector_extended.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/test_base_detector.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/test_custom_detector_examples_runtime.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/test_detector_catalog_commercial.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/test_detector_pipeline_types.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/test_detector_schema_examples.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/test_detector_types.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/test_phase2_detectors.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/test_registry.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/threat/__init__.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/threat/test_code_security_detector.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/threat/test_yara_detector.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/integration/test_wordpress_broken_links_detector.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/integration/test_wordpress_links_assets.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/pipeline/test_detector_outcomes.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/pipeline/test_detector_pipeline.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/pipeline/test_worker_pool.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_assets_metadata_catalog.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_azure_blob_storage_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_base_source_attachment.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_base_source_sampling.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_config.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_confluence_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_custom_extractor.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_databricks_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_delta_lake_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_dependency_groups.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_elasticsearch_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_email_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_file_evaluation_runner.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_google_cloud_storage_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_google_workspace_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_hashing.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_hive_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_iceberg_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_jira_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_kafka_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_local_folder_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_main.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_meilisearch_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_microsoft_365_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_mongodb_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_mssql_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_mysql_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_neo4j_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_notion_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_opensearch_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_oracle_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_outputs.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_postgresql_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_powerbi_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_recipe_normalizer.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_s3_compatible_storage_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_sampling_automatic.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_sandbox_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_servicedesk_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_slack_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_snowflake_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_source_dependency_groups.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_source_strategy_conformance.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_sqlite_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_tableau_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_tabular_automatic_sampling.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_tabular_utils.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_uv_sync.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_wordpress_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_youtube_source.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/test_youtube_source_integration.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/utils/test_archive_extraction.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/utils/test_content_extraction.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/utils/test_embedded_images.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/utils/test_file_metadata.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/utils/test_file_parser.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/utils/test_file_to_images.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/utils/test_legacy_office.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/utils/test_transcription.py +0 -0
- {classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/utils/test_video_processing.py +0 -0
|
@@ -45,6 +45,13 @@ def _init_worker_threads(threads_per_worker: int) -> None:
|
|
|
45
45
|
threads = max(1, threads_per_worker)
|
|
46
46
|
for var in ("OMP_NUM_THREADS", "MKL_NUM_THREADS", "OPENBLAS_NUM_THREADS"):
|
|
47
47
|
os.environ.setdefault(var, str(threads))
|
|
48
|
+
# Detector work is background work: on a shared host (desktop) the pool
|
|
49
|
+
# must yield to the UI, so deprioritize workers where the OS allows it.
|
|
50
|
+
if hasattr(os, "nice"):
|
|
51
|
+
try:
|
|
52
|
+
os.nice(5)
|
|
53
|
+
except OSError:
|
|
54
|
+
pass
|
|
48
55
|
try:
|
|
49
56
|
import torch
|
|
50
57
|
|
|
@@ -227,7 +234,15 @@ class DetectorWorkerPool:
|
|
|
227
234
|
mp_start_method = "forkserver" if "forkserver" in available else "spawn"
|
|
228
235
|
|
|
229
236
|
ctx = multiprocessing.get_context(mp_start_method)
|
|
230
|
-
|
|
237
|
+
# CLASSIFYRE_WORKER_THREADS caps BLAS/torch threads per worker; the
|
|
238
|
+
# desktop app sets it so workers*threads stays below the core count
|
|
239
|
+
# instead of saturating the machine. Unset (K8s/dev) keeps the
|
|
240
|
+
# divide-the-cores behavior.
|
|
241
|
+
threads_env = os.environ.get("CLASSIFYRE_WORKER_THREADS", "")
|
|
242
|
+
if threads_env.isdigit() and int(threads_env) > 0:
|
|
243
|
+
threads_per_worker = min(int(threads_env), 16)
|
|
244
|
+
else:
|
|
245
|
+
threads_per_worker = max(1, get_effective_cpu_count() // effective_workers)
|
|
231
246
|
self._pool = ProcessPoolExecutor(
|
|
232
247
|
max_workers=effective_workers,
|
|
233
248
|
mp_context=ctx,
|
|
@@ -62,4 +62,15 @@ def get_effective_memory_mb() -> int:
|
|
|
62
62
|
except (FileNotFoundError, OSError, ValueError):
|
|
63
63
|
pass
|
|
64
64
|
|
|
65
|
+
# macOS (and other POSIX without /proc): total physical memory via sysconf.
|
|
66
|
+
# Without this the desktop app fell through to the 4096 MB guess, which
|
|
67
|
+
# oversized the pool on small laptops and undersized it on big ones.
|
|
68
|
+
try:
|
|
69
|
+
pages = os.sysconf("SC_PHYS_PAGES")
|
|
70
|
+
page_size = os.sysconf("SC_PAGE_SIZE")
|
|
71
|
+
if pages > 0 and page_size > 0:
|
|
72
|
+
return max(256, (pages * page_size) // (1024 * 1024))
|
|
73
|
+
except (AttributeError, ValueError, OSError):
|
|
74
|
+
pass
|
|
75
|
+
|
|
65
76
|
return 4096
|
|
@@ -830,7 +830,7 @@ wheels = [
|
|
|
830
830
|
|
|
831
831
|
[[package]]
|
|
832
832
|
name = "classifyre-cli"
|
|
833
|
-
version = "0.4.
|
|
833
|
+
version = "0.4.60"
|
|
834
834
|
source = { editable = "." }
|
|
835
835
|
dependencies = [
|
|
836
836
|
{ name = "beautifulsoup4" },
|
|
@@ -1347,7 +1347,7 @@ youtube = [
|
|
|
1347
1347
|
|
|
1348
1348
|
[[package]]
|
|
1349
1349
|
name = "classifyre-schemas"
|
|
1350
|
-
version = "0.4.
|
|
1350
|
+
version = "0.4.60"
|
|
1351
1351
|
source = { editable = "../../packages/schemas" }
|
|
1352
1352
|
dependencies = [
|
|
1353
1353
|
{ name = "fastjsonschema" },
|
|
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.59 → classifyre_cli-0.4.60}/src/detectors/custom/runners/_object_detection.py
RENAMED
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/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.59 → classifyre_cli-0.4.60}/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.59 → classifyre_cli-0.4.60}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/src/sources/s3_compatible_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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/custom/test_invoice_extraction.py
RENAMED
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/custom/test_pipeline_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/custom/test_runner_hardening.py
RENAMED
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/custom/test_transformer_runners.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/pii/test_pii_detector_extended.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/secrets/test_secrets_detector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/test_detector_catalog_commercial.py
RENAMED
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/test_detector_pipeline_types.py
RENAMED
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/test_detector_schema_examples.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/detectors/threat/test_yara_detector.py
RENAMED
|
File without changes
|
|
File without changes
|
{classifyre_cli-0.4.59 → classifyre_cli-0.4.60}/tests/integration/test_wordpress_links_assets.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|