
    Th'                     <    S SK r S SKrS SKJr  S/r " S S\5      rg)    N)MapDataPipeSequenceWrapperMapDataPipec                   .    \ rS rSrSrSS jrS rS rSrg)	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
c                     U(       a   [         R                  " U5      U l        g Xl        g ! [         a    [        R
                  " S5        Xl         g f = f)NzkThe input sequence can not be deepcopied, please be aware of in-place modification would affect source data)copydeepcopysequence	TypeErrorwarningswarn)selfr
   r	   s      ^/var/www/fran/franai/venv/lib/python3.13/site-packages/torch/utils/data/datapipes/map/utils.py__init__#SequenceWrapperMapDataPipe.__init__$   sK    ) $h 7 %M  )X !))s   , &AAc                      U R                   U   $ Nr
   )r   indexs     r   __getitem__&SequenceWrapperMapDataPipe.__getitem__1   s    }}U##    c                 ,    [        U R                  5      $ r   )lenr
   )r   s    r   __len__"SequenceWrapperMapDataPipe.__len__4   s    4==!!r   r   N)T)	__name__
__module____qualname____firstlineno____doc__r   r   r   __static_attributes__ r   r   r   r      s    0%$"r   )r   r   #torch.utils.data.datapipes.datapiper   __all__r   r#   r   r   <module>r&      s$      ; (
(*" *"r   