# CUI // SP-CTI
# Undeclared-import census (tsg-iso-03) -- ENUMERATED, never counted.
#
# Each line is one site where an UNDECLARED third-party package is imported
# inside a handler that SWALLOWS: returns, passes or continues without logging,
# raising, or otherwise recording that it fired. That conjunction is the only
# one which cannot be distinguished from working code -- it is how
# `python-dateutil` disabled the stale reaper and every notification duration
# for an unknown length of time with nothing going red.
#
# Key: <file>::<enclosing qualname>::<top-level package>. No line numbers: they
# churn on every edit above the site, which would make this a merge-conflict
# generator and every unrelated PR a census edit.
#
# This is DEBT, written down. A site leaves by being fixed either way round --
# declare the distribution in requirements.txt, or make the handler say which
# package was missing -- and `undeclared_max` in args/undeclared_import_gate.yaml
# drops by one when it does. That ceiling may ONLY go down.
#
# Policy and rationale: args/undeclared_import_gate.yaml
# Gate: python tools/ci/undeclared_import_census.py --check


# botocore -> distribution 'botocore'
icdev/tools/agent/bedrock_client.py::<module>::botocore

# tree_sitter_languages -> distribution 'tree_sitter_languages'
icdev/tools/ai_augmentation/pattern_classifier.py::_cs_detect_file::tree_sitter_languages

# tree_sitter_languages -> distribution 'tree_sitter_languages'
icdev/tools/aiify/pattern_classifier.py::_cs_detect_file::tree_sitter_languages

# pdf2image -> distribution 'pdf2image'
icdev/tools/airgap/pdf_fallback.py::LocalPDFProvider._render_page_to_base64::pdf2image

# ibm_cloud_sdk_core -> distribution 'ibm_cloud_sdk_core'
icdev/tools/cloud/iam_provider.py::<module>::ibm_cloud_sdk_core

# ibm_platform_services -> distribution 'ibm_platform_services'
icdev/tools/cloud/iam_provider.py::<module>::ibm_platform_services

# ibm_cloud_sdk_core -> distribution 'ibm_cloud_sdk_core'
icdev/tools/cloud/kms_provider.py::<module>::ibm_cloud_sdk_core

# ibm_platform_services -> distribution 'ibm_platform_services'
icdev/tools/cloud/kms_provider.py::<module>::ibm_platform_services

# azure -> distribution 'azure'
icdev/tools/cloud/monitoring_provider.py::<module>::azure
icdev/tools/cloud/registry_provider.py::<module>::azure
icdev/tools/cloud/secrets_provider.py::<module>::azure

# ibm_cloud_sdk_core -> distribution 'ibm_cloud_sdk_core'
icdev/tools/cloud/secrets_provider.py::<module>::ibm_cloud_sdk_core

# ibm_platform_services -> distribution 'ibm_platform_services'
icdev/tools/cloud/secrets_provider.py::<module>::ibm_platform_services

# azure -> distribution 'azure'
icdev/tools/cloud/storage_provider.py::<module>::azure

# ibm_boto3 -> distribution 'ibm_boto3'
icdev/tools/cloud/storage_provider.py::<module>::ibm_boto3

# ibm_botocore -> distribution 'ibm_botocore'
icdev/tools/cloud/storage_provider.py::<module>::ibm_botocore

# tomli -> distribution 'tomli'
icdev/tools/compliance/dependency_resolver.py::<module>::tomli

# yfinance -> distribution 'yfinance'

# slugify -> distribution 'python_slugify'
icdev/tools/dashboard/api/pulse.py::api_pulse_update_post::slugify

# flask_socketio -> distribution 'flask_socketio'
icdev/tools/dashboard/websocket.py::init_socketio._do_import::flask_socketio

# azure -> distribution 'azure'
icdev/tools/data_canvas/csp.py::_sync_azure::azure
icdev/tools/data_canvas/data_mesh/csp/azure_purview.py::sync_domains_to_purview::azure

# botocore -> distribution 'botocore'
icdev/tools/databridge/connectors/aws_controltower_connector.py::<module>::botocore

# pyarrow -> distribution 'pyarrow'
icdev/tools/databridge/connectors/health_base.py::<module>::pyarrow
icdev/tools/databridge/connectors/soap_base.py::<module>::pyarrow

# zeep -> distribution 'zeep'
icdev/tools/databridge/connectors/soap_base.py::<module>::zeep

# pyarrow -> distribution 'pyarrow'
icdev/tools/databridge/scale/chunked_pipeline.py::<module>::pyarrow

# pytesseract -> distribution 'pytesseract'
icdev/tools/docgen/context_builder.py::_extract_image_text::pytesseract

