
    ti                         d dl mZ d dl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    m/home/ubuntu/crypto_trading_bot/.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__4   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__B   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)collections.abcr   typingr   %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/      sX    $  E ; H 
- 	4( U+-E* +- +-r   