MCPcopy Create free account
hub / github.com/scanny/python-pptx / PackageReader

Class PackageReader

src/pptx/opc/serialized.py:22–52  ·  view source on GitHub ↗

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.

Source from the content-addressed store, hash-verified

20
21
22class 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
55class PackageWriter:

Calls

no outgoing calls

Used in the wild real call sites across dependent graphs

searching dependent graphs…