3
Z_ð]à  ã               @   s6   d Z ddlZddlmZ ddlZdd„ Zd
dd„ZdS )z€A wait callback to allow psycopg2 cooperation with eventlet.

Use `make_psycopg_green()` to enable eventlet support in Psycopg.
é    N)Ú
extensionsc               C   s&   t tdƒstdtj ƒ‚tjtƒ dS )z?Configure Psycopg to be used with eventlet in non-blocking way.Úset_wait_callbackzAsupport for coroutines not available in this Psycopg version (%s)N)Úhasattrr   ÚImportErrorÚpsycopg2Ú__version__r   Úeventlet_wait_callback© r	   r	   úE/tmp/pip-build-yz_zf6az/eventlet/eventlet/support/psycopg2_patcher.pyÚmake_psycopg_green!   s
    

r   é   c             C   sn   xh| j ƒ }|tjkrP q|tjkr8tjj| jƒ dd� q|tjkrXtjj| jƒ dd� qt	j
d| ƒ‚qW dS )z>A wait callback useful to allow eventlet to work with Psycopg.T)Úread)ÚwritezBad result from poll: %rN)Úpollr   ZPOLL_OKZ	POLL_READÚeventletZhubsZ
trampolineÚfilenoZ
POLL_WRITEr   ZOperationalError)ÚconnÚtimeoutÚstater	   r	   r
   r   +   s    


r   éÿÿÿÿ)r   )Ú__doc__r   r   Zeventlet.hubsr   r   r   r	   r	   r	   r
   Ú<module>   s
   
