Ë
    ÌÓ^j  ã                   ór   — d dl Z d dlZd dlmZmZ d dlmZmZ d dlm	Z	  ed«      Z
dgZ G d„ de	e
   «      Zy)é    N)ÚMappingÚSequence)ÚAnyÚTypeVar)ÚMapDataPipeÚ_TÚSequenceWrapperMapDataPipec                   ó|   — e Zd ZU dZee   eeef   z  ed<   	 d
dee   eeef   z  de	ddfd„Z
dedefd„Zdefd	„Zy)r	   aö  
    Wraps a sequence object into a MapDataPipe.

    Args:
        sequence: Sequence object to be wrapped into an MapDataPipe
        deepcopy: Option to deepcopy input sequence object

    .. note::
      If ``deepcopy`` is set to False explicitly, users should ensure
      that data pipeline doesn't contain any in-place operations over
      the iterable instance, in order to prevent data inconsistency
      across iterations.

    Example:
        >>> # xdoctest: +SKIP
        >>> from torchdata.datapipes.map import SequenceWrapper
        >>> dp = SequenceWrapper(range(10))
        >>> list(dp)
        [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
        >>> dp = SequenceWrapper({"a": 100, "b": 200, "c": 300, "d": 400})
        >>> dp["a"]
        100
    ÚsequenceÚdeepcopyÚreturnNc                 ó¨   — |r	 t        j                  |«      | _        y || _        y # t        $ r! t	        j
                  dd¬«       || _        Y y w xY w)NzkThe input sequence can not be deepcopied, please be aware of in-place modification would affect source dataé   )Ú
stacklevel)Úcopyr   r   Ú	TypeErrorÚwarningsÚwarn)Úselfr   r   s      úo/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/utils/data/datapipes/map/utils.pyÚ__init__z#SequenceWrapperMapDataPipe.__init__)   sT   € ñ ð)Ü $§¡¨hÓ 7�•ð %ˆD�Møô ò )Ü—‘ðXà õð
 !)�–ð)ús   „' §'AÁAÚindexc                 ó    — | j                   |   S ©N)r   )r   r   s     r   Ú__getitem__z&SequenceWrapperMapDataPipe.__getitem__9   s   € Ø�}‰}˜UÑ#Ð#ó    c                 ó,   — t        | j                  «      S r   )Úlenr   )r   s    r   Ú__len__z"SequenceWrapperMapDataPipe.__len__<   s   € Ü�4—=‘=Ó!Ð!r   )T)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   Ú__annotations__Úboolr   Úintr   r   © r   r   r	   r	      sv   … ñð0 �r‰l˜W S¨" WÑ-Ñ-Ó-ð KOñ%Ø  ™ w¨s°B¨wÑ'7Ñ7ð%ØCGð%à	ó%ð $ ð $¨ó $ð"˜ô "r   )r   r   Úcollections.abcr   r   Útypingr   r   Ú#torch.utils.data.datapipes.datapiper   r   Ú__all__r	   r'   r   r   ú<module>r,      s7   ðÛ Û ß -ß å ;ñ ˆTƒ]€à'Ð
(€ô/" ¨R¡õ /"r   