Ejemplo n.º 1
0

def _make_argparser(filenames_help):
    parser = argparse.ArgumentParser()
    parser.add_argument('filenames', nargs='*', help=filenames_help)
    parser.add_argument('-V', '--version', action='version', version=C.VERSION)
    return parser


MANIFEST_HOOK_DICT = cfgv.Map(
    'Hook',
    'id',
    cfgv.Required('id', cfgv.check_string),
    cfgv.Required('name', cfgv.check_string),
    cfgv.Required('entry', cfgv.check_string),
    cfgv.Required('language', cfgv.check_one_of(all_languages)),
    cfgv.Optional('alias', cfgv.check_string, ''),
    cfgv.Optional(
        'files',
        cfgv.check_and(cfgv.check_string, cfgv.check_regex),
        '',
    ),
    cfgv.Optional(
        'exclude',
        cfgv.check_and(cfgv.check_string, cfgv.check_regex),
        '^$',
    ),
    cfgv.Optional('types', cfgv.check_array(check_type_tag), ['file']),
    cfgv.Optional('exclude_types', cfgv.check_array(check_type_tag), []),
    cfgv.Optional(
        'additional_dependencies',
Ejemplo n.º 2
0

def _make_argparser(filenames_help):
    parser = argparse.ArgumentParser()
    parser.add_argument('filenames', nargs='*', help=filenames_help)
    parser.add_argument('-V', '--version', action='version', version=C.VERSION)
    return parser


MANIFEST_HOOK_DICT = cfgv.Map(
    'Hook', 'id',

    cfgv.Required('id', cfgv.check_string),
    cfgv.Required('name', cfgv.check_string),
    cfgv.Required('entry', cfgv.check_string),
    cfgv.Required('language', cfgv.check_one_of(all_languages)),
    cfgv.Optional('alias', cfgv.check_string, ''),

    cfgv.Optional(
        'files', cfgv.check_and(cfgv.check_string, cfgv.check_regex), '',
    ),
    cfgv.Optional(
        'exclude', cfgv.check_and(cfgv.check_string, cfgv.check_regex), '^$',
    ),
    cfgv.Optional('types', cfgv.check_array(check_type_tag), ['file']),
    cfgv.Optional('exclude_types', cfgv.check_array(check_type_tag), []),

    cfgv.Optional(
        'additional_dependencies', cfgv.check_array(cfgv.check_string), [],
    ),
    cfgv.Optional('args', cfgv.check_array(cfgv.check_string), []),
Ejemplo n.º 3
0
def test_check_one_of():
    with pytest.raises(ValidationError) as excinfo:
        check_one_of((1, 2))(3)
    assert excinfo.value.error_msg == 'Expected one of 1, 2 but got: 3'
Ejemplo n.º 4
0
def test_check_one_of_ok():
    check_one_of((1, 2))(2)
Ejemplo n.º 5
0
def _make_argparser(filenames_help):
    parser = argparse.ArgumentParser()
    parser.add_argument('filenames', nargs='*', help=filenames_help)
    parser.add_argument('-V', '--version', action='version', version=C.VERSION)
    return parser


MANIFEST_HOOK_DICT = cfgv.Map(
    'Hook', 'id',

    cfgv.Required('id', cfgv.check_string),
    cfgv.Required('name', cfgv.check_string),
    cfgv.Required('entry', cfgv.check_string),
    cfgv.Required(
        'language',
        cfgv.check_and(cfgv.check_string, cfgv.check_one_of(all_languages)),
    ),

    cfgv.Optional(
        'files', cfgv.check_and(cfgv.check_string, cfgv.check_regex), '',
    ),
    cfgv.Optional(
        'exclude', cfgv.check_and(cfgv.check_string, cfgv.check_regex), '^$',
    ),
    cfgv.Optional('types', cfgv.check_array(check_type_tag), ['file']),
    cfgv.Optional('exclude_types', cfgv.check_array(check_type_tag), []),

    cfgv.Optional(
        'additional_dependencies', cfgv.check_array(cfgv.check_string), [],
    ),
    cfgv.Optional('args', cfgv.check_array(cfgv.check_string), []),
Ejemplo n.º 6
0

def _make_argparser(filenames_help):
    parser = argparse.ArgumentParser()
    parser.add_argument('filenames', nargs='*', help=filenames_help)
    parser.add_argument('-V', '--version', action='version', version=C.VERSION)
    return parser


MANIFEST_HOOK_DICT = cfgv.Map(
    'Hook', 'id',

    cfgv.Required('id', cfgv.check_string),
    cfgv.Required('name', cfgv.check_string),
    cfgv.Required('entry', cfgv.check_string),
    cfgv.Required('language', cfgv.check_one_of(all_languages)),

    cfgv.Optional(
        'files', cfgv.check_and(cfgv.check_string, cfgv.check_regex), '',
    ),
    cfgv.Optional(
        'exclude', cfgv.check_and(cfgv.check_string, cfgv.check_regex), '^$',
    ),
    cfgv.Optional('types', cfgv.check_array(check_type_tag), ['file']),
    cfgv.Optional('exclude_types', cfgv.check_array(check_type_tag), []),

    cfgv.Optional(
        'additional_dependencies', cfgv.check_array(cfgv.check_string), [],
    ),
    cfgv.Optional('args', cfgv.check_array(cfgv.check_string), []),
    cfgv.Optional('always_run', cfgv.check_bool, False),

def _make_argparser(filenames_help: str) -> argparse.ArgumentParser:
    parser = argparse.ArgumentParser()
    parser.add_argument("filenames", nargs="*", help=filenames_help)
    parser.add_argument("-V", "--version", action="version", version=C.VERSION)
    return parser


MANIFEST_HOOK_DICT = cfgv.Map(
    "Hook",
    "id",
    cfgv.Required("id", cfgv.check_string),
    cfgv.Required("name", cfgv.check_string),
    cfgv.Required("entry", cfgv.check_string),
    cfgv.Required("language", cfgv.check_one_of(all_languages)),
    cfgv.Optional("alias", cfgv.check_string, ""),
    cfgv.Optional("files", check_string_regex, ""),
    cfgv.Optional("exclude", check_string_regex, "^$"),
    cfgv.Optional("types", cfgv.check_array(check_type_tag), ["file"]),
    cfgv.Optional("exclude_types", cfgv.check_array(check_type_tag), []),
    cfgv.Optional("additional_dependencies", cfgv.check_array(cfgv.check_string), [],),
    cfgv.Optional("args", cfgv.check_array(cfgv.check_string), []),
    cfgv.Optional("always_run", cfgv.check_bool, False),
    cfgv.Optional("pass_filenames", cfgv.check_bool, True),
    cfgv.Optional("description", cfgv.check_string, ""),
    cfgv.Optional("language_version", cfgv.check_string, C.DEFAULT),
    cfgv.Optional("log_file", cfgv.check_string, ""),
    cfgv.Optional("minimum_pre_commit_version", cfgv.check_string, "0"),
    cfgv.Optional("require_serial", cfgv.check_bool, False),
    cfgv.Optional("stages", cfgv.check_array(cfgv.check_one_of(C.STAGES)), []),
Ejemplo n.º 8
0
    'CI',
    None,
    cfgv.Optional(
        'autofix_commit_msg',
        cfgv.check_and(cfgv.check_string, _check_non_empty_string),
        AUTOFIX_DEFAULT_COMMIT_MSG,
    ),
    cfgv.Optional('autofix_prs', cfgv.check_bool, True),
    cfgv.Optional(
        'autoupdate_commit_msg',
        cfgv.check_and(cfgv.check_string, _check_non_empty_string),
        '[pre-commit.ci] pre-commit autoupdate',
    ),
    cfgv.Optional(
        'autoupdate_schedule',
        cfgv.check_one_of(('weekly', 'monthly', 'quarterly')),
        'weekly',
    ),
    cfgv.Optional('skip', cfgv.check_array(cfgv.check_string), []),
    cfgv.Optional('submodules', cfgv.check_bool, False),
)

SCHEMA = cfgv.Map(
    'Config',
    None,

    # to cross-validate hook values
    cfgv.RequiredRecurse('repos', cfgv.Array(CONFIG_REPO_DICT)),

    # our configuration
    cfgv.OptionalRecurse('ci', CI_DICT, {}),
Ejemplo n.º 9
0
import re
from typing import Any
from typing import Dict
from typing import List
from typing import NamedTuple
from typing import Pattern

import cfgv

DEFAULT_GENERATE_CONFIG_FILENAME = 'generate_config.yaml'
SCHEMA = cfgv.Map(
    'Config',
    'repo',
    cfgv.Required('repo', cfgv.check_string),
    cfgv.Required('database', cfgv.check_string),
    cfgv.Optional('repo_type', cfgv.check_one_of(['git', 'hg']), 'git'),
    cfgv.Optional('skip_default_metrics', cfgv.check_bool, False),
    cfgv.Optional(
        'metric_package_names',
        cfgv.check_array(cfgv.check_string),
        [],
    ),
    cfgv.Optional('exclude', cfgv.check_regex, '^$'),
)


class GenerateOptions(NamedTuple):
    skip_default_metrics: bool
    metric_package_names: List[str]
    repo: str
    repo_type: str