{"record":{"id":"d29982f2fdb5a9e5","repo":"cocoindex-io/cocoindex","slug":"apache-iggy-is-required-to-use-the-iggy-connector","errorCode":null,"errorMessage":"apache-iggy is required to use the Iggy connector. Please install cocoindex[iggy].","messagePattern":"apache-iggy is required to use the Iggy connector\\. Please install cocoindex\\[iggy\\]\\.","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"python/cocoindex/connectors/iggy/_source.py","lineNumber":24,"sourceCode":"that carry an application-level key.\n\"\"\"\n\nfrom __future__ import annotations\n\nimport asyncio\nimport logging\nfrom collections import deque\nfrom datetime import timedelta\nfrom typing import Any, Callable\n\ntry:\n    from apache_iggy import AutoCommit  # type: ignore[import-not-found]\n    from apache_iggy import IggyClient  # type: ignore[import-not-found]\n    from apache_iggy import IggyConsumer  # type: ignore[import-not-found]\n    from apache_iggy import PollingStrategy  # type: ignore[import-not-found]\n    from apache_iggy import ReceiveMessage  # type: ignore[import-not-found]\nexcept ImportError as e:\n    raise ImportError(\n        \"apache-iggy is required to use the Iggy connector. \"\n        \"Please install cocoindex[iggy].\"\n    ) from e\n\nfrom cocoindex._internal.live_component import (\n    _IMMEDIATE_READY,\n    LiveMapSubscriber,\n    LiveStream,\n    LiveStreamSubscriber,\n    ReadyAwaitable,\n)\nfrom cocoindex._internal.typing import StableKey\nfrom cocoindex.connectorkits import SingleWatcherGuard\n\n_logger = logging.getLogger(__name__)\n\n\n# --- Public type aliases ---","sourceCodeStart":6,"sourceCodeEnd":42,"githubUrl":"https://github.com/cocoindex-io/cocoindex/blob/e84aa99b3292c5270a4b313b2a7137ad9ce8ab3b/python/cocoindex/connectors/iggy/_source.py#L6-L42","documentation":"The Iggy source connector depends on the optional apache-iggy package. If importing IggyClient/IggyConsumer etc. fails at module import, an ImportError is raised instructing the user to install cocoindex[iggy].","triggerScenarios":"Importing cocoindex.connectors.iggy._source or using the Iggy source in an environment where cocoindex was installed without the iggy extra.","commonSituations":"Installing base cocoindex without extras; CI images missing optional dependencies; trying out the Iggy connector on a machine where apache-iggy was never installed.","solutions":["Install the extra: pip install 'cocoindex[iggy]'","Install the package directly: pip install apache-iggy","Add cocoindex[iggy] to project dependencies/requirements"],"exampleFix":"// before\npip install cocoindex\n// after\npip install \"cocoindex[iggy]\"","handlingStrategy":"fallback","validationCode":"import importlib.util\nif importlib.util.find_spec(\"apache_iggy\") is None:\n    raise SystemExit(\"Install: pip install 'cocoindex[iggy]'\")","typeGuard":null,"tryCatchPattern":"try:\n    from cocoindex.connectors import iggy\nexcept ImportError:\n    iggy = None  # feature disabled with setup hint","preventionTips":["Install cocoindex[iggy] wherever Iggy connectors are used","Declare extras explicitly in pyproject/requirements","Add an import smoke test in CI for each connector in use"],"tags":["iggy","import","optional-dependency","installation"],"backgroundTag":"missing-optional-dependency","analyzedSha":"e84aa99b3292c5270a4b313b2a7137ad9ce8ab3b","analyzedAt":"2026-09-08T15:59:19.997Z","contentChangedAt":"2026-09-08T15:59:19.997Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}