
    M/Ph<
                     4   d dl mZmZmZ d dlZd dlZd dlmZ ej	         G d d                      Z
 G d de
          Z G d d	e
          ZeegZ G d
 d          Z G d d          Z G d d          Z e            Zdej        dedej        fdZdS )    )CallableListTypeN)
has_importc                       e Zd Z ej                    Zedd            Zede	j
        deege	j
        f         fd            ZdS )EnginereturnNc                      t          d          )Nz#No setup defined for generic engineNotImplementedErrorclsargskwargss      o/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/visions/backends/shared/parallelization_engines.pysetupzEngine.setup       !"GHHH    seriesc                      t          d          )Nz#No apply defined for generic enginer   r   s    r   applyzEngine.apply   r   r   r	   N)__name__
__module____qualname__attribnameclassmethodr   staticmethodpdSeriesr   r    r   r   r   r   	   s        4799DI I I [I Ibi IHhZ-B$C I I I \I I Ir   r   c                   t    e Zd ZdZdZedd            Zedej	        de
e
gej	        f         fd            ZdS )	PandasEnginepandasTr	   Nc                     d S Nr$   r   s      r   r   zPandasEngine.setup   s    r   r   c                     | j         S r)   r   r   s    r   r   zPandasEngine.apply   s
    |r   r   r   r   r   r   	_is_setupr    r   r!   r"   r#   r   r   r$   r   r   r&   r&      sz        DI   [ bi HhZ-B$C    \  r   r&   c                   t    e Zd ZdZdZedd            Zedej	        de
e
gej	        f         fd            ZdS )	SwifterEngineswifterFr	   Nc                 .    | j         rd S dd l}d| _         d S )Nr   T)r-   r0   )r   r   r   r0   s       r   r   zSwifterEngine.setup'   s%    = 	Fr   r   c                     | j         j        S r)   )r0   r   r   s    r   r   zSwifterEngine.apply0   s    ~##r   r   r,   r$   r   r   r/   r/   #   sz        DI   [ $bi $HhZ-B$C $ $ $ \$ $ $r   r/   c                   ^    e Zd Zdeee                  fdZdedefdZ	dedee         fdZ
dS )EngineCollectionenginesc                 (    d |D             | _         d S )Nc                     i | ]
}|j         |S r$   )r   .0engines     r   
<dictcomp>z-EngineCollection.__init__.<locals>.<dictcomp>:   s    BBBVBBBr   r5   )selfr5   s     r   __init__zEngineCollection.__init__9   s    BB'BBBr   r   r	   c                     || j         v S r)   r<   r=   r   s     r   	is_enginezEngineCollection.is_engine<   s    t|##r   c                     | j         |         S r)   r<   r@   s     r   getzEngineCollection.get?   s    |D!!r   N)r   r   r   r   r   r   r>   strboolrA   rC   r$   r   r   r4   r4   8   s        CT&\ 2 C C C C$c $d $ $ $ $" "V " " " " " "r   r4   c                       e Zd ZU  ed eD                       ZeZee	         e
d<   edee	         fd            Zej        deddfd            Zedeej        geegej        f         f         fd            ZdS )	PandasApplyc                 2    g | ]}t          |d           |S r+   )hasattrr8   s     r   
<listcomp>zPandasApply.<listcomp>E   s'    JJJF1I1IJJJJr   _enginer	   c                     | j         S r)   )rK   r=   s    r   r:   zPandasApply.engineI   s
    |r   valueNc                     | j                             |          st          | d          | j                             |          | _         | j        j        |i | d S )Nz' is not a supported pandas apply engine)supported_enginesrA   
ValueErrorrC   rK   r   )r=   rN   r   r   s       r   r:   zPandasApply.engineM   sk    %//66 	PNNNOOO-11%88D+F+++++r   c                     | j         j        S r)   )r:   r   rM   s    r   r   zPandasApply.applyT   s    {  r   )r   r   r   r4   _PANDAS_ENGINESrP   r&   rK   r   r   __annotations__propertyr:   setterrD   r   r"   r#   r   r$   r   r   rG   rG   C   s         ((JJoJJJ  )GT&\(((V    X ],C ,T , , , ], !xXxj")6K-L LM ! ! ! X! ! !r   rG   c                       e Zd Zd ZddZdS )PandasHandlerc                 |    t          d          | _        t                      | _        |                                  d S Nr0   )r   has_swifterrG   applier_set_default_apply_enginerM   s    r   r>   zPandasHandler.__init__Z   s5    %i00"}}&&(((((r   r	   Nc                 0    | j         rd| j        _        d S d S rZ   )r[   r\   r:   rM   s    r   r]   z'PandasHandler._set_default_apply_engine`   s'     	,"+DL	, 	,r   r   )r   r   r   r>   r]   r$   r   r   rX   rX   Y   s7        ) ) ), , , , , ,r   rX   r   funcr	   c                 P    t          j                            |           |          S r)   )_pandas_handlerr\   r   )r   r_   s     r   pandas_applyrb   h   s!    "((00666r   )typingr   r   r   r   r'   r"   !visions.backends.shared.utilitiesr   sr   r&   r/   rS   r4   rG   rX   ra   r#   rb   r$   r   r   <module>rf      s   ' ' ' ' ' ' ' ' ' '      8 8 8 8 8 8 	I 	I 	I 	I 	I 	I 	I 	I
 
 
 
 
6 
 
 
$ $ $ $ $F $ $ $$  /" " " " " " " "! ! ! ! ! ! ! !,	, 	, 	, 	, 	, 	, 	, 	,  -//7 7( 7ry 7 7 7 7 7 7r   