a
    Pf                     @  s   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
 e
r`d dlmZ d dlmZmZmZ dddd	Zd
dddZd
dddZddddddZdS )    )annotationsN)TYPE_CHECKING)JSONSerializable)VERSIONSget_versionimport_optional_dependencyz
str | None)returnc                  C  sD   zddl m}  | W S  ty>   ddlm} | }|d  Y S 0 dS )za
    Use vendored versioneer code to get git hash, which handles
    git worktree correctly.
    r   )__git_version__)get_versionszfull-revisionidN)Zpandas._version_mesonr	   ImportErrorZpandas._versionr
   )r	   r
   versions r   T/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/util/_print_versions.py_get_commit_hash   s    r   zdict[str, JSONSerializable]c                  C  sr   t  } t \}}t ddd tjD t	dd | j
| j| j| j| jtjtjdtjd||dd	S )
zG
    Returns system information as a JSON serializable dictionary.
    .c                 S  s   g | ]}t |qS r   )str).0ir   r   r   
<listcomp>0       z!_get_sys_info.<locals>.<listcomp>P   LC_ALLLANG)language-codeencoding)commitpythonzpython-bitsZOSz
OS-releaseVersionmachine	processor	byteorderr   r   LOCALE)platformunamelocale	getlocaler   joinsysversion_infostructcalcsizesystemreleaseversionr   r    r!   osenvironget)uname_resultlanguage_coder   r   r   r   _get_sys_info(   s    

r4   c                  C  sH   g d} |  tt i }| D ]$}t|dd}|r:t|nd||< q|S )zK
    Returns dependency information as a JSON serializable dictionary.
    )ZpandasnumpyZpytzZdateutil
setuptoolspipCythonZpytestZ
hypothesisZsphinxZbloscZfeatherZ
xlsxwriterz
lxml.etreeZhtml5libZpymysqlZpsycopg2Zjinja2ZIPythonZpandas_datareaderignore)errorsN)extendlistr   r   r   )depsresultmodnamemodr   r   r   _get_dependency_info>   s    rA   Fz
str | boolNone)as_jsonr   c           
      C  sN  t  }t }| r||d}| du r:tjtj|dd nNt| tsHJ t	j
| ddd }tj||dd W d   n1 s~0    Y  nt|d	 tsJ |d	 d
 }|d	 d }| d| |d	< tdd |D }td td | D ]"\}}	t|d| d|	  qtd | D ]$\}}	t|d| d|	  q$dS )a  
    Provide useful information, important for bug reports.

    It comprises info about hosting operation system, pandas version,
    and versions of other installed relative packages.

    Parameters
    ----------
    as_json : str or bool, default False
        * If False, outputs info in a human readable form to the console.
        * If str, it will be considered as a path to a file.
          Info will be written to that file in JSON format.
        * If True, outputs info in JSON format to the console.

    Examples
    --------
    >>> pd.show_versions()  # doctest: +SKIP
    Your output may look something like this:
    INSTALLED VERSIONS
    ------------------
    commit           : 37ea63d540fd27274cad6585082c91b1283f963d
    python           : 3.10.6.final.0
    python-bits      : 64
    OS               : Linux
    OS-release       : 5.10.102.1-microsoft-standard-WSL2
    Version          : #1 SMP Wed Mar 2 00:30:59 UTC 2022
    machine          : x86_64
    processor        : x86_64
    byteorder        : little
    LC_ALL           : None
    LANG             : en_GB.UTF-8
    LOCALE           : en_GB.UTF-8
    pandas           : 2.0.1
    numpy            : 1.24.3
    ...
    )r,   dependenciesT   )indentwbutf8)r   Nr"   r   r   r   c                 s  s   | ]}t |V  qd S )N)len)r   xr   r   r   	<genexpr>   r   z show_versions.<locals>.<genexpr>z
INSTALLED VERSIONSz------------------<z:  )r4   rA   r(   stdout
writelinesjsondumps
isinstancer   codecsopendumpdictmaxprintitems)
rC   Zsys_infor=   jfr3   r   maxlenkvr   r   r   show_versionsg   s*    %
0r_   )F)
__future__r   rS   rP   r%   r/   r#   r*   r(   typingr   Zpandas._typingr   Zpandas.compat._optionalr   r   r   r   r4   rA   r_   r   r   r   r   <module>   s   )