Skip to content

Commit f7d2ea7

Browse files
committed
More lazy charset regex with '--standard-headers' argument and fix expected header not found header not being triggered as error in 'check-metadata' hook.
1 parent 9154c5a commit f7d2ea7

4 files changed

Lines changed: 16 additions & 5 deletions

File tree

.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 1.3.3
2+
current_version = 1.3.4
33

44
[bumpversion:file:setup.cfg]
55

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Hooks for pre-commit useful working with PO files.
1111

1212
```yaml
1313
- repo: https://github.com/mondeja/pre-commit-po-hooks
14-
rev: v1.3.3
14+
rev: v1.3.4
1515
hooks:
1616
- id: obsolete-messages
1717
- id: untranslated-messages
@@ -77,7 +77,7 @@ on the next regular expressions:
7777
- `Last-Translator`: `.+\s<.+@.+\..+>`
7878
- `Language-Team`: `.+\s<.+@.+\..+>`
7979
- `Language`: `\w\w_?\w?\w?(@\w+)?`
80-
- `Content-Type`: `text/plain; charset=[a-zA-Z\-]+`
80+
- `Content-Type`: `text/plain; charset=[0-9a-zA-Z\-]+`
8181
- `Content-Transfer-Encoding`: `\d+bits?`
8282
8383
If you need to replace some fields with other regular expressions, you can do

hooks/check_metadata.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ def check_metadata(
4646

4747
exitcode = 0
4848
for filename in filenames:
49+
headers_matched = []
50+
4951
with open(filename) as f:
5052
content_lines = f.readlines()
5153

@@ -99,6 +101,7 @@ def check_metadata(
99101
header = header.lstrip('"')
100102

101103
if header in headers_spec_regex:
104+
headers_matched.append(header)
102105
value = re.sub(r"(\n|\\n|\"$)+", "", value)
103106
regex = headers_spec_regex[header]
104107
if re.match(regex, value) is None:
@@ -111,6 +114,14 @@ def check_metadata(
111114
f" '{value}' in header '{header}')\n"
112115
)
113116

117+
for header in headers_spec.keys():
118+
if header not in headers_matched:
119+
sys.stderr.write(
120+
f"Metadata header '{header}' expected at file"
121+
f" {filename}:{_first_metadata_line}, but not found\n"
122+
)
123+
exitcode = 1
124+
114125
return exitcode
115126

116127

@@ -199,7 +210,7 @@ def main():
199210
"Last-Translator": r".+\s<.+@.+\..+>",
200211
"Language-Team": r".+\s<.+@.+\..+>",
201212
"Language": r"\w\w_?\w?\w?(@\w+)?",
202-
"Content-Type": r"text/plain; charset=[a-zA-Z\-]+",
213+
"Content-Type": r"text/plain; charset=[0-9a-zA-Z\-]+",
203214
"Content-Transfer-Encoding": r"\d+bits?",
204215
}
205216
if headers_spec:

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[metadata]
22
name = pre_commit_po_hooks
3-
version = 1.3.3
3+
version = 1.3.4
44
description = pre-commit hooks for PO files
55
long_description = file: README.md
66
long_description_content_type = text/markdown

0 commit comments

Comments
 (0)