Skip to content

Commit f547ed0

Browse files
authored
Add libnetcdf, libhdf5, pydap and cfgrib to xarray.show_versions() (#2555)
* Add libnetcdf, libhdf5, pydap and cfgrib to xarray.show_versions() * More fixup * Show full Python version string
1 parent 575e97a commit f547ed0

File tree

1 file changed

+27
-4
lines changed

1 file changed

+27
-4
lines changed

xarray/util/print_versions.py

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
6682
def 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

Comments
 (0)