modelaudit 0.2.44__tar.gz → 0.2.46__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.
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/workflows/README.md +6 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/workflows/docker-image-test.yml +53 -2
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/workflows/nightly.yml +2 -2
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/workflows/perf.yml +10 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/workflows/test.yml +5 -3
- modelaudit-0.2.46/.release-please-manifest.json +4 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/AGENTS.md +1 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/CHANGELOG.md +373 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/Dockerfile +3 -3
- {modelaudit-0.2.44 → modelaudit-0.2.46}/Dockerfile.full +3 -3
- {modelaudit-0.2.44 → modelaudit-0.2.46}/Dockerfile.tensorflow +1 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/PKG-INFO +46 -36
- {modelaudit-0.2.44 → modelaudit-0.2.46}/README.md +45 -35
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/agents/architecture.md +1 -0
- modelaudit-0.2.46/docs/agents/performance-audit.md +172 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/agents/picklescan-package-split.md +25 -4
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/agents/release-process.md +1 -1
- modelaudit-0.2.46/docs/user/compatibility-matrix.md +68 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/user/metadata-extraction.md +11 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/user/scanner-selection.md +1 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/auth/client.py +8 -8
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/auth/config.py +68 -2
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/cache/cache_manager.py +15 -3
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/cache/cache_policy.py +28 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/cache/optimized_config.py +1 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/cache/scan_results_cache.py +20 -5
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/cli.py +101 -9
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/config/explanations.py +4 -4
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/core.py +1052 -99
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/core_results.py +3 -1
- modelaudit-0.2.46/modelaudit/detectors/jit_script.py +15937 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/detectors/network_comm.py +633 -73
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/detectors/secrets.py +89 -30
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/detectors/suspicious_symbols.py +1 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/integrations/jfrog.py +56 -1
- modelaudit-0.2.46/modelaudit/integrations/sbom_generator.py +873 -0
- modelaudit-0.2.46/modelaudit/metadata_extractor.py +312 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/models.py +1 -0
- modelaudit-0.2.46/modelaudit/protos/__init__.py +233 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanner_registry_metadata.py +19 -3
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanner_results.py +19 -4
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanner_selection.py +104 -2
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/__init__.py +97 -10
- modelaudit-0.2.46/modelaudit/scanners/_evidence_redaction.py +3204 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/_string_extraction.py +5 -5
- modelaudit-0.2.46/modelaudit/scanners/archive_dispatch.py +931 -0
- modelaudit-0.2.46/modelaudit/scanners/archive_member_security.py +6034 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/base.py +99 -40
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/catboost_scanner.py +40 -11
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/cntk_scanner.py +79 -34
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/compressed_scanner.py +149 -8
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/coreml_scanner.py +198 -7
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/executorch_scanner.py +59 -20
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/flax_msgpack_scanner.py +679 -217
- modelaudit-0.2.46/modelaudit/scanners/gguf_scanner.py +1049 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/jax_checkpoint_scanner.py +819 -62
- modelaudit-0.2.46/modelaudit/scanners/jinja2_template_scanner.py +2208 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/joblib_scanner.py +20 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/keras_h5_scanner.py +750 -142
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/keras_utils.py +224 -28
- modelaudit-0.2.46/modelaudit/scanners/keras_zip_scanner.py +3412 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/lightgbm_scanner.py +63 -46
- modelaudit-0.2.46/modelaudit/scanners/llamafile_scanner.py +1122 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/manifest_scanner.py +181 -17
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/metadata_scanner.py +49 -30
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/mxnet_scanner.py +187 -43
- modelaudit-0.2.46/modelaudit/scanners/nemo_scanner.py +2327 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/numpy_scanner.py +69 -10
- modelaudit-0.2.46/modelaudit/scanners/oci_layer_scanner.py +1082 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/onnx_scanner.py +259 -47
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/openvino_scanner.py +1 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/paddle_scanner.py +34 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/pickle_scanner.py +203 -54
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/picklescan_adapter.py +58 -21
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/pmml_scanner.py +28 -8
- modelaudit-0.2.46/modelaudit/scanners/protobuf_model_candidate_scanner.py +82 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/pytorch_binary_scanner.py +418 -39
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/pytorch_zip_scanner.py +661 -118
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/r_serialized_scanner.py +374 -42
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/rknn_scanner.py +59 -29
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/rule_mapper.py +7 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/safetensors_scanner.py +449 -119
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/sevenzip_scanner.py +603 -74
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/skops_scanner.py +95 -9
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/tar_scanner.py +100 -28
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/tensorrt_scanner.py +35 -1
- modelaudit-0.2.46/modelaudit/scanners/text_scanner.py +525 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/tf_metagraph_scanner.py +45 -19
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/tf_savedmodel_scanner.py +699 -75
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/tflite_scanner.py +122 -37
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/torch7_scanner.py +34 -17
- modelaudit-0.2.46/modelaudit/scanners/torchserve_mar_scanner.py +6379 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/weight_distribution_scanner.py +186 -35
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/xgboost_scanner.py +780 -51
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/zip_scanner.py +181 -23
- modelaudit-0.2.46/modelaudit/utils/file/detection.py +4759 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/file/filtering.py +74 -72
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/file/handlers.py +135 -13
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/file/large_file_handler.py +6 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/auto_defaults.py +10 -7
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/cache_decorator.py +136 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/retry.py +7 -0
- modelaudit-0.2.46/modelaudit/utils/sources/cloud_storage.py +1943 -0
- modelaudit-0.2.46/modelaudit/utils/sources/huggingface.py +879 -0
- modelaudit-0.2.46/modelaudit/utils/sources/jfrog.py +1863 -0
- modelaudit-0.2.46/modelaudit/utils/sources/pytorch_hub.py +1023 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/tensorflow_compat.py +4 -6
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/AGENTS.md +3 -3
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/CHANGELOG.md +55 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/Cargo.lock +1 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/Cargo.toml +1 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/README.md +14 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/pyproject.toml +1 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/nested.rs +92 -12
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/policy.rs +239 -15
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/stack.rs +71 -6
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/state.rs +6323 -2405
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/strings.rs +322 -2
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/src/modelaudit_picklescan/__init__.py +2 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/src/modelaudit_picklescan/api.py +518 -27
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/src/modelaudit_picklescan/call_graph.py +1794 -92
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_adversarial_pickle_oracle.py +819 -2
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_api.py +2679 -52
- modelaudit-0.2.46/packages/modelaudit-picklescan/tests/test_call_graph_assignment_alias_cycle.py +1179 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_call_graph_import_statements.py +1314 -44
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_call_graph_instance_defaults.py +37 -9
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/uv.lock +1 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/pyproject.toml +1 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/scripts/benchmark_report.py +41 -23
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/analysis/test_analysis_modules.py +11 -43
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/benchmarks/test_picklescan_benchmarks.py +19 -62
- modelaudit-0.2.46/tests/benchmarks/test_scan_benchmarks.py +267 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/cache/test_cache_correctness.py +100 -5
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/conftest.py +63 -16
- modelaudit-0.2.46/tests/detectors/test_jit_script_detector.py +9261 -0
- modelaudit-0.2.46/tests/detectors/test_network_comm_detector.py +1452 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/detectors/test_secrets_detector.py +63 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/helpers/__init__.py +10 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/helpers/file_creators.py +153 -0
- modelaudit-0.2.46/tests/integrations/test_jfrog.py +3629 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/integrations/test_jfrog_integration.py +150 -16
- modelaudit-0.2.46/tests/integrations/test_sbom_symlink_containment.py +596 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_catboost_scanner.py +109 -1
- modelaudit-0.2.46/tests/scanners/test_cntk_scanner.py +464 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_compressed_scanner.py +437 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_coreml_scanner.py +210 -2
- modelaudit-0.2.46/tests/scanners/test_evidence_redaction.py +2567 -0
- modelaudit-0.2.46/tests/scanners/test_executorch_scanner.py +458 -0
- modelaudit-0.2.46/tests/scanners/test_flax_msgpack_scanner.py +1641 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_gguf_scanner.py +573 -7
- modelaudit-0.2.46/tests/scanners/test_jax_checkpoint_scanner.py +2594 -0
- modelaudit-0.2.46/tests/scanners/test_jinja2_template_scanner.py +2219 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_joblib_scanner_codecs.py +34 -1
- modelaudit-0.2.46/tests/scanners/test_keras_h5_lambda_helpers.py +121 -0
- modelaudit-0.2.46/tests/scanners/test_keras_h5_scanner.py +4116 -0
- modelaudit-0.2.46/tests/scanners/test_keras_utils.py +134 -0
- modelaudit-0.2.46/tests/scanners/test_keras_zip_scanner.py +7520 -0
- modelaudit-0.2.46/tests/scanners/test_lightgbm_scanner.py +447 -0
- modelaudit-0.2.46/tests/scanners/test_llamafile_scanner.py +1041 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_manifest_scanner.py +549 -5
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_metadata_scanner.py +224 -4
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_mxnet_scanner.py +169 -3
- modelaudit-0.2.46/tests/scanners/test_nemo_scanner.py +3945 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_numpy_scanner.py +298 -1
- modelaudit-0.2.46/tests/scanners/test_oci_layer_scanner.py +1771 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_onnx_dependency_handling.py +20 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_onnx_scanner.py +863 -2
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_openvino_scanner.py +83 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_paddle_scanner.py +95 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_pickle_scanner.py +337 -19
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_picklescan_adapter.py +351 -2
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_pmml_scanner.py +112 -3
- modelaudit-0.2.46/tests/scanners/test_pytorch_binary_scanner.py +878 -0
- modelaudit-0.2.46/tests/scanners/test_pytorch_zip_scanner.py +7913 -0
- modelaudit-0.2.46/tests/scanners/test_r_serialized_scanner.py +1125 -0
- modelaudit-0.2.46/tests/scanners/test_rknn_scanner.py +349 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_rule_mapper.py +17 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_safetensors_scanner.py +307 -5
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_scanner_registry.py +341 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_sevenzip_scanner.py +1419 -52
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_skops_scanner.py +393 -6
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_tar_scanner.py +655 -5
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_tensorrt_scanner.py +98 -1
- modelaudit-0.2.46/tests/scanners/test_text_scanner.py +517 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_tf_metagraph_scanner.py +309 -0
- modelaudit-0.2.46/tests/scanners/test_tf_savedmodel_scanner.py +2812 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_tflite_scanner.py +182 -15
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_torch7_scanner.py +147 -0
- modelaudit-0.2.46/tests/scanners/test_torchserve_mar_scanner.py +5615 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_weight_distribution_scanner.py +375 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_xgboost_scanner.py +693 -30
- modelaudit-0.2.46/tests/scanners/test_zip_scanner.py +8758 -0
- modelaudit-0.2.46/tests/test_auth_config.py +570 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_benchmark_report.py +43 -30
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_cache_cli.py +6 -5
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_cli.py +651 -5
- modelaudit-0.2.46/tests/test_core.py +8100 -0
- modelaudit-0.2.46/tests/test_dependency_lock.py +54 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_directory_file_filtering.py +649 -0
- modelaudit-0.2.46/tests/test_docker_workflow.py +130 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_graceful_degradation.py +40 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_lazy_loading_integration.py +24 -26
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_metadata_extractor.py +619 -5
- modelaudit-0.2.46/tests/test_perf_workflow.py +136 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_performance_benchmarks.py +24 -7
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_real_world_dill_joblib.py +32 -12
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_regular_scan_hash.py +261 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_rules.py +50 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_scanner_selection.py +297 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_security_enhancements.py +39 -27
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_streaming_scan.py +332 -1
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/file/test_advanced_file_handler.py +192 -3
- modelaudit-0.2.46/tests/utils/file/test_file_filter.py +876 -0
- modelaudit-0.2.46/tests/utils/file/test_filetype.py +3793 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/file/test_large_file_handler.py +55 -0
- modelaudit-0.2.46/tests/utils/sources/test_cloud_storage.py +2599 -0
- modelaudit-0.2.46/tests/utils/sources/test_huggingface.py +1944 -0
- modelaudit-0.2.46/tests/utils/sources/test_pytorch_hub.py +1814 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/uv.lock +98 -88
- modelaudit-0.2.44/.release-please-manifest.json +0 -4
- modelaudit-0.2.44/docs/agents/performance-audit.md +0 -1913
- modelaudit-0.2.44/docs/user/compatibility-matrix.md +0 -55
- modelaudit-0.2.44/modelaudit/detectors/jit_script.py +0 -1046
- modelaudit-0.2.44/modelaudit/integrations/sbom_generator.py +0 -447
- modelaudit-0.2.44/modelaudit/metadata_extractor.py +0 -145
- modelaudit-0.2.44/modelaudit/protos/__init__.py +0 -125
- modelaudit-0.2.44/modelaudit/scanners/_evidence_redaction.py +0 -97
- modelaudit-0.2.44/modelaudit/scanners/archive_dispatch.py +0 -205
- modelaudit-0.2.44/modelaudit/scanners/archive_member_security.py +0 -764
- modelaudit-0.2.44/modelaudit/scanners/gguf_scanner.py +0 -733
- modelaudit-0.2.44/modelaudit/scanners/jinja2_template_scanner.py +0 -989
- modelaudit-0.2.44/modelaudit/scanners/keras_zip_scanner.py +0 -1981
- modelaudit-0.2.44/modelaudit/scanners/llamafile_scanner.py +0 -541
- modelaudit-0.2.44/modelaudit/scanners/nemo_scanner.py +0 -1067
- modelaudit-0.2.44/modelaudit/scanners/oci_layer_scanner.py +0 -463
- modelaudit-0.2.44/modelaudit/scanners/text_scanner.py +0 -152
- modelaudit-0.2.44/modelaudit/scanners/torchserve_mar_scanner.py +0 -2109
- modelaudit-0.2.44/modelaudit/utils/file/detection.py +0 -1907
- modelaudit-0.2.44/modelaudit/utils/sources/cloud_storage.py +0 -897
- modelaudit-0.2.44/modelaudit/utils/sources/huggingface.py +0 -485
- modelaudit-0.2.44/modelaudit/utils/sources/jfrog.py +0 -696
- modelaudit-0.2.44/modelaudit/utils/sources/pytorch_hub.py +0 -139
- modelaudit-0.2.44/tests/benchmarks/test_scan_benchmarks.py +0 -240
- modelaudit-0.2.44/tests/detectors/test_jit_script_detector.py +0 -379
- modelaudit-0.2.44/tests/detectors/test_network_comm_detector.py +0 -679
- modelaudit-0.2.44/tests/integrations/test_jfrog.py +0 -653
- modelaudit-0.2.44/tests/scanners/test_cntk_scanner.py +0 -150
- modelaudit-0.2.44/tests/scanners/test_executorch_scanner.py +0 -145
- modelaudit-0.2.44/tests/scanners/test_flax_msgpack_scanner.py +0 -706
- modelaudit-0.2.44/tests/scanners/test_jax_checkpoint_scanner.py +0 -956
- modelaudit-0.2.44/tests/scanners/test_jinja2_template_scanner.py +0 -857
- modelaudit-0.2.44/tests/scanners/test_keras_h5_scanner.py +0 -1755
- modelaudit-0.2.44/tests/scanners/test_keras_utils.py +0 -23
- modelaudit-0.2.44/tests/scanners/test_keras_zip_scanner.py +0 -3117
- modelaudit-0.2.44/tests/scanners/test_lightgbm_scanner.py +0 -187
- modelaudit-0.2.44/tests/scanners/test_llamafile_scanner.py +0 -347
- modelaudit-0.2.44/tests/scanners/test_nemo_scanner.py +0 -1046
- modelaudit-0.2.44/tests/scanners/test_oci_layer_scanner.py +0 -942
- modelaudit-0.2.44/tests/scanners/test_pytorch_binary_scanner.py +0 -322
- modelaudit-0.2.44/tests/scanners/test_pytorch_zip_scanner.py +0 -2721
- modelaudit-0.2.44/tests/scanners/test_r_serialized_scanner.py +0 -318
- modelaudit-0.2.44/tests/scanners/test_rknn_scanner.py +0 -150
- modelaudit-0.2.44/tests/scanners/test_tf_savedmodel_scanner.py +0 -1295
- modelaudit-0.2.44/tests/scanners/test_torchserve_mar_scanner.py +0 -2222
- modelaudit-0.2.44/tests/scanners/test_zip_scanner.py +0 -2178
- modelaudit-0.2.44/tests/test_auth_config.py +0 -189
- modelaudit-0.2.44/tests/test_core.py +0 -1448
- modelaudit-0.2.44/tests/test_docker_workflow.py +0 -71
- modelaudit-0.2.44/tests/utils/file/test_file_filter.py +0 -434
- modelaudit-0.2.44/tests/utils/file/test_filetype.py +0 -1185
- modelaudit-0.2.44/tests/utils/sources/test_cloud_storage.py +0 -858
- modelaudit-0.2.44/tests/utils/sources/test_huggingface.py +0 -838
- modelaudit-0.2.44/tests/utils/sources/test_pytorch_hub.py +0 -71
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.dockerignore +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.editorconfig +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.gitattributes +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/CODEOWNERS +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/markdown-link-check-config.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/workflows/codeql.yml +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/workflows/docker-publish.yml +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/workflows/docs-check.yml +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/workflows/release-please.yml +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.github/workflows/validate-pr-title.yml +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.gitignore +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.mailmap +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.modelaudit.toml.example +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/.prettierignore +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/CLAUDE.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/CODE_OF_CONDUCT.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/CONTRIBUTING.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/LICENSE +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/MAINTAINERS.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/MANIFEST.in +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/RULES.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/SECURITY.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/SUPPORT.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/THIRD_PARTY_NOTICES.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/codecov.yml +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docker-compose.yml +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docker-entrypoint.sh +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/agents/dependencies.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/agents/new-scanner-quickstart.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/maintainers/cve-process.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/maintainers/dependency-policy.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/maintainers/scanner-cve-coverage.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/maintainers/triage-playbook.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/security/threat-model.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/user/offline-air-gapped.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/docs/user/security-model.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/__main__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/analysis/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/analysis/anomaly_detector.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/analysis/entropy_analyzer.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/analysis/framework_patterns.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/analysis/integrated_analyzer.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/analysis/ml_context_analyzer.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/analysis/opcode_sequence_analyzer.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/analysis/semantic_analyzer.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/analysis/unified_context.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/auth/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/cache/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/cache/adaptive_cache_keys.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/cache/batch_operations.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/cache/trusted_config_store.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/config/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/config/constants.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/config/data/spdx_licenses.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/config/generated_keras_layers.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/config/local_config.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/config/name_blacklist.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/config/rule_config.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/detectors/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/detectors/cve_patterns.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/integrations/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/integrations/license_checker.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/integrations/mlflow.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/integrations/sarif_formatter.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/progress/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/progress/base.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/progress/console.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/progress/file.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/progress/hooks.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/progress/multi_phase.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/LICENSE +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/NOTICE +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/py.typed +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/allocation_description_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/api_def_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/attr_value_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/cost_graph_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/cpp_shape_inference_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/dataset_metadata_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/dataset_options_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/dataset_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/device_attributes_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/full_type_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/function_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/graph_debug_info_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/graph_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/graph_transfer_info_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/kernel_def_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/log_memory_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/model_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/node_def_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/op_def_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/optimized_function_graph_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/reader_base_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/resource_handle_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/step_stats_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/tensor_description_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/tensor_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/tensor_shape_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/tensor_slice_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/types_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/variable_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/framework/versions_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/cluster_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/composite_tensor_variant_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/control_flow_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/core_platform_payloads_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/critical_section_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/data_service_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/debug_event_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/debug_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/device_filters_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/device_properties_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/fingerprint_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/meta_graph_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/named_tensor_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/remote_tensor_handle_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/rewriter_config_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/saved_model_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/saved_object_graph_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/saver_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/service_config_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/snapshot_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/struct_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/tensor_bundle_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/trackable_object_graph_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/transport_options_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/protos/tensorflow/core/protobuf/verifier_config_pb2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/py.typed +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/rule_catalog.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/rules.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/_archive_config.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/_archive_locations.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/_archive_outcomes.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/pytorch_zip_support/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/pytorch_zip_support/archive_members.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/scanners/rar_scanner.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/telemetry.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/_path_hardening.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/auto_defaults.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/file/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/file/_compression.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/file/streaming.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/assets.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/code_validation.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/disk_space.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/file_hash.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/file_iterator.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/interrupt_handler.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/ml_context.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/result_conversion.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/secure_hasher.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/helpers/types.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/lfs.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/model_extensions.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/sources/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/sources/_huggingface_cache.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/sources/dvc.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/utils/sources/huggingface_paths.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/version.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/whitelists/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/whitelists/huggingface_organizations.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/modelaudit/whitelists/huggingface_popular.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/package-lock.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/package.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/README.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/expansion.rs +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/lib.rs +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/nested_surface.rs +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/opcode.rs +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/options.rs +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/post_budget.rs +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/pybridge.rs +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/report.rs +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/rust/src/strings_policy.rs +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/src/modelaudit_picklescan/options.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/src/modelaudit_picklescan/py.typed +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/src/modelaudit_picklescan/report.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/conftest.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/parity_corpus.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_call_graph_click.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_call_graph_execnet.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_call_graph_local_imports.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_call_graph_six.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_call_graph_tkinter.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_import_boundary.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_native_interface.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_options.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_report.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/packages/modelaudit-picklescan/tests/test_rust_engine.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/pyproject.toml.example +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/release-please-config.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/renovate.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/requirements-tensorflow.txt +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/scripts/README.md +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/scripts/check_circular_imports.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/scripts/compile_tensorflow_protos.sh +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/scripts/fetch_hf_org_models.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/scripts/fetch_hf_top_models.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/scripts/generate_keras_layer_inventory.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/scripts/jax_flax_scanning_demo.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/scripts/large_pickle_corpus_qa.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/scripts/minimal_circular_check.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/scripts/profile_scan.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/analysis/test_anomaly_detector.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/analysis/test_entropy_analyzer.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/analysis/test_framework_patterns.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/analysis/test_ml_context_analyzer.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/analysis/test_opcode_sequence_analyzer.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/analysis/test_unified_context.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/exploits/exploit1_basic_torch_bypass.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/exploits/exploit2_advanced_torch_bypass.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/exploits/exploit3_sophisticated_hybrid.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/exploits/exploit4_supply_chain_attack.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/exploits/exploit5_ultra_high_confidence.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/exploits/exploit6_ordereddict_bypass.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/exploits/exploit7_nested_collections.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/exploits/exploit9_manual_construction.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/exploits/exploit_ultimate_50pct.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/generators/generate_7z_test_assets.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/generators/generate_advanced_pickle_tests.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/generators/generate_evil_pickle.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/generators/generate_jinja2_test_assets.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/generators/generate_nested_pickle_assets.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/generators/generate_os_alias_tests.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/generators/generate_safe_nested_assets.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/generators/generate_safetensors_assets.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/generators/generate_security_assets.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/pickles/memo_attack.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/pickles/multiple_stream_attack.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/pickles/nt_alias_attack.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/pickles/posix_alias_attack.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/pickles/stack_global_attack.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/archives/path_traversal.zip +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/archives/safe_model.zip +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/benign/chatml_format.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/benign/complex_legitimate.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/benign/conditional_system.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/benign/huggingface_llama.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/benign/simple_roles.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/benign/special_tokens.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/edge_cases/empty_template.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/edge_cases/malformed_template.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/edge_cases/multiple_templates.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/edge_cases/no_template.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/edge_cases/oversized_template.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/malicious/attr_bypass.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/malicious/combined_attack.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/malicious/config_exploit.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/malicious/cve_2024_34359_original.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/malicious/direct_eval.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/malicious/env_extraction.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/malicious/file_access.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/malicious/hex_bypass.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/malicious/loop_discovery.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/malicious/network_exfil.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/malicious/request_exploit.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/malicious/subprocess_injection.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/obfuscated/base64_payload.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/obfuscated/char_construction.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/obfuscated/format_bypass.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/obfuscated/getattr_bypass.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/standalone/benign_chat.j2 +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/standalone/malicious_standalone.jinja +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/standalone/malicious_subprocess.template +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/standalone/suspicious_benign.template +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/yaml/malicious_config.yaml +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/jinja2/yaml/model_config.yaml +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/keras/custom_layer_attack.h5 +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/keras/loss_injection.h5 +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/keras/malicious_lambda.h5 +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/keras/metric_injection.h5 +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/keras/safe_model.h5 +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/manifests/safe_config.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/manifests/suspicious_config.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/decode_exec_chain.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/dill_func.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/malicious_model_realistic.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/malicious_system_call.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/nested_pickle_base64.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/nested_pickle_hex.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/nested_pickle_multistage.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/nested_pickle_raw.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/safe_data.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/safe_large_model.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/safe_model_with_binary.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/safe_model_with_encoding.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/safe_model_with_tokens.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/safe_nested_structure.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pickles/simple_nested.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pipeline.skops +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pytorch/malicious_eval.pt +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/pytorch/safe_model.pt +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/safetensors/malicious_import.safetensors +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/safetensors/safe_model.safetensors +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/tensorflow/malicious_pyfunc/saved_model.pb +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/samples/tensorflow/safe_savedmodel/saved_model.pb +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/license_scenarios/agpl_component/agpl_model.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/license_scenarios/agpl_component/neural_network.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/license_scenarios/mit_model/config.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/license_scenarios/mit_model/model.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/license_scenarios/mit_model/model_weights.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/license_scenarios/mixed_licenses/LICENSE +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/license_scenarios/mixed_licenses/apache_component.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/license_scenarios/mixed_licenses/dataset_cc_nc.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/license_scenarios/mixed_licenses/gpl_utility.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/license_scenarios/mixed_licenses/mixed_model.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/license_scenarios/unlicensed_dataset/embeddings.npy +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/license_scenarios/unlicensed_dataset/features.csv +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/license_scenarios/unlicensed_dataset/training_data.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/security_scenarios/mixed_malicious_model/config.json +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/assets/scenarios/security_scenarios/mixed_malicious_model/model.pkl +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/cache/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/cache/test_optimized_config.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/cli_output.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/config/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/config/test_name_blacklist.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/demo_license_functionality.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/detectors/test_builtin_detection.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/detectors/test_compile_eval_variants.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/detectors/test_cve_detection.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/detectors/test_runpy_detection.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/detectors/test_suspicious_symbols.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/helpers/frameworks.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/integrations/test_license_checker.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/integrations/test_license_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/integrations/test_mlflow_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/integrations/test_sarif_formatter.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/integrations/test_sbom_license_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/integrations/test_sbom_url_fixes.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/progress/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/progress/test_base.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_base_scanner.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_joblib_scanner.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_rule_code_registry_consistency.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scanners/test_skops_content_analysis.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/scripts/test_large_pickle_corpus_qa.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_asset_inventory_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_asset_list.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_basic.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_bug1_confidence_exploit.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_cache_optimizations.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_checks_recording.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_cli_cache_dir.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_cli_default_command.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_cli_file_filtering.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_cli_license_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_cli_logging_handlers.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_cli_output.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_cloud_url_detection.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_committed_fixture_hygiene.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_core_asset_extraction.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_cve_2025_10155_bin_pickle.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_debug_command.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_dill_joblib_enhanced.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_double_interrupt.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_exit_codes.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_false_positive_fixes.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_file_hash.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_gguf_sbom_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_header_discrepancy.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_huggingface_extensions.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_huggingface_symlinks.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_importlib_detection.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_jax_flax_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_jit_script_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_lazy_loading.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_manifest_name_policy.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_models.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_nested_pickle_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_network_comm_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_os_alias_detection.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_os_subprocess_detection.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_path_traversal.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_pickle_context_filtering.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_progress.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_pydantic_models.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_python_version_warning.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_pytorch_zip_detection.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_regression_corpus.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_release_workflow.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_safetensors_optimization.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_secure_hasher.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_security_asset_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_shebang_context.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_simple_jinja2.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_sklearn_joblib_false_positive.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_telemetry.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_telemetry_decoupling.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_tensorflow_lambda_detection.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_timeout_configuration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_utils.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_weak_hash_detection.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_webbrowser_detection.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_why_explanations.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/test_xdist_status.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/file/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/file/test_advanced_size_limits.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/file/test_file_type_validation_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/file/test_integration_file_type_demo.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/file/test_streaming_analysis.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/file/test_streaming_preview.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/helpers/test_asset_from_scan_result.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/helpers/test_auto_defaults.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/helpers/test_code_validation.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/helpers/test_disk_space.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/helpers/test_file_iterator.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/helpers/test_interrupt_handling.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/helpers/test_ml_context_false_positives.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/helpers/test_py_compile_improvements.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/helpers/test_secure_hasher.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/sources/test_dvc_integration.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/test_lfs.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/utils/test_result_conversion.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/whitelists/__init__.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/whitelists/test_combined.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/whitelists/test_huggingface_popular.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/whitelists/test_organizations.py +0 -0
- {modelaudit-0.2.44 → modelaudit-0.2.46}/tests/xdist_status.py +0 -0
|
@@ -14,4 +14,9 @@
|
|
|
14
14
|
|
|
15
15
|
Python CI ignores documentation-only PRs, which are handled by the documentation check workflow. Code PRs run fast feedback on Python 3.12, root matrix coverage on Python 3.10 and 3.13, the NumPy compatibility lane on Python 3.10 and 3.11, Windows tests on Python 3.11, and the standalone pickle package matrix on Python 3.10-3.13. Pushes to `main` run the full root and NumPy matrices across Python 3.10-3.13.
|
|
16
16
|
|
|
17
|
-
The performance workflow
|
|
17
|
+
The performance workflow compares workload-oriented benchmarks between the PR
|
|
18
|
+
base and head, posts a sticky summary comment on same-repo PRs, uploads JSON and
|
|
19
|
+
Markdown artifacts, and reports comparative regressions without blocking the
|
|
20
|
+
PR. It separately runs the cache-disabled retained-memory stability guard from
|
|
21
|
+
`tests/test_performance_benchmarks.py`, which fails the workflow if repeat scans
|
|
22
|
+
retain excessive memory.
|
|
@@ -8,6 +8,7 @@ on:
|
|
|
8
8
|
- "modelaudit/**"
|
|
9
9
|
- "packages/modelaudit-picklescan/**"
|
|
10
10
|
- "pyproject.toml"
|
|
11
|
+
- "requirements-tensorflow.txt"
|
|
11
12
|
- "uv.lock"
|
|
12
13
|
- ".github/workflows/docker-image-test.yml"
|
|
13
14
|
push:
|
|
@@ -27,6 +28,7 @@ jobs:
|
|
|
27
28
|
outputs:
|
|
28
29
|
docker: ${{ steps.filter.outputs.docker }}
|
|
29
30
|
full-image: ${{ steps.filter.outputs.full-image }}
|
|
31
|
+
tensorflow-image: ${{ steps.filter.outputs.tensorflow-image }}
|
|
30
32
|
steps:
|
|
31
33
|
- uses: actions/checkout@v6
|
|
32
34
|
- uses: dorny/paths-filter@v4
|
|
@@ -45,6 +47,12 @@ jobs:
|
|
|
45
47
|
- 'Dockerfile.full'
|
|
46
48
|
- 'packages/modelaudit-picklescan/**'
|
|
47
49
|
- '.github/workflows/docker-image-test.yml'
|
|
50
|
+
tensorflow-image:
|
|
51
|
+
- 'Dockerfile.tensorflow'
|
|
52
|
+
- 'requirements-tensorflow.txt'
|
|
53
|
+
- 'modelaudit/**'
|
|
54
|
+
- 'pyproject.toml'
|
|
55
|
+
- '.github/workflows/docker-image-test.yml'
|
|
48
56
|
|
|
49
57
|
build-test-lightweight:
|
|
50
58
|
name: Build and Test Lightweight Docker Image
|
|
@@ -177,9 +185,49 @@ jobs:
|
|
|
177
185
|
# Scan the bind-mounted model as the non-root full image.
|
|
178
186
|
docker run --rm -v $(pwd):/data modelaudit:full /data/test_numpy.pkl
|
|
179
187
|
|
|
188
|
+
build-test-tensorflow:
|
|
189
|
+
name: Build and Test TensorFlow Docker Image
|
|
190
|
+
needs: changes
|
|
191
|
+
runs-on: ubuntu-latest
|
|
192
|
+
timeout-minutes: 60
|
|
193
|
+
if: needs.changes.outputs.tensorflow-image == 'true'
|
|
194
|
+
steps:
|
|
195
|
+
- uses: actions/checkout@v6
|
|
196
|
+
|
|
197
|
+
- name: Set up Docker Buildx
|
|
198
|
+
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4
|
|
199
|
+
|
|
200
|
+
- name: Build TensorFlow image
|
|
201
|
+
uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7
|
|
202
|
+
with:
|
|
203
|
+
context: .
|
|
204
|
+
file: Dockerfile.tensorflow
|
|
205
|
+
tags: modelaudit:tensorflow
|
|
206
|
+
load: true
|
|
207
|
+
cache-from: type=gha,scope=tensorflow
|
|
208
|
+
cache-to: type=gha,mode=max,scope=tensorflow
|
|
209
|
+
|
|
210
|
+
- name: Test TensorFlow container help command
|
|
211
|
+
run: |
|
|
212
|
+
docker run --rm modelaudit:tensorflow --help
|
|
213
|
+
|
|
214
|
+
- name: Verify TensorFlow dependency and non-root runtime
|
|
215
|
+
run: |
|
|
216
|
+
docker run --rm --entrypoint python modelaudit:tensorflow -c "import os, tensorflow; print(tensorflow.__version__); assert os.getuid() == 10001"
|
|
217
|
+
|
|
218
|
+
- name: Scan TensorFlow image for vulnerabilities
|
|
219
|
+
uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1 # 0.35.0
|
|
220
|
+
with:
|
|
221
|
+
version: v0.69.2
|
|
222
|
+
image-ref: modelaudit:tensorflow
|
|
223
|
+
format: table
|
|
224
|
+
exit-code: "1"
|
|
225
|
+
severity: CRITICAL,HIGH
|
|
226
|
+
ignore-unfixed: true
|
|
227
|
+
|
|
180
228
|
docker-ci-success:
|
|
181
229
|
name: Docker CI Success
|
|
182
|
-
needs: [build-test-lightweight, build-test-full]
|
|
230
|
+
needs: [build-test-lightweight, build-test-full, build-test-tensorflow]
|
|
183
231
|
if: always()
|
|
184
232
|
runs-on: ubuntu-latest
|
|
185
233
|
steps:
|
|
@@ -187,13 +235,16 @@ jobs:
|
|
|
187
235
|
run: |
|
|
188
236
|
LIGHTWEIGHT_RESULT="${{ needs.build-test-lightweight.result }}"
|
|
189
237
|
FULL_RESULT="${{ needs.build-test-full.result }}"
|
|
238
|
+
TENSORFLOW_RESULT="${{ needs.build-test-tensorflow.result }}"
|
|
190
239
|
echo "Lightweight Docker build result: $LIGHTWEIGHT_RESULT"
|
|
191
240
|
echo "Full Docker build result: $FULL_RESULT"
|
|
241
|
+
echo "TensorFlow Docker build result: $TENSORFLOW_RESULT"
|
|
192
242
|
|
|
193
243
|
# Success or skipped are both acceptable
|
|
194
244
|
# (skipped means the path filters determined the job wasn't needed)
|
|
195
245
|
if [[ ("$LIGHTWEIGHT_RESULT" == "success" || "$LIGHTWEIGHT_RESULT" == "skipped") && \
|
|
196
|
-
("$FULL_RESULT" == "success" || "$FULL_RESULT" == "skipped")
|
|
246
|
+
("$FULL_RESULT" == "success" || "$FULL_RESULT" == "skipped") && \
|
|
247
|
+
("$TENSORFLOW_RESULT" == "success" || "$TENSORFLOW_RESULT" == "skipped") ]]; then
|
|
197
248
|
echo "Docker CI checks passed (or were skipped due to path filters)!"
|
|
198
249
|
exit 0
|
|
199
250
|
else
|
|
@@ -76,6 +76,6 @@ jobs:
|
|
|
76
76
|
run: |
|
|
77
77
|
cargo test --manifest-path packages/modelaudit-picklescan/Cargo.toml
|
|
78
78
|
|
|
79
|
-
- name: Run all tests
|
|
79
|
+
- name: Run all Windows tests except performance benchmarks
|
|
80
80
|
run: |
|
|
81
|
-
uv run pytest -n auto --tb=short --durations=20
|
|
81
|
+
uv run pytest -n auto -m "not performance" --tb=short --durations=20
|
|
@@ -9,6 +9,7 @@ on:
|
|
|
9
9
|
- "tests/helpers/**"
|
|
10
10
|
- "tests/conftest.py"
|
|
11
11
|
- "tests/test_benchmark_report.py"
|
|
12
|
+
- "tests/test_performance_benchmarks.py"
|
|
12
13
|
- "scripts/benchmark_report.py"
|
|
13
14
|
- "pyproject.toml"
|
|
14
15
|
- "uv.lock"
|
|
@@ -23,6 +24,7 @@ on:
|
|
|
23
24
|
- "tests/helpers/**"
|
|
24
25
|
- "tests/conftest.py"
|
|
25
26
|
- "tests/test_benchmark_report.py"
|
|
27
|
+
- "tests/test_performance_benchmarks.py"
|
|
26
28
|
- "scripts/benchmark_report.py"
|
|
27
29
|
- "pyproject.toml"
|
|
28
30
|
- "uv.lock"
|
|
@@ -153,6 +155,14 @@ jobs:
|
|
|
153
155
|
cat "$BENCHMARK_ARTIFACT_DIR/benchmark-current.md" >> "$BENCHMARK_ARTIFACT_DIR/benchmark-summary.md"
|
|
154
156
|
cat "$BENCHMARK_ARTIFACT_DIR/benchmark-summary.md" >> "$GITHUB_STEP_SUMMARY"
|
|
155
157
|
|
|
158
|
+
- name: Run retained-memory stability guard
|
|
159
|
+
env:
|
|
160
|
+
PROMPTFOO_DISABLE_TELEMETRY: "1"
|
|
161
|
+
run: |
|
|
162
|
+
uv run --locked --with psutil pytest \
|
|
163
|
+
tests/test_performance_benchmarks.py::TestPerformanceBenchmarks::test_memory_usage_stability \
|
|
164
|
+
-q
|
|
165
|
+
|
|
156
166
|
- name: Comment benchmark summary on PR
|
|
157
167
|
if: >
|
|
158
168
|
always() &&
|
|
@@ -380,7 +380,9 @@ jobs:
|
|
|
380
380
|
# Always run for fastest feedback
|
|
381
381
|
if: github.ref == 'refs/heads/main' || needs.changes.outputs.python == 'true' || needs.changes.outputs.workflows == 'true'
|
|
382
382
|
runs-on: ubuntu-latest
|
|
383
|
-
|
|
383
|
+
# The full fast suite can approach 30 minutes on hosted runners when the
|
|
384
|
+
# bounded-replay security regressions land on the long-running worker.
|
|
385
|
+
timeout-minutes: 35
|
|
384
386
|
steps:
|
|
385
387
|
- name: Checkout repo
|
|
386
388
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
|
@@ -424,7 +426,7 @@ jobs:
|
|
|
424
426
|
needs: changes
|
|
425
427
|
if: github.ref == 'refs/heads/main' || needs.changes.outputs.python == 'true' || needs.changes.outputs.workflows == 'true'
|
|
426
428
|
runs-on: windows-latest
|
|
427
|
-
timeout-minutes:
|
|
429
|
+
timeout-minutes: 40
|
|
428
430
|
steps:
|
|
429
431
|
- name: Checkout repo
|
|
430
432
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
|
@@ -455,7 +457,7 @@ jobs:
|
|
|
455
457
|
# Only run if Python files changed
|
|
456
458
|
if: github.ref == 'refs/heads/main' || needs.changes.outputs.python == 'true' || needs.changes.outputs.workflows == 'true'
|
|
457
459
|
runs-on: ubuntu-latest
|
|
458
|
-
timeout-minutes:
|
|
460
|
+
timeout-minutes: 35
|
|
459
461
|
strategy:
|
|
460
462
|
matrix:
|
|
461
463
|
# For PRs, only test min and max Python versions to save time
|
|
@@ -18,7 +18,7 @@ This repo publishes **two PyPI packages with independent versions**:
|
|
|
18
18
|
| `modelaudit` | `./` (root) | `pyproject.toml` + `uv.lock` | `CHANGELOG.md` |
|
|
19
19
|
| `modelaudit-picklescan` | `packages/modelaudit-picklescan/` | `pyproject.toml` + `Cargo.toml` | `packages/modelaudit-picklescan/CHANGELOG.md` |
|
|
20
20
|
|
|
21
|
-
Root `modelaudit` hard-requires `modelaudit-picklescan>=0.1.
|
|
21
|
+
Root `modelaudit` hard-requires `modelaudit-picklescan>=0.1.4,<0.2.0` — when the sibling crosses `0.2.0`, bump the constraint in the same PR or the next `modelaudit` release is uninstallable. Both packages are driven by a single `release-please` workflow (`.github/workflows/release-please.yml`) with components defined in `release-please-config.json` and current versions in `.release-please-manifest.json`. Full publishing details — trusted publishing, manual `workflow_dispatch` recovery (`root_version` / `picklescan_version`), and yank procedure — are in [`docs/agents/release-process.md`](docs/agents/release-process.md). For work inside the picklescan package, start from [`packages/modelaudit-picklescan/AGENTS.md`](packages/modelaudit-picklescan/AGENTS.md).
|
|
22
22
|
|
|
23
23
|
## Mission & Principles
|
|
24
24
|
|