Source code for phasorpy.version

"""Version information."""

from __future__ import annotations

__version__ = '0.3'


[docs] def versions( *, sep: str = '\n', dash: str = '-', verbose: bool = False ) -> str: """Return versions of installed packages that phasorpy depends on. Parameters ---------- sep : str, optional Separator between version items. The default is a newline character. dash : str, optional Separator between module name and version. verbose : bool, optional Include paths to Python interpreter and modules. Example ------- >>> print(versions()) Python-3... phasorpy-0... numpy-... ... """ import os import sys if verbose: version_strings = [f'Python{dash}{sys.version} ({sys.executable})'] else: version_strings = [f'Python{dash}{sys.version.split()[0]}'] for module in ( 'phasorpy', 'numpy', 'tifffile', 'imagecodecs', 'lfdfiles', 'sdtfile', 'ptufile', 'matplotlib', 'scipy', 'skimage', 'sklearn', 'pandas', 'xarray', 'click', 'pooch', ): try: __import__(module) except ModuleNotFoundError: version_strings.append(f'{module.lower()}{dash}n/a') continue lib = sys.modules[module] ver = f"{module.lower()}{dash}{getattr(lib, '__version__', 'unknown')}" if verbose: try: path = getattr(lib, '__file__') except NameError: pass else: ver += f' ({os.path.dirname(path)})' version_strings.append(ver) return sep.join(version_strings)