
    OwgW                     V    d dl Z d dlZd dlZd dlmZmZ d dlmZ d Z	d Z
d Zd Zd Zy)    N)VERSIONSimport_optional_dependencyc                      d} t        j                  t        |       5 }t        d       d d d        t	        j
                  j                  t              sJ t        dd      }|J y # 1 sw Y   AxY w)Nz3Missing .*notapackage.* pip .* conda .* notapackagematchnotapackageignoreerrors)pytestraisesImportErrorr   
isinstancevalue__context__)r   exc_inforesults      \/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/test_optional_dependency.pytest_import_optionalr      sf    AE	{%	0 2H"=12 hnn00+>>>'hGF>>2 2s   A**A3c                  D    t        j                  d       t        d       y )Nxlrd)r   importorskipr        r   test_xlrd_version_fallbackr      s    
v&r   c                     d}t        j                  |      }d|_        |t        j                  |<   | j                  t        |d       d}t        j                  t        |      5  t        d       d d d        t        dd      }||u sJ t        j                  t              5  t        dd	      }d d d        |J d|_        t        d      }||u sJ t        j                  t        d
      5  t        dd       d d d        t        j                  t              5  t        ddd      }d d d        |J t        ddd      }|J y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   DxY w)N
fakemodule0.9.01.0.01Pandas requires .*1.0.0.* of .fakemodule.*'0.9.0'r   z0.8)min_versionwarnr
   zPandas requires version '1.1.0'z1.1.0)r   r!   r	   )types
ModuleType__version__sysmodulessetitemr   r   r   r   r   tmassert_produces_warningUserWarning)monkeypatchnamemoduler   r   s        r   test_bad_versionr/      sy   Dd#F FCKK$0?E	{%	0 1"<01 (%HFV		#	#K	0 I+LHI>> F'5FV	{*K	L F"<WEF 
	#	#K	0 
+W

 >>'X7F >>71 1I IF F
 
s0   &E&E3E("E4EE%(E14E=c                 4   d}t        j                  |      }d|_        |t        j                  |<   d}t        j                  |      }t        |||       |t        j                  | d| <   | j                  t        |d       d}t        j                  t        |      5  t        d       d d d        t        j                  t              5  t        dd	
      }d d d        J d|_        t        d      }||u sJ y # 1 sw Y   UxY w# 1 sw Y   2xY w)Nr   r   	submodule.r   r    r   zfakemodule.submoduler"   r
   )r#   r$   r%   r&   r'   setattrr(   r   r   r   r   r   r)   r*   r+   )r,   r-   r.   sub_namer1   r   r   s          r   test_submoduler5   D   s   Dd#F FCKKH  *IFHi((1CKK4&($%$0?E	{%	0 ;"#9:; 
	#	#K	0 S+,B6RS>> F'(>?FY; ;S Ss   "DDDDc                     d}t        j                  |      }|t        j                  |<   | j	                  t
        |d       t        j                  t        d      5  t        |       d d d        y # 1 sw Y   y xY w)Nr   r   zCan't determine .* fakemoduler   )
r#   r$   r&   r'   r(   r   r   r   r   r   )r,   r-   r.   s      r   test_no_version_raisesr7   ]   sc    Dd#FCKK$0	{*I	J )"4() ) )s   A22A;)r&   r#   r   pandas.compat._optionalr   r   pandas._testing_testingr)   r   r   r/   r5   r7   r   r   r   <module>r;      s2    
  
 '
#L2)r   