def test_argument_default(): cli = Command( "cli", add_help_option=False, params=[ Argument(["a"], type=Choice(["a"]), default="a"), Argument(["b"], type=Choice(["b"]), default="b"), ], ) assert _get_words(cli, [], "") == ["a"] assert _get_words(cli, ["a"], "b") == ["b"] # ignore type validation assert _get_words(cli, ["x"], "b") == ["b"]
def test_argument_order(): cli = Command( "cli", params=[ Argument(["plain"]), Argument(["c1"], type=Choice(["a1", "a2", "b"])), Argument(["c2"], type=Choice(["c1", "c2", "d"])), ], ) # first argument has no completions assert _get_words(cli, [], "") == [] assert _get_words(cli, [], "a") == [] # first argument filled, now completion can happen assert _get_words(cli, ["x"], "a") == ["a1", "a2"] assert _get_words(cli, ["x", "b"], "d") == ["d"]
def test_argument_nargs(): cli = Command( "cli", params=[ Argument(["x"], type=Choice(["a", "b"]), nargs=2), Argument(["y"], type=Choice(["c", "d"]), nargs=-1), Option(["-z"]), ], ) assert _get_words(cli, [], "") == ["a", "b"] assert _get_words(cli, ["a"], "") == ["a", "b"] assert _get_words(cli, ["a", "b"], "") == ["c", "d"] assert _get_words(cli, ["a", "b", "c"], "") == ["c", "d"] assert _get_words(cli, ["a", "b", "c", "d"], "") == ["c", "d"] assert _get_words(cli, ["a", "-z", "1"], "") == ["a", "b"] assert _get_words(cli, ["a", "-z", "1", "b"], "") == ["c", "d"]
def test_choice_case_sensitive(value, expect): cli = Command( "cli", params=[Option(["-a"], type=Choice(["Au", "al", "Bc"], case_sensitive=value))], ) completions = _get_words(cli, ["-a"], "a") assert completions == expect
def test_option_multiple(): cli = Command( "type", params=[Option(["-m"], type=Choice(["a", "b"]), multiple=True), Option(["-f"])], ) assert _get_words(cli, ["-m"], "") == ["a", "b"] assert "-m" in _get_words(cli, ["-m", "a"], "-") assert _get_words(cli, ["-m", "a", "-m"], "") == ["a", "b"] # used single options aren't suggested again assert "-c" not in _get_words(cli, ["-c", "f"], "-")
def test_choice_conflicting_prefix(): cli = Command( "cli", params=[ Option(["-c"], type=Choice(["!1", "!2", "+3"])), Option(["+p"], is_flag=True), ], ) assert _get_words(cli, ["-c"], "") == ["!1", "!2", "+3"] assert _get_words(cli, ["-c"], "+") == ["+p"]
def test_option_flag(): cli = Command( "cli", add_help_option=False, params=[ Option(["--on/--off"]), Argument(["a"], type=Choice(["a1", "a2", "b"])), ], ) assert _get_words(cli, ["type"], "--") == ["--on", "--off"] # flag option doesn't take value, use choice argument assert _get_words(cli, ["x", "--on"], "a") == ["a1", "a2"]
def test_double_dash(): cli = Command( "cli", add_help_option=False, params=[ Option(["--opt"]), Argument(["name"], type=Choice(["name", "--", "-o", "--opt"])), ], ) assert _get_words(cli, [], "-") == ["--opt"] assert _get_words(cli, ["value"], "-") == ["--opt"] assert _get_words(cli, [], "") == ["name", "--", "-o", "--opt"] assert _get_words(cli, ["--"], "") == ["name", "--", "-o", "--opt"]
def main() -> None: current_version = get_current_version() typer.secho(f"Current version: {current_version}", bold=True) bump_type: BumpType = typer.prompt( typer.style("Release type ?", fg=typer.colors.BLUE, bold=True), type=Choice(list(BumpType.__members__)), default=BumpType.patch, show_choices=True, ) new_version = get_new_version(current_version, bump_type) release_notes = get_release_notes() summarize(current_version, new_version, bump_type, release_notes) save_release_notes(release_notes) update_pyproject(current_version, new_version) update_changelog(current_version, new_version) create_version_file(new_version) typer.confirm("Additionnal release commit files staged ?", abort=True, default=True)
def test_hidden(): cli = Group( "cli", commands=[ Command( "hidden", add_help_option=False, hidden=True, params=[ Option(["-a"]), Option(["-b"], type=Choice(["a", "b"]), hidden=True), ], ) ], ) assert "hidden" not in _get_words(cli, [], "") assert "hidden" not in _get_words(cli, [], "hidden") assert _get_words(cli, ["hidden"], "-") == ["-a"] assert _get_words(cli, ["hidden", "-b"], "") == ["a", "b"]
def test_type_choice(): cli = Command("cli", params=[Option(["-c"], type=Choice(["a1", "a2", "b"]))]) assert _get_words(cli, ["-c"], "") == ["a1", "a2", "b"] assert _get_words(cli, ["-c"], "a") == ["a1", "a2"] assert _get_words(cli, ["-c"], "a2") == ["a2"]
import click from click.types import Choice from cos.services.svc_clean import Clean @click.command() @click.option("-d", "--directory", type=str, default=".", help="The directory to clean", show_default=True) @click.option( "-ct", "--clean-type", type=Choice(["ext", "type"], case_sensitive=False), default="ext", show_default=True, help="ext: Group files by extension \t\t\t type: Group files by type") def cli(directory: str, clean_type: str) -> None: """Clean / Sort directory""" clean = Clean(directory, clean_type) clean.clean()
from d3a_interface.constants_limits import ConstSettings from d3a.d3a_core.util import IntervalType, available_simulation_scenarios, \ read_settings_from_file, update_advanced_settings, convert_str_to_pauseafter_intervall, \ DateType from d3a.d3a_core.simulation import run_simulation from d3a.constants import TIME_ZONE, DATE_TIME_FORMAT, DATE_FORMAT, TIME_FORMAT from d3a_interface.settings_validators import validate_global_settings log = getLogger(__name__) @click.group(name='d3a', cls=DefaultGroup, default='run', default_if_no_args=True, context_settings={'max_content_width': 120}) @click.option('-l', '--log-level', type=Choice(list(logging._nameToLevel.keys())), default='INFO', show_default=True, help="Log level") def main(log_level): handler = logging.StreamHandler() handler.setLevel(log_level) handler.setFormatter( ColoredFormatter( "%(log_color)s%(asctime)s.%(msecs)03d %(levelname)-8s (%(lineno)4d) %(name)-30s: " "%(message)s%(reset)s", datefmt="%H:%M:%S" ) ) root_logger = logging.getLogger() root_logger.setLevel(log_level) root_logger.addHandler(handler)
from d3a.d3a_core.simulation import run_simulation from d3a.constants import TIME_ZONE, DATE_TIME_FORMAT, DATE_FORMAT, TIME_FORMAT from d3a_interface.settings_validators import validate_global_settings log = getLogger(__name__) @click.group(name='d3a', cls=DefaultGroup, default='run', default_if_no_args=True, context_settings={'max_content_width': 120}) @click.option('-l', '--log-level', type=Choice(list(logging._nameToLevel.keys())), default='INFO', show_default=True, help="Log level") def main(log_level): handler = logging.StreamHandler() handler.setLevel(log_level) handler.setFormatter( ColoredFormatter( "%(log_color)s%(asctime)s.%(msecs)03d %(levelname)-8s (%(lineno)4d) %(name)-30s: " "%(message)s%(reset)s", datefmt="%H:%M:%S")) root_logger = logging.getLogger() root_logger.setLevel(log_level) root_logger.addHandler(handler)
def test_option_nargs(): cli = Command("cli", params=[Option(["-c"], type=Choice(["a", "b"]), nargs=2)]) assert _get_words(cli, ["-c"], "") == ["a", "b"] assert _get_words(cli, ["-c", "a"], "") == ["a", "b"] assert _get_words(cli, ["-c", "a", "b"], "") == []
def find_first_available_server(): for module in _servers: try: return get_server(module) except ImportError: pass return None @command() @option( "-S", "--server", type=Choice(_servers), help="Specify which WSGI server to use. Pick the first available if none is set", ) @option( "-h", "--host", default="0.0.0.0", show_default=True, help="Hostname or IP address on which to listen", cls=MutuallyExclusiveOption, mutually_exclusive=("socket",), ) @option( "-p", "--port", default=5722,
def test_choice_special_characters(): cli = Command("cli", params=[Option(["-c"], type=Choice(["!1", "!2", "+3"]))]) assert _get_words(cli, ["-c"], "") == ["!1", "!2", "+3"] assert _get_words(cli, ["-c"], "!") == ["!1", "!2"] assert _get_words(cli, ["-c"], "!2") == ["!2"]
elif e.code == 10014: sys.exit('Error: no need to release long term occupied instance.') else: raise e print('Successfully released instance.') @cli.group() def dataset(): pass @dataset.command() @click.argument('file') @click.option('-n', '--name', default='') @click.option('-r', '--range', type=Choice(['public', 'personal']), default='personal') @click.option('-d', '--description', default='') @click.option('-d', '--proxy', is_flag=True, default=False) def upload(file, name, range, description, proxy): if not proxy: os.environ['HTTP_PROXY'] = '' os.environ['HTTPS_PROXY'] = '' os.environ['http_proxy'] = '' os.environ['https_proxy'] = '' if not (file.endswith(".zip") or file.endswith(".tar.gz")): sys.exit('Error: uploading file should be one of .zip or .tar.gz type') filepath = Path(file) total_size = filepath.stat().st_size if not filepath.exists(): sys.exit('Error: file not exists') name = name or filepath.name
from gsy_framework.exceptions import GSyException from gsy_framework.utils import iterate_over_all_modules import gsy_e_sdk import gsy_e_sdk.setups as setups from gsy_e_sdk.constants import SETUP_FILE_PATH from gsy_e_sdk.utils import domain_name_from_env, websocket_domain_name_from_env, \ simulation_id_from_env, read_simulation_config_file log = getLogger(__name__) gsy_e_sdk_path = os.path.dirname(inspect.getsourcefile(gsy_e_sdk)) @click.group(name="gsy-e-sdk", cls=DefaultGroup, default="run", default_if_no_args=True, context_settings={"max_content_width": 120}) @click.option("-l", "--log-level", type=Choice(list(logging._nameToLevel.keys())), default="ERROR", show_default=True, help="Log level") def main(log_level): handler = logging.StreamHandler() handler.setLevel(log_level) handler.setFormatter( ColoredFormatter( "%(log_color)s%(asctime)s.%(msecs)03d %(levelname)-8s (%(lineno)4d) %(name)-30s: " "%(message)s%(reset)s", datefmt="%H:%M:%S" ) ) root_logger = logging.getLogger() root_logger.setLevel(log_level) root_logger.addHandler(handler)