示例#1
0
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"]
示例#2
0
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"]
示例#3
0
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"]
示例#4
0
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
示例#5
0
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"], "-")
示例#6
0
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"]
示例#7
0
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"]
示例#8
0
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"]
示例#9
0
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)
示例#10
0
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"]
示例#11
0
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"]
示例#12
0
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()
示例#13
0
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)
示例#14
0
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)
示例#15
0
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"], "") == []
示例#16
0
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,
示例#17
0
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"]
示例#18
0
        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
示例#19
0
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)