§
    X�’jR  ã                   ó†   — 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dS )é    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dS )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
    ÚsequenceTÚdeepcopyÚreturnNc                 ó¬   — |rJ	 t          j        |¦  «        | _        d S # t          $ r! t	          j        dd¬¦  «         || _        Y d S w xY w|| _        d S )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      úRC:\Projects\DSCons\.venv\Lib\site-packages\torch\utils\data\datapipes\map\utils.pyÚ__init__z#SequenceWrapperMapDataPipe.__init__)   s   € ð ð 	%ð)Ý $¤¨hÑ 7Ô 7�”��øÝð )ð )ð )Ý”ðXà ðñ ô ð ð
 !)�”���ð)øøøð %ˆDŒMˆMˆMs   „ Ÿ'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	      sÇ   € € € € € € ðð ð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,      s¨   ðØ €€€Ø €€€Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð Ð Ð à ;Ð ;Ð ;Ð ;Ð ;Ð ;ð €WˆT�]„]€à'Ð
(€ð/"ð /"ð /"ð /"ð /" ¨R¤ñ /"ô /"ð /"ð /"ð /"r   