
    sgD                         d dl mZmZ d dlmZ d dlmZ d dlmZ ddgZ	 edd	      Z
d
 Z ed       G d dee
                Zy)    )CallableTypeVar)functional_datapipe)MapDataPipe)_check_unpickable_fnMapperMapDataPipe
default_fn_T_coT)	covariantc                     | S N )datas    Z/var/www/html/venv/lib/python3.12/site-packages/torch/utils/data/datapipes/map/callable.pyr	   r	      s    K    mapc                   b     e Zd ZU dZeed<   eed<   efdededdf fdZde	fdZ
defdZ xZS )	r   a  
    Apply the input function over each item from the source DataPipe (functional name: ``map``).

    The function can be any regular Python function or partial object. Lambda
    function is not recommended as it is not supported by pickle.

    Args:
        datapipe: Source MapDataPipe
        fn: Function being applied to each item

    Example:
        >>> # xdoctest: +SKIP
        >>> from torchdata.datapipes.map import SequenceWrapper, Mapper
        >>> def add_one(x):
        ...     return x + 1
        >>> dp = SequenceWrapper(range(10))
        >>> map_dp_1 = dp.map(add_one)
        >>> list(map_dp_1)
        [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        >>> map_dp_2 = Mapper(dp, lambda x: x + 1)
        >>> list(map_dp_2)
        [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    datapipefnreturnNc                 T    t         |           || _        t        |       || _        y r   )super__init__r   r   r   )selfr   r   	__class__s      r   r   zMapperMapDataPipe.__init__3   s&    
 	 R r   c                 ,    t        | j                        S r   )lenr   )r   s    r   __len__zMapperMapDataPipe.__len__=   s    4==!!r   c                 >    | j                  | j                  |         S r   )r   r   )r   indexs     r   __getitem__zMapperMapDataPipe.__getitem__@   s    wwt}}U+,,r   )__name__
__module____qualname____doc__r   __annotations__r   r	   r   intr   r
   r!   __classcell__)r   s   @r   r   r      sS    0 L
 "  
	" "-E -r   N)typingr   r   %torch.utils.data.datapipes._decoratorr   #torch.utils.data.datapipes.datapiper   'torch.utils.data.datapipes.utils.commonr   __all__r
   r	   r   r   r   r   <module>r.      sU    $ E ; H 
- 	4( U*-E* *- *-r   