Provides access to package-parts of an OPC package with dict semantics. The package may be in zip-format (a .pptx file) or expanded into a directory structure, perhaps by unzipping a .pptx file.
| 20 | |
| 21 | |
| 22 | class PackageReader(Container[bytes]): |
| 23 | """Provides access to package-parts of an OPC package with dict semantics. |
| 24 | |
| 25 | The package may be in zip-format (a .pptx file) or expanded into a directory structure, |
| 26 | perhaps by unzipping a .pptx file. |
| 27 | """ |
| 28 | |
| 29 | def __init__(self, pkg_file: str | IO[bytes]): |
| 30 | self._pkg_file = pkg_file |
| 31 | |
| 32 | def __contains__(self, pack_uri: object) -> bool: |
| 33 | """Return True when part identified by `pack_uri` is present in package.""" |
| 34 | return pack_uri in self._blob_reader |
| 35 | |
| 36 | def __getitem__(self, pack_uri: PackURI) -> bytes: |
| 37 | """Return bytes for part corresponding to `pack_uri`.""" |
| 38 | return self._blob_reader[pack_uri] |
| 39 | |
| 40 | def rels_xml_for(self, partname: PackURI) -> bytes | None: |
| 41 | """Return optional rels item XML for `partname`. |
| 42 | |
| 43 | Returns `None` if no rels item is present for `partname`. `partname` is a |PackURI| |
| 44 | instance. |
| 45 | """ |
| 46 | blob_reader, uri = self._blob_reader, partname.rels_uri |
| 47 | return blob_reader[uri] if uri in blob_reader else None |
| 48 | |
| 49 | @lazyproperty |
| 50 | def _blob_reader(self) -> _PhysPkgReader: |
| 51 | """|_PhysPkgReader| subtype providing read access to the package file.""" |
| 52 | return _PhysPkgReader.factory(self._pkg_file) |
| 53 | |
| 54 | |
| 55 | class PackageWriter: |
no outgoing calls
searching dependent graphs…