# pdfminer -> distribution 'pdfminer'
icdev/tools/docgen/context_builder.py::_extract_text_from_file::pdfminer

# pytesseract -> distribution 'pytesseract'
icdev/tools/document_intelligence/extractors.py::_ocr_image::pytesseract

# yfinance -> distribution 'yfinance'

# openbb -> distribution 'openbb'

# paramiko -> distribution 'paramiko'
icdev/tools/filesync/providers/sftp.py::<module>::paramiko

# watchdog -> distribution 'watchdog'
icdev/tools/filesync/watcher.py::<module>::watchdog

# qwen_weights -> distribution 'qwen_weights'
icdev/tools/finetune/govcon_ft_pipeline.py::run::qwen_weights

# timesfm -> distribution 'timesfm'
icdev/tools/forecast/timesfm_adapter.py::<module>::timesfm

# snscrape -> distribution 'snscrape'
icdev/tools/genesis/reflexes/strategos/osint_harvester.py::_harvest_snscrape::snscrape

# telethon -> distribution 'telethon'
icdev/tools/genesis/reflexes/strategos/osint_harvester.py::_harvest_telegram::telethon

# azure -> distribution 'azure'
icdev/tools/llm/azure_openai_provider.py::<module>::azure

# botocore -> distribution 'botocore'
icdev/tools/llm/bedrock_provider.py::<module>::botocore

# huggingface_hub -> distribution 'huggingface_hub'
icdev/tools/llm/draft_model_setup.py::setup_full::huggingface_hub

# dateparser -> distribution 'dateparser'
icdev/tools/llm/router.py::LLMRouter._parse_reset_time_from_error::dateparser

# httpx -> distribution 'httpx'
icdev/tools/llm/speculative_decoder.py::<module>::httpx

# vertexai -> distribution 'vertexai'
icdev/tools/llm/vertex_ai_provider.py::<module>::vertexai

# websockets -> distribution 'websockets'
icdev/tools/ndc/gns3_traffic_engine.py::_ws_session::websockets

# netmiko -> distribution 'netmiko'
icdev/tools/network/discovery.py::<module>::netmiko

# pysnmp -> distribution 'pysnmp'
icdev/tools/network/discovery.py::<module>::pysnmp

# rapidocr_onnxruntime -> distribution 'rapidocr_onnxruntime'
icdev/tools/network/ocr_fallback.py::RapidOCRProvider.check_availability::rapidocr_onnxruntime

# pytesseract -> distribution 'pytesseract'
icdev/tools/network/ocr_fallback.py::TesseractOCRProvider.check_availability::pytesseract

# fpdf -> distribution 'fpdf'
icdev/tools/network/pdf_export.py::<module>::fpdf

# netmiko -> distribution 'netmiko'
icdev/tools/network/routes/collect.py::register_collect_routes.nc_api_connect_collect::netmiko

# mlflow -> distribution 'mlflow'
icdev/tools/observability/mlflow_exporter.py::<module>::mlflow

# opentelemetry -> distribution 'opentelemetry'
icdev/tools/observability/otel_tracer.py::<module>::opentelemetry

# azure -> distribution 'azure'
icdev/tools/ops_hub/adapters/azureml_adapter.py::AzureMLAdapter.available::azure
icdev/tools/ops_hub/adapters/azureml_adapter.py::AzureMLAdapter.health_check::azure
icdev/tools/ops_hub/adapters/azureml_adapter.py::AzureMLAdapter.push_event::azure
icdev/tools/ops_hub/adapters/azureml_adapter.py::_has_azureml::azure

# evidently -> distribution 'evidently'
icdev/tools/ops_hub/adapters/evidently_adapter.py::EvidentlyAdapter.available::evidently
icdev/tools/ops_hub/adapters/evidently_adapter.py::EvidentlyAdapter.health_check::evidently
icdev/tools/ops_hub/adapters/evidently_adapter.py::EvidentlyAdapter.run_drift_report::evidently
icdev/tools/ops_hub/adapters/evidently_adapter.py::EvidentlyAdapter.run_model_performance_report::evidently

# langfuse -> distribution 'langfuse'
icdev/tools/ops_hub/adapters/langfuse_adapter.py::LangfuseAdapter.available::langfuse
icdev/tools/ops_hub/adapters/langfuse_adapter.py::LangfuseAdapter.health_check::langfuse
icdev/tools/ops_hub/adapters/langfuse_adapter.py::_has_langfuse::langfuse

