Skip to content

Commit 3ba0917

Browse files
committed
Add pass_filenames support
1 parent e9f927b commit 3ba0917

5 files changed

Lines changed: 24 additions & 3 deletions

File tree

pre_commit_mirror_maker/all/.pre-commit-hooks.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
language: {language}
66
'{match_key}': {match_val}
77
args: {args}
8+
pass_filenames: {pass_filenames}
89
require_serial: {require_serial}
910
additional_dependencies: {additional_dependencies}
1011
minimum_pre_commit_version: {minimum_pre_commit_version!r}

pre_commit_mirror_maker/main.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ def main(argv: Sequence[str] | None = None) -> int:
7373
'--require-serial', action='store_true',
7474
help='Set `require_serial: true` for the hook',
7575
)
76+
parser.add_argument(
77+
'--pass-filenames', action=argparse.BooleanOptionalAction,
78+
default=True,
79+
help='Set `pass_filenames` for the hook',
80+
)
7681
args = parser.parse_args(argv)
7782

7883
minimum_pre_commit_version = '0'
@@ -105,6 +110,7 @@ def main(argv: Sequence[str] | None = None) -> int:
105110
match_key=match_key,
106111
match_val=match_val,
107112
args=json.dumps(split_by_commas(args.args)),
113+
pass_filenames=json.dumps(args.pass_filenames),
108114
require_serial=json.dumps(args.require_serial),
109115
minimum_pre_commit_version=minimum_pre_commit_version,
110116
)

pre_commit_mirror_maker/make_repo.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ def _commit_version(
4545
version: str,
4646
**fmt_vars: str,
4747
) -> None:
48+
fmt_vars.setdefault('pass_filenames', 'true')
4849
# 'all' writes the .version and .pre-commit-hooks.yaml files
4950
files = importlib.resources.files('pre_commit_mirror_maker')
5051
with importlib.resources.as_file(files) as files_p:

tests/main_test.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ def test_main_passes_args(mock_make_repo):
4343
language='ruby', name='scss-lint', description='',
4444
entry='scss-lint-entry',
4545
id='scss-lint-id', match_key='files', match_val=r'\.scss$', args='[]',
46-
require_serial='false', minimum_pre_commit_version='0',
46+
pass_filenames='true', require_serial='false',
47+
minimum_pre_commit_version='0',
4748
)
4849

4950

@@ -80,6 +81,17 @@ def test_main_with_args(mock_make_repo):
8081
assert mock_make_repo.call_args[1]['args'] == expected
8182

8283

84+
def test_main_no_pass_filenames(mock_make_repo):
85+
assert not main.main((
86+
'.',
87+
'--language', 'python',
88+
'--package-name', 'yapf',
89+
'--files-regex', r'\.py$',
90+
'--no-pass-filenames',
91+
))
92+
assert mock_make_repo.call_args[1]['pass_filenames'] == 'false'
93+
94+
8395
def test_main_with_types_and_types_or(mock_make_repo, capsys):
8496
with pytest.raises(SystemExit) as exc_info:
8597
main.main((

tests/make_repo_test.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ def test_arguments(in_git_dir):
7676
version='0.6.2', language='python', name='yapf',
7777
description='Yet another Python formatter.', entry='yapf', id='yapf',
7878
match_key='files', match_val=r'\.py$', args='["-i"]',
79-
additional_dependencies='["scikit-learn"]', require_serial='false',
80-
minimum_pre_commit_version='0',
79+
pass_filenames='false', additional_dependencies='["scikit-learn"]',
80+
require_serial='false', minimum_pre_commit_version='0',
8181
)
8282
contents = in_git_dir.join('.pre-commit-hooks.yaml').read()
8383
assert yaml.safe_load(contents) == [{
@@ -88,6 +88,7 @@ def test_arguments(in_git_dir):
8888
'language': 'python',
8989
'files': r'\.py$',
9090
'args': ['-i'],
91+
'pass_filenames': False,
9192
'require_serial': False,
9293
'additional_dependencies': ['scikit-learn'],
9394
'minimum_pre_commit_version': '0',

0 commit comments

Comments
 (0)