_outline.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. from typing import Union
  2. from .._utils import StreamType, deprecation_no_replacement
  3. from ._base import NameObject
  4. from ._data_structures import Destination
  5. class OutlineItem(Destination):
  6. def write_to_stream(
  7. self, stream: StreamType, encryption_key: Union[None, str, bytes] = None
  8. ) -> None:
  9. if encryption_key is not None: # deprecated
  10. deprecation_no_replacement(
  11. "the encryption_key parameter of write_to_stream", "5.0.0"
  12. )
  13. stream.write(b"<<\n")
  14. for key in [
  15. NameObject(x)
  16. for x in ["/Title", "/Parent", "/First", "/Last", "/Next", "/Prev"]
  17. if x in self
  18. ]:
  19. key.write_to_stream(stream)
  20. stream.write(b" ")
  21. value = self.raw_get(key)
  22. value.write_to_stream(stream)
  23. stream.write(b"\n")
  24. key = NameObject("/Dest")
  25. key.write_to_stream(stream)
  26. stream.write(b" ")
  27. value = self.dest_array
  28. value.write_to_stream(stream)
  29. stream.write(b"\n")
  30. stream.write(b">>")