
    cMh              
      l   d dl mZ d dlZd dlZd dlmZ d dlZd dlmZ d dl	m
Z
 erd dlZi ddddd	d
ddddddddddddddddddddddd d!d"d#d$d%i d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4dd5d6d7dd8d9d:d;d<d=d>d?d@ddAdBdCdDd)dEdFdGdHZdIdJdKdLd$dMd4dNdOdP	Zd^dUZ	 	 	 d_d`d]ZdS )a    )annotationsN)TYPE_CHECKING)find_stack_level)Versionzadbc-driver-postgresqlz0.8.0zadbc-driver-sqlitebs4z4.11.2bloscz1.21.3
bottleneckz1.3.6zdataframe-api-compatz0.1.7fastparquetz	2022.12.0fsspecz	2022.11.0html5libz1.1
hypothesisz6.46.1gcsfsjinja2z3.1.2
lxml.etreez4.9.2
matplotlibz3.6.3numbaz0.56.4numexprz2.8.4odfpyz1.4.1openpyxlz3.1.0
pandas_gbqz0.19.0psycopg2z2.9.6pymysqlz1.0.2pyarrowz10.0.1
pyreadstatz1.2.0pytestz7.3.2zpython-calaminepyxlsbz1.0.10s3fsscipyz1.10.0
sqlalchemyz2.0.0tablesz3.8.0tabulatez0.9.0xarrayxlrdz2.0.1
xlsxwriterz3.0.5z2022.7z2.3.0z5.15.9)	zstandardtzdataqtpypyqt5beautifulsoup4
BottleneckJinja2lxmlz
pandas-gbq
SQLAlchemypytables)	r   r	   r   r   odfr   python_calaminer   r    moduletypes.ModuleTypereturnstrc                    t          | dd           }|t          d| j                   | j        dk    r|                                d         }|S )N__version__zCan't determine version for r   r   )getattrImportError__name__split)r1   versions     W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/compat/_optional.pyget_versionr=   J   sU    fmT22GJJJKKK*$$--//!$N     raisenameextraerrorsmin_version
str | Nonec                   |dv sJ t                               |           }||n| }d| d| d| d}	 t          j        |           }n&# t          $ r |dk    rt	          |          Y dS w xY w|                     d          d         }|| k    r|}t          j        |         }	n|}	||nt                              |          }
|
rt          |	          }|rst          |          t          |
          k     rSd	|
 d
| d| d}|dk    r*t          j        |t          t                                 dS |dk    rt	          |          dS |S )aI  
    Import an optional dependency.

    By default, if a dependency is missing an ImportError with a nice
    message will be raised. If a dependency is present, but too old,
    we raise.

    Parameters
    ----------
    name : str
        The module name.
    extra : str
        Additional text to include in the ImportError message.
    errors : str {'raise', 'warn', 'ignore'}
        What to do when a dependency is not found or its version is too old.

        * raise : Raise an ImportError
        * warn : Only applicable when a module's version is to old.
          Warns that the version is too old and returns None
        * ignore: If the module is not installed, return None, otherwise,
          return the module, even if the version is too old.
          It's expected that users validate the version locally when
          using ``errors="ignore"`` (see. ``io/html.py``)
    min_version : str, default None
        Specify a minimum version that is different from the global pandas
        minimum version required.
    Returns
    -------
    maybe_module : Optional[ModuleType]
        The imported module, when found and the version is correct.
        None is returned when the package is not found and `errors`
        is False, or when the package's version is too old and `errors`
        is ``'warn'`` or ``'ignore'``.
    >   warnr@   ignoreNzMissing optional dependency 'z'. z Use pip or conda to install .r@   r   zPandas requires version 'z' or newer of 'z' (version 'z' currently installed).rG   )
stacklevel)INSTALL_MAPPINGget	importlibimport_moduler8   r:   sysmodulesVERSIONSr=   r   warningsrG   UserWarningr   )rA   rB   rC   rD   package_nameinstall_namemsgr1   parentmodule_to_getminimum_versionr;   s               r<   import_optional_dependencyrZ   U   s   P 00000"&&t,,L#/#;<<L	7 	7 	7 	7 	7'3	7 	7 	7 (..   Wc"""tt ZZ__QF~~L1%0%<kk(,,vBVBVO m,, 	ww'''/*B*BBB>O > >F > >$> > >  /11   
 t7""!#&&&tMs   A	 	A,+A,)r1   r2   r3   r4   )r?   r@   N)rA   r4   rB   r4   rC   r4   rD   rE   )
__future__r   rM   rO   typingr   rR   pandas.util._exceptionsr   pandas.util.versionr   typesrQ   rK   r=   rZ    r>   r<   <module>ra      s   " " " " " "     



              4 4 4 4 4 4 ' ' ' ' ' ' LLL'g''' 
8' X	'
 '' G' ;' k' ' (' [' g' '' '' X'  w!'" W#' '$ %'& (''( )'* w+', x-'. '/'0 g1'2 w3'4 h5'6 K7'8 X9': ';'< g='> ?'@ kA'B GC'D 'E' 'F M' ' 'Z (
 
    "	S S S S S S Sr>   