# mlflow -> distribution 'mlflow'
icdev/tools/ops_hub/adapters/mlflow_adapter.py::MLflowAdapter.available::mlflow
icdev/tools/ops_hub/adapters/mlflow_adapter.py::MLflowAdapter.get_metrics::mlflow
icdev/tools/ops_hub/adapters/mlflow_adapter.py::MLflowAdapter.health_check::mlflow
icdev/tools/ops_hub/adapters/mlflow_adapter.py::MLflowAdapter.list_resources::mlflow
icdev/tools/ops_hub/adapters/mlflow_adapter.py::MLflowAdapter.push_event::mlflow

# onnxruntime -> distribution 'onnxruntime'
icdev/tools/ops_hub/adapters/onnx_adapter.py::ONNXAdapter._inspect_model::onnxruntime
icdev/tools/ops_hub/adapters/onnx_adapter.py::ONNXAdapter.available::onnxruntime
icdev/tools/ops_hub/adapters/onnx_adapter.py::ONNXAdapter.get_metrics::onnxruntime
icdev/tools/ops_hub/adapters/onnx_adapter.py::ONNXAdapter.health_check::onnxruntime

# yt_dlp -> distribution 'yt_dlp'
icdev/tools/platform_connectors/adapters/youtube.py::<module>::yt_dlp

# chromadb -> distribution 'chromadb'
icdev/tools/rag/vector_store_factory.py::VectorStoreFactory._auto_detect::chromadb

# faiss -> distribution 'faiss'
icdev/tools/rag/vector_store_factory.py::VectorStoreFactory._auto_detect::faiss

# chromadb -> distribution 'chromadb'
icdev/tools/rag/vector_store_factory.py::VectorStoreFactory.list_available::chromadb

# faiss -> distribution 'faiss'
icdev/tools/rag/vector_store_factory.py::VectorStoreFactory.list_available::faiss

# pdf2image -> distribution 'pdf2image'
icdev/tools/requirements/document_extractor.py::_extract_pdf_pages_via_vision::pdf2image

# llm_sandbox -> distribution 'llm_sandbox'
icdev/tools/security/sandbox_executor.py::SandboxExecutor.health_check::llm_sandbox

# pdf2image -> distribution 'pdf2image'
icdev/tools/simulation/parsers/pdf_parser.py::_render_pdf2image::pdf2image

# sgp4 -> distribution 'sgp4'
icdev/tools/strategos/tle_importer.py::<module>::sgp4

# locust -> distribution 'locust'
icdev/tools/testing/perf/locustfile.py::<module>::locust
icdev/tools/testing/perf_benchmark.py::locust_available::locust

# matplotlib -> distribution 'matplotlib'
icdev/tools/viz/asset_generator.py::AssetGenerator._provider_matplotlib::matplotlib

# pdfminer -> distribution 'pdfminer'
icdev/tools/voc/transcript_ingestor.py::_extract_text_pdf::pdfminer

# botocore -> distribution 'botocore'
tools/agent/bedrock_client.py::<module>::botocore

# tree_sitter_languages -> distribution 'tree_sitter_languages'
tools/ai_augmentation/pattern_classifier.py::_cs_detect_file::tree_sitter_languages

# tree_sitter_languages -> distribution 'tree_sitter_languages'
tools/aiify/pattern_classifier.py::_cs_detect_file::tree_sitter_languages

# pdf2image -> distribution 'pdf2image'
tools/airgap/pdf_fallback.py::LocalPDFProvider._render_page_to_base64::pdf2image

# ibm_cloud_sdk_core -> distribution 'ibm_cloud_sdk_core'
tools/cloud/iam_provider.py::<module>::ibm_cloud_sdk_core

# ibm_platform_services -> distribution 'ibm_platform_services'
tools/cloud/iam_provider.py::<module>::ibm_platform_services

# ibm_cloud_sdk_core -> distribution 'ibm_cloud_sdk_core'
tools/cloud/kms_provider.py::<module>::ibm_cloud_sdk_core

# ibm_platform_services -> distribution 'ibm_platform_services'
tools/cloud/kms_provider.py::<module>::ibm_platform_services

# azure -> distribution 'azure'
tools/cloud/monitoring_provider.py::<module>::azure
tools/cloud/registry_provider.py::<module>::azure
tools/cloud/secrets_provider.py::<module>::azure

# ibm_cloud_sdk_core -> distribution 'ibm_cloud_sdk_core'
tools/cloud/secrets_provider.py::<module>::ibm_cloud_sdk_core

# ibm_platform_services -> distribution 'ibm_platform_services'
tools/cloud/secrets_provider.py::<module>::ibm_platform_services

# azure -> distribution 'azure'
tools/cloud/storage_provider.py::<module>::azure

