
    ˀh
                        d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
 d dlmZ erd dlmZ d dlmZ d dlmZ  ed	      Z G d
 dee         Z G d dee   ee         Zy)    )annotations)	Awaitable)TYPE_CHECKINGAnyGenericTypeVar)wrap_df)_GEVENT_AVAILABLE)Future)	Generator)PyDataFrameTc                  Z    e Zd ZdZd	dZ	 	 d
	 	 	 	 	 ddZedd       Zd	dZddZ	ddZ
y)_GeventDataFrameResult)_result_value_watcherc                    t         sd}t        |      ddlm} ddlm} d | _         |       | _         |       j                  j                         | _
        | j                  j                  | j                         y )Nzigevent is required for using LazyFrame.collect_async(gevent=True) orpolars.collect_all_async(gevent=True)r   )AsyncResult)get_hub)r
   ImportErrorgevent.eventr   
gevent.hubr   r   r   loopasync_r   start_watcher_callback)selfmsgr   r   s       p/var/www/html/wine-match-dev/backend/winematch-backend/venv/lib/python3.12/site-packages/polars/_utils/async_.py__init__z_GeventDataFrameResult.__init__   s`     8  c"",&JN"}	--/D223    Nc                <    | j                   j                  ||      S )N)blocktimeout)resultget)r   r$   r%   s      r    r'   z_GeventDataFrameResult.get'   s    
 {{UG<<r"   c                    | j                   *| j                  j                         s| j                          | j                  S N)r   r   readyr   r   s    r    r&   z_GeventDataFrameResult.result.   s3     ;;"4<<+=+=+?""$||r"   c                   t        | j                  t              r&| j                  j	                  | j                         n%| j                  j                  | j                         | j                  j                          y r)   )
isinstancer   	Exceptionr   set_exceptionsetr   closer+   s    r    r   z(_GeventDataFrameResult._watcher_callback6   sL    dkk9-LL&&t{{3LLT[[)r"   c                |    t        |t              st        |      }|| _        | j                  j                          y r)   r-   r.   r	   r   r   sendr   objs     r    	_callbackz _GeventDataFrameResult._callback=   s,    #y)#,Cr"   c                    t        |t              s|D cg c]  }t        |       }}|| _        | j                  j                          y c c}w r)   r3   r   r6   pydfs      r    _callback_allz$_GeventDataFrameResult._callback_allC   s?    #y)-01T74=1C1 2s   AreturnNone)TN)r$   boolr%   zfloat | int | Noner=   r   )r=   r   r6   zPyDataFrame | Exceptionr=   r>   r6   zlist[PyDataFrame] | Exceptionr=   r>   )__name__
__module____qualname__	__slots__r!   r'   propertyr&   r   r7   r;    r"   r    r   r      sX    1I4& &*== $= 
	=  r"   r   c                  0    e Zd ZdZddZddZd	dZd
dZy)_AioDataFrameResult)r   r&   c                f    ddl m}  |       | _        | j                  j                         | _        y )Nr   )get_event_loop)asynciorK   r   create_futurer&   )r   rK   s     r    r!   z_AioDataFrameResult.__init__M   s#    *"$	!%!8!8!:r"   c                6    | j                   j                         S r)   )r&   	__await__r+   s    r    rO   z_AioDataFrameResult.__await__S   s    {{$$&&r"   c                    t        |t              r1| j                  j                  | j                  j
                  |       y | j                  j                  | j                  j                  t        |             y r)   r-   r.   r   call_soon_threadsafer&   r/   
set_resultr	   r5   s     r    r7   z_AioDataFrameResult._callbackV   sP    c9%II**4;;+D+DcJII**&&r"   c           	        t        |t              r1| j                  j                  | j                  j
                  |       y | j                  j                  | j                  j                  |D cg c]  }t        |       c}       y c c}w r)   rQ   r9   s      r    r;   z!_AioDataFrameResult._callback_all_   s^    c9%II**4;;+D+DcJII**&&+./4//s   0B

Nr<   )r=   zGenerator[Any, None, T]r@   rA   )rB   rC   rD   rE   r!   rO   r7   r;   rG   r"   r    rI   rI   J   s    "I;'r"   rI   N)
__future__r   collections.abcr   typingr   r   r   r   polars._utils.wrapr	   polars.dependenciesr
   asyncio.futuresr   r   polars.polarsr   r   r   rI   rG   r"   r    <module>r\      sU    " % 7 7 & 1&)) CL4WQZ 4n)A,
 r"   