Source code for bsb._options

"""
This module registers all the options that the BSB provides out of the box. They are
registered using plugin registration. See `setup.py` for the setuptools metadata.
"""

from .option import BsbOption
from .reporting import report


[docs] class VerbosityOption( BsbOption, name="verbosity", cli=("v", "verbosity"), project=("verbosity",), env=("BSB_VERBOSITY",), script=("verbosity",), ): """ Set the verbosity of the package. Verbosity 0 is completely silent, 1 is default, 2 is verbose, 3 is progress and 4 is debug. """
[docs] def setter(self, value): return int(value)
[docs] def getter(self, value): return int(value)
[docs] def get_default(self): return 1
class ForceFlag( BsbOption, name="force", cli=("f", "force"), env=("BSB_FOOTGUN_MODE",), script=("sudo",), flag=True, ): """ Enable sudo mode. Will execute destructive actions without confirmation, error or user interaction. """ def setter(self, value): return bool(value) def get_default(self): return False class VersionFlag( BsbOption, name="version", script=("version",), cli=("version",), readonly=True, action=True, ): """ Return the version of the package. """ def get_default(self): from . import __version__ return __version__ def action(self, namespace): report("bsb " + str(self.get()), level=1) class ConfigOption( BsbOption, name="config", cli=("c", "config"), script=("config",), project=("config",), env=("BSB_CONFIG_FILE",), ): """ Specify the config file to use when creating new networks through the CLI. """ def get_default(self): return "network_configuration.json"
[docs] class ProfilingOption( BsbOption, name="profiling", cli=("pr", "profiling"), project=("profiling",), script=("profiling",), env=("BSB_PROFILING",), flag=True, ): """ Enables profiling. """
[docs] def setter(self, value): from .profiling import activate_session, get_active_session if value: activate_session() else: get_active_session().stop() return bool(value)
[docs] def getter(self, value): return bool(value)
[docs] def get_default(self): return False
class DebugPoolFlag( BsbOption, name="debug_pool", cli=("dp", "debug_pool"), project=("debug_pool",), env=("BSB_DEBUG_POOL",), script=("debug_pool",), flag=True, ): """ Debug job pools """ def setter(self, value): return bool(value) def get_default(self): return False def verbosity(): return VerbosityOption def version(): return VersionFlag def sudo(): return ForceFlag def config(): return ConfigOption def profiling(): return ProfilingOption def debug_pool(): return DebugPoolFlag