{"record":{"id":"1b777724a1339050","repo":"zylon-ai/private-gpt","slug":"delimited-text-reader-dependencies-are-not-install","errorCode":null,"errorMessage":"Delimited text reader dependencies are not installed.","messagePattern":"Delimited text reader dependencies are not installed\\.","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"private_gpt/components/readers/factories/text.py","lineNumber":12,"sourceCode":"from private_gpt.components.readers.base_reader import IngestionReader\nfrom private_gpt.components.readers.factories.base import ReaderFactory\nfrom private_gpt.utils.dependencies import format_missing_dependency_message\n\n\ndef _delimiter_reader() -> IngestionReader:\n    try:\n        from private_gpt.components.readers.text.delimiter_reader import (\n            DelimiterTextReader,\n        )\n    except ImportError as e:\n        raise ImportError(\n            format_missing_dependency_message(\n                \"Delimited text reader\",\n            )\n        ) from e\n    return DelimiterTextReader()\n\n\ndef _email_reader() -> IngestionReader:\n    try:\n        from private_gpt.components.readers.text.email_reader import (\n            EmailTextReader,\n        )\n    except ImportError as e:\n        raise ImportError(\n            format_missing_dependency_message(\n                \"Email reader\",\n            )\n        ) from e","sourceCodeStart":1,"sourceCodeEnd":30,"githubUrl":"https://github.com/zylon-ai/private-gpt/blob/4a030776a31a901ad80b1bf4d7faa2c1a367efbb/private_gpt/components/readers/factories/text.py#L1-L30","documentation":"Raised as ImportError by _delimiter_reader() in factories/text.py when the lazy import of the DelimiterTextReader module fails. Unlike the markitdown/pptx factories, this helper calls format_missing_dependency_message with no extras argument, so the message has no install command — the delimited-text reader's dependencies are expected to be core (pandas/CSV-style deps), and an ImportError here usually indicates a broken environment rather than a missing optional extra. The chained __cause__ names the actually missing module.","triggerScenarios":"Selecting the 'text' reader path that instantiates the delimited-text sub-reader while the import of private_gpt.components.readers.text.delimiter_reader (or its transitive imports, e.g., pandas) fails in the current interpreter.","commonSituations":"Partial/interrupted uv sync or pip install leaving dependencies missing; a venv activated for a different project; dependency conflicts downgrading or removing pandas; running from an editor with a different interpreter than the one deps were installed into.","solutions":["Inspect e.__cause__ in the traceback to identify the exact missing module.","Re-sync the environment: uv sync --inexact --extra ingest (or the full set of extras you use) to restore missing core deps.","If a specific package (e.g., pandas) is missing, install it explicitly: uv pip install pandas.","Confirm you are running with the intended interpreter (which python / .venv/bin/python) — editor/IDE often picks another env."],"exampleFix":"# diagnose the real missing module\ntry:\n    from private_gpt.components.readers.text.delimiter_reader import DelimiterTextReader\nexcept ImportError as e:\n    print(\"actually missing:\", e)\n\n# then repair the env\n# uv sync --inexact --extra ingest","handlingStrategy":"validation","validationCode":"def delimiter_reader_available() -> bool:\n    try:\n        from private_gpt.components.readers.text.delimiter_reader import DelimiterTextReader  # noqa: F401\n        return True\n    except ImportError:\n        return False\n\nif not delimiter_reader_available():\n    raise SystemExit(\"Environment incomplete: re-run uv sync --inexact (with your extras)\")","typeGuard":"def delimiter_reader_available() -> bool:\n    try:\n        from private_gpt.components.readers.text.delimiter_reader import DelimiterTextReader  # noqa: F401\n        return True\n    except ImportError:\n        return False","tryCatchPattern":"try:\n    reader = _delimiter_reader()\nexcept ImportError as e:\n    logger.error(\"missing module: %r\", e.__cause__ or e)\n    raise SystemExit(\"Repair environment with: uv sync --inexact --extra ingest\") from e","preventionTips":["This error implies a broken env (no extra exists for it) — check interpreter/env mismatch first.","Always launch through the project venv (uv run / .venv/bin/python) to avoid importing against a foreign site-packages."],"tags":["dependencies","readers","csv","text","installation"],"backgroundTag":null,"analyzedSha":"4a030776a31a901ad80b1bf4d7faa2c1a367efbb","analyzedAt":"2026-08-15T03:51:26.951Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}