
    pi                     v    d dl Z d dlZd dlmZmZ d dlmZ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Union)MapDataPipe_TSequenceWrapperMapDataPipec                       e Zd ZU dZeee   eeef   f   e	d<   	 d
deee   eeef   f   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       || _        Y y w xY w)NzkThe input sequence can not be deepcopied, please be aware of in-place modification would affect source data)copyr   r   	TypeErrorwarningswarn)selfr   r   s      f/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/torch/utils/data/datapipes/map/utils.py__init__z#SequenceWrapperMapDataPipe.__init__)   sQ     ) $h 7 %DM  )X !))s   ' %AAindexc                      | j                   |   S N)r   )r   r   s     r   __getitem__z&SequenceWrapperMapDataPipe.__getitem__8   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   r   __annotations__boolr   intr   r    r   r   r
   r
      s    0 HRL'#r'"2233 QU%hrlGCG,<<=%IM%	%$ $ $" "r   )r   r   collections.abcr   r   typingr   r   r   #torch.utils.data.datapipes.datapiper   r	   __all__r
   r&   r   r   <module>r+      s:      - & & ; T]'
(."R ."r   