# ibm_boto3 -> distribution 'ibm_boto3'
tools/cloud/storage_provider.py::<module>::ibm_boto3

# ibm_botocore -> distribution 'ibm_botocore'
tools/cloud/storage_provider.py::<module>::ibm_botocore

# tomli -> distribution 'tomli'
tools/compliance/dependency_resolver.py::<module>::tomli

# yfinance -> distribution 'yfinance'

# slugify -> distribution 'python_slugify'
tools/dashboard/api/pulse.py::api_pulse_update_post::slugify

# flask_socketio -> distribution 'flask_socketio'
tools/dashboard/websocket.py::init_socketio._do_import::flask_socketio

# azure -> distribution 'azure'
tools/data_canvas/csp.py::_sync_azure::azure
tools/data_canvas/data_mesh/csp/azure_purview.py::sync_domains_to_purview::azure

# botocore -> distribution 'botocore'
tools/databridge/connectors/aws_controltower_connector.py::<module>::botocore

# pyarrow -> distribution 'pyarrow'
tools/databridge/connectors/health_base.py::<module>::pyarrow
tools/databridge/connectors/soap_base.py::<module>::pyarrow

# zeep -> distribution 'zeep'
tools/databridge/connectors/soap_base.py::<module>::zeep

# pyarrow -> distribution 'pyarrow'
tools/databridge/scale/chunked_pipeline.py::<module>::pyarrow

# pytesseract -> distribution 'pytesseract'
tools/docgen/context_builder.py::_extract_image_text::pytesseract

# pdfminer -> distribution 'pdfminer'
tools/docgen/context_builder.py::_extract_text_from_file::pdfminer

# pytesseract -> distribution 'pytesseract'
tools/document_intelligence/extractors.py::_ocr_image::pytesseract

# yfinance -> distribution 'yfinance'

# openbb -> distribution 'openbb'

# paramiko -> distribution 'paramiko'
tools/filesync/providers/sftp.py::<module>::paramiko

# watchdog -> distribution 'watchdog'
tools/filesync/watcher.py::<module>::watchdog

# qwen_weights -> distribution 'qwen_weights'
tools/finetune/govcon_ft_pipeline.py::run::qwen_weights

# snscrape -> distribution 'snscrape'
tools/genesis/reflexes/strategos/osint_harvester.py::_harvest_snscrape::snscrape

# telethon -> distribution 'telethon'
tools/genesis/reflexes/strategos/osint_harvester.py::_harvest_telegram::telethon

# pdfminer -> distribution 'pdfminer'
tools/govcon/rfi_document_parser.py::_extract_text_from_pdf::pdfminer

# PyPDF2 -> distribution 'PyPDF2'
tools/govcon/rfi_engine_runner.py::_extract_text::PyPDF2

# pdfminer -> distribution 'pdfminer'
tools/govcon/rfi_engine_runner.py::_extract_text::pdfminer

# azure -> distribution 'azure'
tools/llm/azure_openai_provider.py::<module>::azure

# botocore -> distribution 'botocore'
tools/llm/bedrock_provider.py::<module>::botocore

# dateparser -> distribution 'dateparser'
tools/llm/router.py::LLMRouter._parse_reset_time_from_error::dateparser

# vertexai -> distribution 'vertexai'
tools/llm/vertex_ai_provider.py::<module>::vertexai

# websockets -> distribution 'websockets'
tools/ndc/gns3_traffic_engine.py::_ws_session::websockets

# netmiko -> distribution 'netmiko'
tools/network/discovery.py::<module>::netmiko

# pysnmp -> distribution 'pysnmp'
tools/network/discovery.py::<module>::pysnmp

# rapidocr_onnxruntime -> distribution 'rapidocr_onnxruntime'
tools/network/ocr_fallback.py::RapidOCRProvider.check_availability::rapidocr_onnxruntime

# pytesseract -> distribution 'pytesseract'
tools/network/ocr_fallback.py::TesseractOCRProvider.check_availability::pytesseract

# fpdf -> distribution 'fpdf'
tools/network/pdf_export.py::<module>::fpdf

# netmiko -> distribution 'netmiko'
tools/network/routes/collect.py::register_collect_routes.nc_api_connect_collect::netmiko

# mlflow -> distribution 'mlflow'
tools/observability/mlflow_exporter.py::<module>::mlflow

# opentelemetry -> distribution 'opentelemetry'
tools/observability/otel_tracer.py::<module>::opentelemetry

