Remove @entry

This commit is contained in:
Anthony Sottile 2014-08-06 17:20:45 -07:00
parent 9a017dcbe9
commit 32817f3958
6 changed files with 10 additions and 52 deletions

View file

@ -6,10 +6,10 @@ import jsonschema
import jsonschema.exceptions import jsonschema.exceptions
import os.path import os.path
import re import re
import sys
import yaml import yaml
from pre_commit.jsonschema_extensions import apply_defaults from pre_commit.jsonschema_extensions import apply_defaults
from pre_commit.util import entry
def is_regex_valid(regex): def is_regex_valid(regex):
@ -64,8 +64,8 @@ def get_validator(
def get_run_function(filenames_help, validate_strategy, exception_cls): def get_run_function(filenames_help, validate_strategy, exception_cls):
@entry def run(argv=None):
def run(argv): argv = argv if argv is not None else sys.argv[1:]
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('filenames', nargs='*', help=filenames_help) parser.add_argument('filenames', nargs='*', help=filenames_help)
args = parser.parse_args(argv) args = parser.parse_args(argv)

View file

@ -1,13 +1,12 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import sys
from pre_commit.clientlib.validate_base import get_run_function from pre_commit.clientlib.validate_base import get_run_function
from pre_commit.clientlib.validate_base import get_validator from pre_commit.clientlib.validate_base import get_validator
from pre_commit.clientlib.validate_base import is_regex_valid from pre_commit.clientlib.validate_base import is_regex_valid
from pre_commit.errors import FatalError
class InvalidConfigError(ValueError): class InvalidConfigError(FatalError):
pass pass
@ -71,4 +70,4 @@ run = get_run_function('Config filenames.', load_config, InvalidConfigError)
if __name__ == '__main__': if __name__ == '__main__':
sys.exit(run()) exit(run())

View file

@ -1,7 +1,5 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import sys
from pre_commit.clientlib.validate_base import get_run_function from pre_commit.clientlib.validate_base import get_run_function
from pre_commit.clientlib.validate_base import get_validator from pre_commit.clientlib.validate_base import get_validator
from pre_commit.clientlib.validate_base import is_regex_valid from pre_commit.clientlib.validate_base import is_regex_valid
@ -74,4 +72,4 @@ run = get_run_function(
if __name__ == '__main__': if __name__ == '__main__':
sys.exit(run()) exit(run())

View file

@ -2,6 +2,7 @@ from __future__ import unicode_literals
import argparse import argparse
import pkg_resources import pkg_resources
import sys
from pre_commit import color from pre_commit import color
from pre_commit.commands.autoupdate import autoupdate from pre_commit.commands.autoupdate import autoupdate
@ -11,11 +12,10 @@ from pre_commit.commands.install_uninstall import uninstall
from pre_commit.commands.run import run from pre_commit.commands.run import run
from pre_commit.error_handler import error_handler from pre_commit.error_handler import error_handler
from pre_commit.runner import Runner from pre_commit.runner import Runner
from pre_commit.util import entry
@entry def main(argv=None):
def main(argv): argv = argv if argv is not None else sys.argv[1:]
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
# http://stackoverflow.com/a/8521644/812183 # http://stackoverflow.com/a/8521644/812183

View file

@ -7,7 +7,6 @@ import os
import os.path import os.path
import pkg_resources import pkg_resources
import shutil import shutil
import sys
import tarfile import tarfile
import tempfile import tempfile
@ -29,19 +28,6 @@ def memoize_by_cwd(func):
return wrapper return wrapper
def entry(func):
"""Allows a function that has `argv` as an argument to be used as a
commandline entry. This will make the function callable using either
explicitly passed argv or defaulting to sys.argv[1:]
"""
@functools.wraps(func)
def wrapper(argv=None):
if argv is None:
argv = sys.argv[1:]
return func(argv)
return wrapper
@contextlib.contextmanager @contextlib.contextmanager
def clean_path_on_failure(path): def clean_path_on_failure(path):
"""Cleans up the directory on an exceptional failure.""" """Cleans up the directory on an exceptional failure."""

View file

@ -1,15 +1,12 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import mock
import pytest import pytest
import os import os
import os.path import os.path
import random import random
import sys
from plumbum import local from plumbum import local
from pre_commit.util import clean_path_on_failure from pre_commit.util import clean_path_on_failure
from pre_commit.util import entry
from pre_commit.util import memoize_by_cwd from pre_commit.util import memoize_by_cwd
from pre_commit.util import shell_escape from pre_commit.util import shell_escape
from pre_commit.util import tmpdir from pre_commit.util import tmpdir
@ -46,28 +43,6 @@ def test_memoized_by_cwd_changes_with_different_cwd(memoized_by_cwd):
assert ret != ret2 assert ret != ret2
@pytest.fixture
def entry_func():
@entry
def func(argv):
return argv
return func
def test_explicitly_passed_argv_are_passed(entry_func):
input = object()
ret = entry_func(input)
assert ret is input
def test_no_arguments_passed_uses_argv(entry_func):
argv = [1, 2, 3, 4]
with mock.patch.object(sys, 'argv', argv):
ret = entry_func()
assert ret == argv[1:]
def test_clean_on_failure_noop(in_tmpdir): def test_clean_on_failure_noop(in_tmpdir):
with clean_path_on_failure('foo'): with clean_path_on_failure('foo'):
pass pass