deprecate pre-commit-validate-{config,manifest}

This commit is contained in:
Anthony Sottile
2022-04-24 18:04:19 -04:00
parent e1ce4c0bf3
commit 777ffdd692
7 changed files with 87 additions and 22 deletions

View File

@@ -14,6 +14,8 @@ from identify.identify import ALL_TAGS
import pre_commit.constants as C
from pre_commit.color import add_color_option
from pre_commit.commands.validate_config import validate_config
from pre_commit.commands.validate_manifest import validate_manifest
from pre_commit.errors import FatalError
from pre_commit.languages.all import all_languages
from pre_commit.logging_handler import logging_handler
@@ -100,14 +102,12 @@ def validate_manifest_main(argv: Sequence[str] | None = None) -> int:
args = parser.parse_args(argv)
with logging_handler(args.color):
ret = 0
for filename in args.filenames:
try:
load_manifest(filename)
except InvalidManifestError as e:
print(e)
ret = 1
return ret
logger.warning(
'pre-commit-validate-manifest is deprecated -- '
'use `pre-commit validate-manifest` instead.',
)
return validate_manifest(args.filenames)
LOCAL = 'local'
@@ -409,11 +409,9 @@ def validate_config_main(argv: Sequence[str] | None = None) -> int:
args = parser.parse_args(argv)
with logging_handler(args.color):
ret = 0
for filename in args.filenames:
try:
load_config(filename)
except InvalidConfigError as e:
print(e)
ret = 1
return ret
logger.warning(
'pre-commit-validate-config is deprecated -- '
'use `pre-commit validate-config` instead.',
)
return validate_config(args.filenames)

View File

@@ -0,0 +1,16 @@
from __future__ import annotations
from pre_commit import clientlib
def validate_config(filenames: list[str]) -> int:
ret = 0
for filename in filenames:
try:
clientlib.load_config(filename)
except clientlib.InvalidConfigError as e:
print(e)
ret = 1
return ret

View File

@@ -0,0 +1,16 @@
from __future__ import annotations
from pre_commit import clientlib
def validate_manifest(filenames: list[str]) -> int:
ret = 0
for filename in filenames:
try:
clientlib.load_manifest(filename)
except clientlib.InvalidManifestError as e:
print(e)
ret = 1
return ret

View File

@@ -21,6 +21,8 @@ from pre_commit.commands.migrate_config import migrate_config
from pre_commit.commands.run import run
from pre_commit.commands.sample_config import sample_config
from pre_commit.commands.try_repo import try_repo
from pre_commit.commands.validate_config import validate_config
from pre_commit.commands.validate_manifest import validate_manifest
from pre_commit.error_handler import error_handler
from pre_commit.logging_handler import logging_handler
from pre_commit.store import Store
@@ -34,8 +36,10 @@ logger = logging.getLogger('pre_commit')
# pyvenv
os.environ.pop('__PYVENV_LAUNCHER__', None)
COMMANDS_NO_GIT = {'clean', 'gc', 'init-templatedir', 'sample-config'}
COMMANDS_NO_GIT = {
'clean', 'gc', 'init-templatedir', 'sample-config',
'validate-config', 'validate-manifest',
}
def _add_config_option(parser: argparse.ArgumentParser) -> None:
@@ -304,6 +308,20 @@ def main(argv: Sequence[str] | None = None) -> int:
_add_config_option(uninstall_parser)
_add_hook_type_option(uninstall_parser)
validate_config_parser = subparsers.add_parser(
'validate-config', help='Validate .pre-commit-config.yaml files',
)
add_color_option(validate_config_parser)
_add_config_option(validate_config_parser)
validate_config_parser.add_argument('filenames', nargs='*')
validate_manifest_parser = subparsers.add_parser(
'validate-manifest', help='Validate .pre-commit-hooks.yaml files',
)
add_color_option(validate_manifest_parser)
_add_config_option(validate_manifest_parser)
validate_manifest_parser.add_argument('filenames', nargs='*')
help = subparsers.add_parser(
'help', help='Show help for a specific command.',
)
@@ -378,6 +396,10 @@ def main(argv: Sequence[str] | None = None) -> int:
config_file=args.config,
hook_types=args.hook_types,
)
elif args.command == 'validate-config':
return validate_config(args.filenames)
elif args.command == 'validate-manifest':
return validate_manifest(args.filenames)
else:
raise NotImplementedError(
f'Command {args.command} not implemented.',