# azure -> distribution 'azure'
tools/ops_hub/adapters/azureml_adapter.py::AzureMLAdapter.available::azure
tools/ops_hub/adapters/azureml_adapter.py::AzureMLAdapter.health_check::azure
tools/ops_hub/adapters/azureml_adapter.py::AzureMLAdapter.push_event::azure
tools/ops_hub/adapters/azureml_adapter.py::_has_azureml::azure

# evidently -> distribution 'evidently'
tools/ops_hub/adapters/evidently_adapter.py::EvidentlyAdapter.available::evidently
tools/ops_hub/adapters/evidently_adapter.py::EvidentlyAdapter.health_check::evidently
tools/ops_hub/adapters/evidently_adapter.py::EvidentlyAdapter.run_drift_report::evidently
tools/ops_hub/adapters/evidently_adapter.py::EvidentlyAdapter.run_model_performance_report::evidently

# langfuse -> distribution 'langfuse'
tools/ops_hub/adapters/langfuse_adapter.py::LangfuseAdapter.available::langfuse
tools/ops_hub/adapters/langfuse_adapter.py::LangfuseAdapter.health_check::langfuse
tools/ops_hub/adapters/langfuse_adapter.py::_has_langfuse::langfuse

# mlflow -> distribution 'mlflow'
tools/ops_hub/adapters/mlflow_adapter.py::MLflowAdapter.available::mlflow
tools/ops_hub/adapters/mlflow_adapter.py::MLflowAdapter.get_metrics::mlflow
tools/ops_hub/adapters/mlflow_adapter.py::MLflowAdapter.health_check::mlflow
tools/ops_hub/adapters/mlflow_adapter.py::MLflowAdapter.list_resources::mlflow
tools/ops_hub/adapters/mlflow_adapter.py::MLflowAdapter.push_event::mlflow

# onnxruntime -> distribution 'onnxruntime'
tools/ops_hub/adapters/onnx_adapter.py::ONNXAdapter._inspect_model::onnxruntime
tools/ops_hub/adapters/onnx_adapter.py::ONNXAdapter.available::onnxruntime
tools/ops_hub/adapters/onnx_adapter.py::ONNXAdapter.get_metrics::onnxruntime
tools/ops_hub/adapters/onnx_adapter.py::ONNXAdapter.health_check::onnxruntime

# yt_dlp -> distribution 'yt_dlp'
tools/platform_connectors/adapters/youtube.py::<module>::yt_dlp

# cv2 -> distribution 'opencv_python'
tools/pulse/engine/video_generator.py::_export_frames_to_mp4::cv2

# imageio -> distribution 'imageio'
tools/pulse/engine/video_generator.py::_export_frames_to_mp4::imageio

# chromadb -> distribution 'chromadb'
tools/rag/vector_store_factory.py::VectorStoreFactory._auto_detect::chromadb

# faiss -> distribution 'faiss'
tools/rag/vector_store_factory.py::VectorStoreFactory._auto_detect::faiss

# chromadb -> distribution 'chromadb'
tools/rag/vector_store_factory.py::VectorStoreFactory.list_available::chromadb

# faiss -> distribution 'faiss'
tools/rag/vector_store_factory.py::VectorStoreFactory.list_available::faiss

# pdf2image -> distribution 'pdf2image'
tools/requirements/document_extractor.py::_extract_pdf_pages_via_vision::pdf2image

# llm_sandbox -> distribution 'llm_sandbox'
tools/security/sandbox_executor.py::SandboxExecutor.health_check::llm_sandbox

# pdf2image -> distribution 'pdf2image'
tools/simulation/parsers/pdf_parser.py::_render_pdf2image::pdf2image

# sgp4 -> distribution 'sgp4'
tools/strategos/tle_importer.py::<module>::sgp4

# locust -> distribution 'locust'
tools/testing/perf/locustfile.py::<module>::locust
tools/testing/perf_benchmark.py::locust_available::locust

# flask_mailman -> distribution 'flask_mailman'

# yfinance -> distribution 'yfinance'

# email_validator -> distribution 'email_validator'

# yfinance -> distribution 'yfinance'

# fredapi -> distribution 'fredapi'

# yfinance -> distribution 'yfinance'

# fredapi -> distribution 'fredapi'

# yfinance -> distribution 'yfinance'

# fredapi -> distribution 'fredapi'

# yfinance -> distribution 'yfinance'

# fredapi -> distribution 'fredapi'

# yfinance -> distribution 'yfinance'

# matplotlib -> distribution 'matplotlib'
tools/viz/asset_generator.py::AssetGenerator._provider_matplotlib::matplotlib

# pdfminer -> distribution 'pdfminer'
tools/voc/transcript_ingestor.py::_extract_text_pdf::pdfminer
