Source code for fury
"""Init file for visualization package."""
from os.path import dirname
import sys
import warnings
import lazy_loader as lazy
from fury.optpkg import optional_package
from fury.pkg_info import __version__, pkg_commit_hash
__getattr__, __dir__, __all__ = lazy.attach_stub(__name__, __file__)
__all__ += [
"__version__",
"disable_warnings",
"enable_warnings",
"get_info",
]
gfx, _, _ = optional_package("pygfx", min_version="0.14.0")
gfx_version = gfx.__version__
[docs]
def get_info(verbose=False):
"""
Return dict describing the context of this package.
Parameters
----------
verbose : bool, optional
If `True`, print the information to stdout.
Returns
-------
dict
With named parameters of interest.
"""
import numpy
import scipy
mpl, have_mpl, _ = optional_package("matplotlib")
dipy, have_dipy, _ = optional_package("dipy")
install_type, commit_hash = pkg_commit_hash(dirname(__file__))
info = {
"fury_version": __version__,
"pkg_path": dirname(__file__),
"commit_hash": commit_hash,
"sys_version": sys.version,
"sys_executable": sys.executable,
"sys_platform": sys.platform,
"numpy_version": numpy.__version__,
"scipy_version": scipy.__version__,
"pygfx_version": gfx_version,
}
if have_mpl:
info["matplotlib_version"] = mpl.__version__
if have_dipy:
info["dipy_version"] = dipy.__version__
if verbose:
print("\n".join([f"{k}: {v}" for k, v in info.items()]))
return info
[docs]
def enable_warnings(warnings_origin=None):
"""
Enable global warnings.
Parameters
----------
warnings_origin : list
List origin ['all', 'fury', 'matplotlib', ...].
"""
warnings_origin = warnings_origin or ("all",)
if "all" in warnings_origin:
warnings.filterwarnings("default")
[docs]
def disable_warnings(warnings_origin=None):
"""
Disable global warnings.
Parameters
----------
warnings_origin : list
List origin ['all', 'fury', 'matplotlib', ...].
"""
warnings_origin = warnings_origin or ("all",)
if "all" in warnings_origin:
warnings.filterwarnings("ignore")
# Disable warnings in release mode
if "post" not in __version__ and "dev" not in __version__:
disable_warnings()
# Suppress known NumPy future warning
warnings.filterwarnings(
"ignore",
message=(
"Conversion of the second argument of issubdtype from `complex` to"
" `np.complexfloating` is deprecated.*"
),
category=FutureWarning,
)