o
    i                     @  sZ  d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm	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d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIiZ
dJdKdLdMdNd dOdPdQdRdS
ZdcdXdYZ	Z	[	dddedadbZdS )f    )annotationsN)find_stack_level)Versionbs4z4.9.3bloscz1.21.0
bottleneckz1.3.2brotliz0.7.0fastparquetz0.4.0fsspecz	2021.07.0html5libz1.1
hypothesisz6.13.0gcsfsjinja2z3.0.0
lxml.etreez4.6.3
matplotlibz3.3.2numbaz0.53.1numexprz2.7.3odfpyz1.4.1openpyxlz3.0.7
pandas_gbqz0.15.0psycopg2z2.8.6pymysqlz1.0.2pyarrowz1.0.1
pyreadstatz1.1.2pytestz6.0pyxlsbz1.0.8s3fsz	2021.08.0scipyz1.7.1snappyz0.6.0
sqlalchemyz1.4.16tablesz3.6.1tabulatez0.8.9xarrayz0.19.0xlrdz2.0.1xlwtz1.3.0
xlsxwriterz1.4.3	zstandardz0.15.2tzdataz2022.1beautifulsoup4
BottleneckbrotlipyJinja2lxmlz
pandas-gbqzpython-snappy
SQLAlchemypytables)
r   r   r   r   r   odfr   r   r   r    moduletypes.ModuleTypereturnstrc                 C  sn   t | dd }|d u rt | dd }|d u r*| jdkrdS | jdkr"dS td| j | jdkr5| d }|S )	N__version____VERSION__r    r   zCan't determine version for r   r   )getattr__name__ImportErrorsplit)r0   version r<   R/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/compat/_optional.pyget_versionE   s   


r>   r6   raisenameextraerrorsmin_version
str | Nonec                 C  s  |dv sJ t | }|dur|n| }d| d| d| d}zt| }W n ty8   |dkr5t|Y dS w | dd }|| krL|}tj| }	n|}	|durT|nt|}
|
rt	|	}|rt
|t
|
k rd	|
 d
| d| d}|dkrtj|tt d dS |dkrt||S )a9  
    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'``.
    >   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).rE   )
stacklevel)INSTALL_MAPPINGget	importlibimport_moduler9   r:   sysmodulesVERSIONSr>   r   warningsrE   UserWarningr   )r@   rA   rB   rC   package_nameinstall_namemsgr0   parentmodule_to_getminimum_versionr;   r<   r<   r=   import_optional_dependencyZ   sJ   )
rX   )r0   r1   r2   r3   )r6   r?   N)r@   r3   rA   r3   rB   r3   rC   rD   )
__future__r   rK   rM   typesrP   pandas.util._exceptionsr   pandas.util.versionr   rO   rI   r>   rX   r<   r<   r<   r=   <module>   s    	
 !"#*
