
    QVji                         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dS )    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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                     |rH	 t          j        |          | _        d S # t          $ r t	          j        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)copyr   r   	TypeErrorwarningswarn)selfr   r   s      ^/root/voice-cloning/.venv/lib/python3.11/site-packages/torch/utils/data/datapipes/map/utils.py__init__z#SequenceWrapperMapDataPipe.__init__)   sw      
	%) $h 7 7 ) ) )X   !)) %DMMMs    %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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      - - - - - - - - & & & & & & & & & & ; ; ; ; ; ; WT]]'
(." ." ." ." ."R ." ." ." ." ."r   