U
    Cvf                     @   sl   d 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 Zdd Z	ej
fddZed	krhe  dS )
z3Utility functions for printing version information.    Nc                  C   s^  g } d}t jdrt jdrz*tjddtjtjd}| \}}W n tk
r^   Y nBX |j	dkr|}z|
d}W n tk
r   Y nX | d	}| d
|f zt \}}}}}	}
| dtjfdtdd fd| fd| fd|	 fd|
 fdtj fdt jdd fdt jdd fdt  fg
 W n tk
rX   Y nX | S )z$Returns system information as a dictNz.gitxarrayzgit log --format="%H" -n 1 )stdoutstderrr   zutf-8"commitpythonzpython-bitsP   ZOSz
OS-releasemachine	processor	byteorderLC_ALLNoneLANGLOCALE)ospathisdir
subprocessPopensplitPIPEcommunicate	Exception
returncodedecode
ValueErrorstripappendplatformunameextendsysversionstructcalcsizer   environgetlocale	getlocale)Zblobr   pipeso_sysnameZ	_nodenamerelease_versionr   r    r1   >/tmp/pip-unpacked-wheel-h316xyqg/xarray/util/print_versions.pyget_sys_info   sL    

r3   c                  C   sp   d } d }zdd l }|j} |j}W n> tk
r^   zdd l}|jj} W n tk
rX   Y nX Y nX d| fd|fgS )Nr   Zlibhdf5Z	libnetcdf)netCDF4Z__hdf5libversion__Z__netcdf4libversion__ImportErrorh5pyr$   Zhdf5_version)Zlibhdf5_versionZlibnetcdf_versionr4   r6   r1   r1   r2   netcdf_and_hdf5_versions>   s    
r7   c              &   C   s  t  }z|t  W n0 tk
rF } ztd|  W 5 d}~X Y nX ddd fddd fdd	d fd
dd fddd fddd fddd fddd fddd fddd fddd fddd fddd fddd fd d!d fd"d#d fd$d%d fd&d'd fd(d)d fd*d+d fd,d-d fd.d/d fd0d1d fd2d3d fd4d5d fd6d7d fd8d9d fd:d;d fd<d=d fd>d?d fd@dAd fdBdCd fdDdEd fdFdGd fdHdId fdJdKd fg$}g }|D ]\}}z&|tjkrtj| }n
t|}W n$ tk
r   |	|df Y nBX z||}|	||f W n$ tk
rN   |	|dLf Y nX qtdM| dN tdO| dN |D ] \}	}
t|	 dP|
 | dN qptdQ| dN |D ] \}	}
t|	 dP|
 | dN qdS )Rzprint the versions of xarray and its dependencies

    Parameters
    ----------
    file : file-like, optional
        print to the given file-like object. Defaults to sys.stdout.
    z(Error collecting netcdf / hdf5 version: Nr   c                 S   s   | j S N__version__modr1   r1   r2   <lambda>a       zshow_versions.<locals>.<lambda>Zpandasc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   b   r>   Znumpyc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   c   r>   Zscipyc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   d   r>   r4   c                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   f   r>   Zpydapc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   g   r>   Zh5netcdfc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   h   r>   r6   c                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   i   r>   ZNioc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   j   r>   Zzarrc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   k   r>   Zcftimec                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   l   r>   Znc_time_axisc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   m   r>   ZPseudoNetCDFc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   n   r>   Zrasterioc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   o   r>   Zcfgribc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   p   r>   Zirisc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   q   r>   Z
bottleneckc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   r   r>   Zdaskc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   s   r>   Zdistributedc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   t   r>   Z
matplotlibc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   u   r>   Zcartopyc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   v   r>   Zseabornc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   w   r>   Znumbaggc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   x   r>   Zfsspecc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   y   r>   Zcupyc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   z   r>   Zpintc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   {   r>   sparsec                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   |   r>   Zfloxc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   }   r>   Znumpy_groupiesc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=   ~   r>   
setuptoolsc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=      r>   pipc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=      r>   Zcondac                 S   s   | j S r8   r9   r;   r1   r1   r2   r=      r>   Zpytestc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=      r>   Zmypyc                 S   s   t j| jS r8   )	importlibmetadatar$   __name__r;   r1   r1   r2   r=      r>   ZIPythonc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=      r>   Zsphinxc                 S   s   | j S r8   r9   r;   r1   r1   r2   r=      r>   	installedz
INSTALLED VERSIONS)filez------------------z:  )
r3   r"   r7   r   printr#   modulesrB   import_moduler   )rF   Zsys_infoedepsZ	deps_blobmodnameZver_fr<   verkstatr1   r1   r2   show_versionsP   s|     



































+rQ   __main__)__doc__rB   r)   r   r    r%   r   r#   r3   r7   r   rQ   rD   r1   r1   r1   r2   <module>   s   3U