{"record":{"id":"e837f05d7c01d501","repo":"zylon-ai/private-gpt","slug":"pptx-reader-dependencies-are-not-installed-instal","errorCode":null,"errorMessage":"PPTX reader dependencies are not installed. Install with `uv sync --inexact --extra ingest-documents`.","messagePattern":"PPTX reader dependencies are not installed\\. Install with `uv sync --inexact --extra ingest-documents`\\.","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"private_gpt/components/readers/factories/pptx2md.py","lineNumber":15,"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\nclass PPTX2MdReaderFactory(ReaderFactory):\n    def create_reader(self, extension: str | None = None) -> IngestionReader:\n        del extension\n\n        try:\n            from private_gpt.components.readers.pptx2md.pptx2md_reader import (\n                PPTX2MdReader,\n            )\n        except ImportError as e:\n            raise ImportError(\n                format_missing_dependency_message(\n                    \"PPTX reader\",\n                    extras=\"ingest-documents\",\n                )\n            ) from e\n\n        return PPTX2MdReader(reader_settings=self.settings.transformation.pptx)\n","sourceCodeStart":1,"sourceCodeEnd":23,"githubUrl":"https://github.com/zylon-ai/private-gpt/blob/4a030776a31a901ad80b1bf4d7faa2c1a367efbb/private_gpt/components/readers/factories/pptx2md.py#L1-L23","documentation":"Raised as ImportError by PPTX2MdReaderFactory.create_reader when the lazy import of the pptx2md reader module fails because the python-pptx/markitdown-pptx style dependencies of that reader are absent. Those dependencies ship in the 'ingest-documents' extra, and the message embeds the exact uv sync command. The original ImportError is preserved as __cause__.","triggerScenarios":"Selecting the 'pptx2md' reader (get_factory('pptx2md').create_reader()) in an environment installed without the ingest-documents extra — the lazy import inside create_reader raises ImportError and is re-raised with the install instructions.","commonSituations":"Default `uv sync` install (no extras) then enabling pptx2md in settings; CI environments provisioned only for docling ingestion; slim Docker images; upgrading private-gpt where extras were renamed (previously different extra names covered these deps).","solutions":["Run uv sync --inexact --extra ingest-documents as stated in the message.","Rebuild your Docker/CI image to include the extra if the error appears only in deployed environments.","If you cannot install the extra, switch that file type's ingestion to the 'docling' reader, which handles pptx via the Docling server without these local deps.","If the extra is installed but the error persists, inspect e.__cause__ for the specific missing inner package and install it."],"exampleFix":"# fix at environment level\n# uv sync --inexact --extra ingest-documents\n\n# or switch reader in settings\n# docling handles pptx server-side","handlingStrategy":"validation","validationCode":"def pptx_deps_available() -> bool:\n    try:\n        import pptx  # python-pptx powers the pptx2md reader\n        return True\n    except ImportError:\n        return False\n\nif not pptx_deps_available():\n    raise SystemExit(\"Install first: uv sync --inexact --extra ingest-documents\")","typeGuard":"def pptx_deps_available() -> bool:\n    try:\n        import pptx  # noqa: F401\n        return True\n    except ImportError:\n        return False","tryCatchPattern":"try:\n    reader = registry.get_factory(\"pptx2md\").create_reader()\nexcept ImportError as e:\n    if \"ingest-documents\" in str(e):\n        raise SystemExit(\"Run: uv sync --inexact --extra ingest-documents\") from e\n    raise","preventionTips":["Bake the ingest-documents extra into Docker/CI images whenever pptx ingestion is enabled.","If the extra cannot be installed, route .pptx files to the docling reader instead."],"tags":["dependencies","pptx","readers","installation"],"backgroundTag":null,"analyzedSha":"4a030776a31a901ad80b1bf4d7faa2c1a367efbb","analyzedAt":"2026-08-15T03:51:26.951Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}