From 58049eb8c8c6cae9f9907fba5061c6d826ec9b40 Mon Sep 17 00:00:00 2001 From: Mirco Dariol Date: Sat, 12 Apr 2025 15:58:28 +0200 Subject: [PATCH 1/2] fix: check-yml encoding error manage encoding error --- pre_commit_hooks/check_yaml.py | 8 +++++++- testing/resources/bad_encoding_yaml.yaml | 3 +++ tests/check_yaml_test.py | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 testing/resources/bad_encoding_yaml.yaml diff --git a/pre_commit_hooks/check_yaml.py b/pre_commit_hooks/check_yaml.py index c94ea716..2c6fd2cd 100644 --- a/pre_commit_hooks/check_yaml.py +++ b/pre_commit_hooks/check_yaml.py @@ -63,7 +63,13 @@ def main(argv: Sequence[str] | None = None) -> int: with open(filename, encoding='UTF-8') as f: load_fn(f) except ruamel.yaml.YAMLError as exc: - print(exc) + print(f'{filename}: Failed to yaml parse ({exc})') + retval = 1 + except UnicodeDecodeError as exc: + print( + f'{filename}: Failed to read file due to encoding error ' + f'({exc})', + ) retval = 1 return retval diff --git a/testing/resources/bad_encoding_yaml.yaml b/testing/resources/bad_encoding_yaml.yaml new file mode 100644 index 00000000..828a1c99 --- /dev/null +++ b/testing/resources/bad_encoding_yaml.yaml @@ -0,0 +1,3 @@ +variables: + - name: CopyRights + value: "Copyright © $(date:YYYY)" \ No newline at end of file diff --git a/tests/check_yaml_test.py b/tests/check_yaml_test.py index 54eb16e8..0cc840e1 100644 --- a/tests/check_yaml_test.py +++ b/tests/check_yaml_test.py @@ -9,6 +9,7 @@ @pytest.mark.parametrize( ('filename', 'expected_retval'), ( ('bad_yaml.notyaml', 1), + ('bad_encoding_yaml.yaml', 1), ('ok_yaml.yaml', 0), ), ) From 9f6eb9cd1bf97d7cbc9d421d22656b3fae86f293 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 15 Apr 2025 17:58:27 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- testing/resources/bad_encoding_yaml.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/resources/bad_encoding_yaml.yaml b/testing/resources/bad_encoding_yaml.yaml index 828a1c99..adc14c21 100644 --- a/testing/resources/bad_encoding_yaml.yaml +++ b/testing/resources/bad_encoding_yaml.yaml @@ -1,3 +1,3 @@ variables: - name: CopyRights - value: "Copyright © $(date:YYYY)" \ No newline at end of file + value: "Copyright © $(date:YYYY)"