def verbosity(self, level: Union[str, int]): """ Sets logging configuration for scvi based on chosen level of verbosity. If "scvi" logger has no StreamHandler, add one. Else, set its level to `level`. Parameters ---------- level Sets "scvi" logging level to `level` force_terminal Rich logging option, set to False if piping to file output. """ self._verbosity = level scvi_logger.setLevel(level) if len(scvi_logger.handlers) == 0: console = Console(force_terminal=True) if console.is_jupyter is True: console.is_jupyter = False ch = RichHandler(show_path=False, console=console, show_time=False) formatter = logging.Formatter("%(message)s") ch.setFormatter(formatter) scvi_logger.addHandler(ch) else: scvi_logger.setLevel(level)
def verbosity(self, level: Union[str, int]): """ Sets logging configuration for scvi based on chosen level of verbosity. Sets "scvi" logging level to `level` If "scvi" logger has no StreamHandler, add one. Else, set its level to `level`. """ self._verbosity = level scvi_logger.setLevel(level) has_streamhandler = False for handler in scvi_logger.handlers: if isinstance(handler, RichHandler): handler.setLevel(level) logger.info( "'scvi' logger already has a StreamHandler, set its level to {}." .format(level)) has_streamhandler = True if not has_streamhandler: console = Console(force_terminal=True) if console.is_jupyter is True: console.is_jupyter = False ch = RichHandler(show_path=False, console=console, show_time=False) formatter = logging.Formatter("%(message)s") ch.setFormatter(formatter) scvi_logger.addHandler(ch) logger.debug( "Added StreamHandler with custom formatter to 'scvi' logger.")
from rich.console import Console from rich.logging import RichHandler # https://github.com/python-poetry/poetry/pull/2366#issuecomment-652418094 # https://github.com/python-poetry/poetry/issues/144#issuecomment-623927302 try: import importlib.metadata as importlib_metadata except ModuleNotFoundError: import importlib_metadata package_name = "scgen" __version__ = importlib_metadata.version(package_name) logger = logging.getLogger(__name__) # set the logging level logger.setLevel(logging.INFO) # nice logging outputs console = Console(force_terminal=True) if console.is_jupyter is True: console.is_jupyter = False ch = RichHandler(show_path=False, console=console, show_time=False) formatter = logging.Formatter("scGen: %(message)s") ch.setFormatter(formatter) logger.addHandler(ch) # this prevents double outputs logger.propagate = False __all__ = ["setup_anndata", "SCGEN", "SCGENVAE"]