@@ -44,7 +44,7 @@ def get_sys_info():
4444 (sysname , nodename , release ,
4545 version , machine , processor ) = platform .uname ()
4646 blob .extend ([
47- ("python" , "%d.%d.%d.%s.%s" % sys .version_info [:] ),
47+ ("python" , sys .version ),
4848 ("python-bits" , struct .calcsize ("P" ) * 8 ),
4949 ("OS" , "%s" % (sysname )),
5050 ("OS-release" , "%s" % (release )),
@@ -63,9 +63,27 @@ def get_sys_info():
6363 return blob
6464
6565
66+ def netcdf_and_hdf5_versions ():
67+ libhdf5_version = None
68+ libnetcdf_version = None
69+ try :
70+ import netCDF4
71+ libhdf5_version = netCDF4 .__hdf5libversion__
72+ libnetcdf_version = netCDF4 .__netcdf4libversion__
73+ except ImportError :
74+ try :
75+ import h5py
76+ libhdf5_version = h5py .__hdf5libversion__
77+ except ImportError :
78+ pass
79+ return [('libhdf5' , libhdf5_version ), ('libnetcdf' , libnetcdf_version )]
80+
81+
6682def show_versions (as_json = False ):
6783 sys_info = get_sys_info ()
6884
85+ sys_info .extend (netcdf_and_hdf5_versions ())
86+
6987 deps = [
7088 # (MODULE_NAME, f(mod) -> mod version)
7189 ("xarray" , lambda mod : mod .__version__ ),
@@ -74,14 +92,15 @@ def show_versions(as_json=False):
7492 ("scipy" , lambda mod : mod .__version__ ),
7593 # xarray optionals
7694 ("netCDF4" , lambda mod : mod .__version__ ),
77- # ("pydap", lambda mod: mod.version.version ),
95+ ("pydap" , lambda mod : mod .__version__ ),
7896 ("h5netcdf" , lambda mod : mod .__version__ ),
7997 ("h5py" , lambda mod : mod .__version__ ),
8098 ("Nio" , lambda mod : mod .__version__ ),
8199 ("zarr" , lambda mod : mod .__version__ ),
82100 ("cftime" , lambda mod : mod .__version__ ),
83101 ("PseudonetCDF" , lambda mod : mod .__version__ ),
84102 ("rasterio" , lambda mod : mod .__version__ ),
103+ ("cfgrib" , lambda mod : mod .__version__ ),
85104 ("iris" , lambda mod : mod .__version__ ),
86105 ("bottleneck" , lambda mod : mod .__version__ ),
87106 ("cyordereddict" , lambda mod : mod .__version__ ),
@@ -107,10 +126,14 @@ def show_versions(as_json=False):
107126 mod = sys .modules [modname ]
108127 else :
109128 mod = importlib .import_module (modname )
110- ver = ver_f (mod )
111- deps_blob .append ((modname , ver ))
112129 except Exception :
113130 deps_blob .append ((modname , None ))
131+ else :
132+ try :
133+ ver = ver_f (mod )
134+ deps_blob .append ((modname , ver ))
135+ except Exception :
136+ deps_blob .append ((modname , 'installed' ))
114137
115138 if (as_json ):
116139 try :
0 commit comments