[3.14] gh-138286: Run `ruff on Tools/i18n` (GH-138287) (#138513)

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Tomas R. <tomas.roun8@gmail.com>
This commit is contained in:
Miss Islington (bot) 2025-09-05 13:28:56 +02:00 committed by GitHub
parent 09f1eff0df
commit b6fa945ff9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 36 additions and 22 deletions

View file

@ -14,6 +14,10 @@ repos:
name: Run Ruff (lint) on Tools/build/
args: [--exit-non-zero-on-fix, --config=Tools/build/.ruff.toml]
files: ^Tools/build/
- id: ruff
name: Run Ruff (lint) on Tools/i18n/
args: [--exit-non-zero-on-fix, --config=Tools/i18n/.ruff.toml]
files: ^Tools/i18n/
- id: ruff
name: Run Ruff (lint) on Argument Clinic
args: [--exit-non-zero-on-fix, --config=Tools/clinic/.ruff.toml]

10
Tools/i18n/.ruff.toml Normal file
View file

@ -0,0 +1,10 @@
extend = "../../.ruff.toml" # Inherit the project-wide settings
target-version = "py313"
[lint]
select = [
"F", # pyflakes
"I", # isort
"UP", # pyupgrade
]

View file

@ -8,6 +8,7 @@
"""
import locale
import sys
_locale = locale
# Location of the X11 alias file.
@ -89,16 +90,15 @@ def parse_glibc_supported(filename):
def pprint(data):
items = sorted(data.items())
for k, v in items:
print(' %-40s%a,' % ('%a:' % k, v))
print(f" {k!a:<40}{v!a},")
def print_differences(data, olddata):
items = sorted(olddata.items())
for k, v in items:
if k not in data:
print('# removed %a' % k)
print(f'# removed {k!a}')
elif olddata[k] != data[k]:
print('# updated %a -> %a to %a' % \
(k, olddata[k], data[k]))
print(f'# updated {k!a} -> {olddata[k]!a} to {data[k]!a}')
# Additions are not mentioned
def optimize(data):
@ -121,7 +121,7 @@ def check(data):
errors = 0
for k, v in data.items():
if locale.normalize(k) != v:
print('ERROR: %a -> %a != %a' % (k, locale.normalize(k), v),
print(f'ERROR: {k!a} -> {locale.normalize(k)!a} != {v!a}',
file=sys.stderr)
errors += 1
return errors
@ -131,10 +131,10 @@ if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--locale-alias', default=LOCALE_ALIAS,
help='location of the X11 alias file '
'(default: %a)' % LOCALE_ALIAS)
f'(default: {LOCALE_ALIAS})')
parser.add_argument('--glibc-supported', default=SUPPORTED,
help='location of the glibc SUPPORTED locales file '
'(default: %a)' % SUPPORTED)
f'(default: {SUPPORTED})')
args = parser.parse_args()
data = locale.locale_alias.copy()

View file

@ -25,14 +25,14 @@ Options:
Display version information and exit.
"""
import os
import sys
import ast
import getopt
import struct
import array
from email.parser import HeaderParser
import ast
import codecs
import getopt
import os
import struct
import sys
from email.parser import HeaderParser
__version__ = "1.2"
@ -114,7 +114,7 @@ def make(filename, outfile):
try:
with open(infile, 'rb') as f:
lines = f.readlines()
except IOError as msg:
except OSError as msg:
print(msg, file=sys.stderr)
sys.exit(1)
@ -127,6 +127,7 @@ def make(filename, outfile):
sys.exit(1)
section = msgctxt = None
msgid = msgstr = b''
fuzzy = 0
# Start off assuming Latin-1, so everything decodes without failure,
@ -178,7 +179,7 @@ def make(filename, outfile):
# This is a message with plural forms
elif l.startswith('msgid_plural'):
if section != ID:
print('msgid_plural not preceded by msgid on %s:%d' % (infile, lno),
print(f'msgid_plural not preceded by msgid on {infile}:{lno}',
file=sys.stderr)
sys.exit(1)
l = l[12:]
@ -189,7 +190,7 @@ def make(filename, outfile):
section = STR
if l.startswith('msgstr['):
if not is_plural:
print('plural without msgid_plural on %s:%d' % (infile, lno),
print(f'plural without msgid_plural on {infile}:{lno}',
file=sys.stderr)
sys.exit(1)
l = l.split(']', 1)[1]
@ -197,7 +198,7 @@ def make(filename, outfile):
msgstr += b'\0' # Separator of the various plural forms
else:
if is_plural:
print('indexed msgstr required for plural on %s:%d' % (infile, lno),
print(f'indexed msgstr required for plural on {infile}:{lno}',
file=sys.stderr)
sys.exit(1)
l = l[6:]
@ -213,8 +214,7 @@ def make(filename, outfile):
elif section == STR:
msgstr += l.encode(encoding)
else:
print('Syntax error on %s:%d' % (infile, lno), \
'before:', file=sys.stderr)
print(f'Syntax error on {infile}:{lno} before:', file=sys.stderr)
print(l, file=sys.stderr)
sys.exit(1)
# Add last entry
@ -227,7 +227,7 @@ def make(filename, outfile):
try:
with open(outfile,"wb") as f:
f.write(output)
except IOError as msg:
except OSError as msg:
print(msg, file=sys.stderr)

View file

@ -193,7 +193,7 @@ def make_escapes(pass_nonascii):
escape = escape_ascii
else:
escape = escape_nonascii
escapes = [r"\%03o" % i for i in range(256)]
escapes = [fr"\{i:03o}" for i in range(256)]
for i in range(32, 127):
escapes[i] = chr(i)
escapes[ord('\\')] = r'\\'
@ -796,7 +796,7 @@ def main():
try:
with open(options.excludefilename) as fp:
options.toexclude = fp.readlines()
except IOError:
except OSError:
print(f"Can't read --exclude-file: {options.excludefilename}",
file=sys.stderr)
sys.exit(1)