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