--- a +++ b/dosma/utils/collect_env.py @@ -0,0 +1,80 @@ +import os +import sys + +import h5py +import nibabel +import nipype +import numpy as np +import pandas as pd +import pydicom +import scipy as sp +import skimage +from tabulate import tabulate + +__all__ = ["collect_env_info"] + + +def collect_env_info(): + """Collect environment information for reporting issues. + + Run this function when reporting issues on Github. + """ + data = [] + data.append(("sys.platform", sys.platform)) + data.append(("Python", sys.version.replace("\n", ""))) + data.append(("numpy", np.__version__)) + + try: + import dosma # noqa + + data.append(("dosma", dosma.__version__ + " @" + os.path.dirname(dosma.__file__))) + except ImportError: + data.append(("dosma", "failed to import")) + + # Required packages + data.append(("h5py", h5py.__version__)) + data.append(("nibabel", nibabel.__version__)) + data.append(("nipype", nipype.__version__)) + data.append(("pandas", pd.__version__)) + data.append(("pydicom", pydicom.__version__)) + data.append(("scipy", sp.__version__)) + data.append(("skimage", skimage.__version__)) + + # Optional packages + try: + import cupy + + data.append(("cupy", cupy.__version__)) + except ImportError: + pass + + try: + import tensorflow + + data.append(("tensorflow", tensorflow.__version__)) + except ImportError: + pass + + try: + import keras + + data.append(("keras", keras.__version__)) + except ImportError: + pass + + try: + import SimpleITK as sitk + + data.append(("SimpleITK", sitk.__version__)) + except ImportError: + pass + + try: + import sigpy + + data.append(("sigpy", sigpy.__version__)) + except ImportError: + pass + + env_str = tabulate(data) + return env_str