Source code for utilipy.imports.setup_package

# -*- coding: utf-8 -*-
# Licensed under a 3-clause BSD style license - see LICENSE.rst

"""Setup for :mod:`~utilipy.imports`."""


###############################################################################
# IMPORTS

from __future__ import absolute_import

# BUILT-IN
import typing as T
from contextlib import contextmanager

# THIRD PARTY
from astropy import config as _config

###############################################################################
# CODE
###############################################################################


class Conf(_config.ConfigNamespace):
    """Configuration parameters for `utilipy.imports`."""

    verbose_imports = _config.ConfigItem(
        True,
        description="imports import verbosity configuration",
        cfgtype="boolean(default=True)",
    )


conf = Conf()
# /class


# -------------------------------------------------------------------


[docs]@contextmanager def use_import_verbosity(verbosity: T.Optional[bool] = None): """Set import verbosity only inside a with block. Wrapper for conf.set_temp('verbose_imports', verbosity). Parameters ---------- verbosity : bool, Optional the import verbosity, None (default) doesn't change value. Yields ------ :class:`~utilipy.imports.conf` """ with conf.set_temp("verbose_imports", verbosity): # use existing system. yield conf return
# /def ############################################################################### # INFO __all__ = [ "conf", # configuration instance "use_import_verbosity", # contextmanager ] ############################################################################### # END