o
    ‡e  ã                   @   s  d dl mZmZmZ d dlZd dlZddlmZ dd„ Zdd„ Z	e	Z
e	Ze	Ze	Ze	Ze	Ze	Ze	Ze	Ze	Ze	Zejr<ejne	ZejrDejne	ZejrLejne	ZejrTejne	Zejr\ejne	Zejsdejne	Z e	Z!e	Z"e	Z#e	Z$e	Z%e	Z&e	Z'ej(rzejZej)r€ejZ
ej*r†ejZej+r’ejZej)r’ejZej,r˜ejZej-r¶ejZej+r¤ejZej(rªejZej.r¶ejZej+r¶ejZej/r¼ejne	Z0ej1Z1ej2Z2da3d	d
„ Z4dd„ Z5dd„ Z6ej7rýejZ!ej+räejZ#ej-räejZ$ej8rðej9rðej:rðejZ&ej(rüejZ"ej-rüejZ%nejZ'ddd„Z;ddd„Z<dS )é    )Úabsolute_importÚprint_functionÚdivisionNé   )Úsysinfoc                 C   s   | S ©N© )Úfr   r   úGD:\Projects\ConvertPro\env\Lib\site-packages\gevent/testing/skipping.pyÚ	_identity   s   r   c                 C   s   | sJ ‚t S r   )r   ©Úreasonr   r   r
   Ú_do_not_skip   s   r   c                   C   s   t d u r
t ¡ d ua t S r   )Ú_has_psutil_processr   Zget_this_psutil_processr   r   r   r
   Ú_check_psutilo   s   r   c                    s   ‡ ‡fdd„}|S )Nc                    s`   t | tƒs| ‰t | ¡‡‡‡fdd„ƒ}|} | S | ‰ ˆ j‰t | ¡‡ ‡‡‡fdd„ƒ}|ˆ _| S )Nc                     s   ˆƒ st  ˆ¡‚ˆ | i |¤ŽS r   )ÚunittestÚSkipTest)ÚargsÚkwargs)r	   Ú	predicater   r   r
   Úskip_wrapperz   s   
zE_make_runtime_skip_decorator.<locals>.decorator.<locals>.skip_wrapperc                    s(   ˆƒ sdˆ _ ˆˆ _t ˆ¡‚ˆ| ƒ d S )NT)Z__unittest_skip__Z__unittest_skip_why__r   r   )Úself)ÚbaseÚ
base_setUpr   r   r   r
   ÚsetUpŽ   s
   
z>_make_runtime_skip_decorator.<locals>.decorator.<locals>.setUp)Ú
isinstanceÚtypeÚ	functoolsÚwrapsr   )Z	test_itemr   r   ©r   r   )r   r   r	   r
   Ú	decoratorw   s   
õz/_make_runtime_skip_decorator.<locals>.decoratorr   )r   r   r    r   r   r
   Ú_make_runtime_skip_decoratorv   s   "r!   c                 C   s   d|  } t | tƒS )Nzpsutil not available: )r!   r   r   r   r   r
   ÚskipWithoutPSUtil›   s   
r"   Ú c                    s:   dˆ f }|s
|}n|d | d }‡ fdd„}t ||ƒS )NzRequires resource %rz (ú)c                     s   ddl m}  |  ¡  ˆ ¡S )Nr   ©Ú	resources)r#   r&   Zensure_setup_resourcesZis_resource_enabledr%   ©Úresourcer   r
   r   ½   s   z&skipWithoutResource.<locals>.predicate)r!   )r(   r   Úrequiresr   r   r'   r
   ÚskipWithoutResource´   s   

r*   c                 C   s
   t d| ƒS )NÚnetwork)r*   r   r   r   r
   ÚskipWithoutExternalNetworkÃ   s   
r,   )r#   )=Ú
__future__r   r   r   r   r   r#   r   r   r   Z	skipOnMacZskipOnMacOnCIZskipOnWindowsZskipOnAppVeyorZskipOnCIZskipOnManylinuxZ
skipOnPyPyZskipOnPyPyOnCIZskipOnPyPy3OnCIZskipOnPyPy3ZskipOnPyPyOnWindowsÚPY3ÚskipZ	skipOnPy3ZPY37Z
skipOnPy37ZPY310ZskipOnPy310ZPY312ZskipOnPy312ZPURE_PYTHONZskipOnPurePythonZskipWithCExtensionsZskipOnLibuvZskipOnLibuvOnWinZskipOnLibuvOnCIZskipOnLibuvOnCIOnPyPyZskipOnLibuvOnPyPyOnWinZskipOnLibuvOnTravisOnCPython27ZskipOnLibevZWINZOSXZRUNNING_ON_APPVEYORZRUNNING_ON_CIZRUNNING_ON_MANYLINUXZPYPYZPYPY3ZRUN_COVERAGEZskipUnderCoverageZskipIfZ
skipUnlessr   r   r!   r"   ZLIBUVZRUNNING_ON_TRAVISZCPYTHONZ	PY27_ONLYr*   r,   r   r   r   r
   Ú<module>   sš   %€
