forked from bartvdbraak/blender
Cleanup: pep8
This commit is contained in:
parent
252207cc7a
commit
4b373ed086
@ -120,8 +120,11 @@ def check(check_ctxt, msgs, key, msgsrc, settings):
|
||||
key[1][0].isalpha() and not key[1][0].isupper()):
|
||||
not_capitalized.add(key)
|
||||
if end_point is not None:
|
||||
if (key[1].strip().endswith('.') and not key[1].strip().endswith('...') and
|
||||
key[1] not in settings.WARN_MSGID_END_POINT_ALLOWED):
|
||||
if (
|
||||
key[1].strip().endswith('.') and
|
||||
(not key[1].strip().endswith('...')) and
|
||||
key[1] not in settings.WARN_MSGID_END_POINT_ALLOWED
|
||||
):
|
||||
end_point.add(key)
|
||||
if undoc_ops is not None:
|
||||
if key[1] == settings.UNDOC_OPS_STR:
|
||||
@ -183,8 +186,10 @@ def print_info(reports, pot):
|
||||
# if py_in_rna and key in py_in_rna:
|
||||
# _print("\t\t-> RNA message also used in py UI code!")
|
||||
if spell_errors and spell_errors.get(key):
|
||||
lines = ["\t\t-> {}: misspelled, suggestions are ({})".format(w, "'" + "', '".join(errs) + "'")
|
||||
for w, errs in spell_errors[key]]
|
||||
lines = [
|
||||
"\t\t-> {}: misspelled, suggestions are ({})".format(w, "'" + "', '".join(errs) + "'")
|
||||
for w, errs in spell_errors[key]
|
||||
]
|
||||
_print("\n".join(lines))
|
||||
_print("\t\t{}".format("\n\t\t".join(pot.msgs[key].sources)))
|
||||
|
||||
@ -215,13 +220,13 @@ def dump_rna_messages(msgs, reports, settings, verbose=False):
|
||||
"""
|
||||
def class_blacklist():
|
||||
blacklist_rna_class = {getattr(bpy.types, cls_id) for cls_id in (
|
||||
# core classes
|
||||
"Context", "Event", "Function", "UILayout", "UnknownType", "Property", "Struct",
|
||||
# registerable classes
|
||||
"Panel", "Menu", "Header", "RenderEngine", "Operator", "OperatorMacro", "Macro", "KeyingSetInfo",
|
||||
# window classes
|
||||
"Window",
|
||||
)
|
||||
# core classes
|
||||
"Context", "Event", "Function", "UILayout", "UnknownType", "Property", "Struct",
|
||||
# registerable classes
|
||||
"Panel", "Menu", "Header", "RenderEngine", "Operator", "OperatorMacro", "Macro", "KeyingSetInfo",
|
||||
# window classes
|
||||
"Window",
|
||||
)
|
||||
}
|
||||
|
||||
# More builtin classes we don't need to parse.
|
||||
@ -380,6 +385,7 @@ def dump_rna_messages(msgs, reports, settings, verbose=False):
|
||||
|
||||
# Dump Messages
|
||||
operator_categories = {}
|
||||
|
||||
def process_cls_list(cls_list):
|
||||
if not cls_list:
|
||||
return
|
||||
@ -447,6 +453,7 @@ def dump_py_messages_from_files(msgs, reports, files, settings):
|
||||
i18n_contexts = bpy.app.translations.contexts
|
||||
|
||||
root_paths = tuple(bpy.utils.resource_path(t) for t in ('USER', 'LOCAL', 'SYSTEM'))
|
||||
|
||||
def make_rel(path):
|
||||
for rp in root_paths:
|
||||
if path.startswith(rp):
|
||||
@ -510,6 +517,7 @@ def dump_py_messages_from_files(msgs, reports, files, settings):
|
||||
return [_extract_string_merge(estr_ls, nds_ls) for estr_ls, nds_ls in bag]
|
||||
|
||||
i18n_ctxt_ids = {v for v in bpy.app.translations.contexts_C_to_py.values()}
|
||||
|
||||
def _ctxt_to_ctxt(node):
|
||||
# We must try, to some extend, to get contexts from vars instead of only literal strings...
|
||||
ctxt = extract_strings(node)[0]
|
||||
@ -561,9 +569,9 @@ def dump_py_messages_from_files(msgs, reports, files, settings):
|
||||
translate_kw = {
|
||||
"text": ((("text_ctxt",), _ctxt_to_ctxt),
|
||||
(("operator",), _op_to_ctxt),
|
||||
),
|
||||
"msgid": ((("msgctxt",), _ctxt_to_ctxt),
|
||||
),
|
||||
"msgid": ((("msgctxt",), _ctxt_to_ctxt),
|
||||
),
|
||||
"message": (),
|
||||
}
|
||||
|
||||
@ -611,7 +619,7 @@ def dump_py_messages_from_files(msgs, reports, files, settings):
|
||||
func_translate_args[func_id] = pgettext_variants_args
|
||||
for func_id in func_ids:
|
||||
func_translate_args[func_id] = pgettext_variants_args
|
||||
#print(func_translate_args)
|
||||
# print(func_translate_args)
|
||||
|
||||
# Break recursive nodes look up on some kind of nodes.
|
||||
# E.g. we don't want to get strings inside subscripts (blah["foo"])!
|
||||
@ -666,7 +674,7 @@ def dump_py_messages_from_files(msgs, reports, files, settings):
|
||||
if kw.arg == arg_kw:
|
||||
context_elements[arg_kw] = kw.value
|
||||
break
|
||||
#print(context_elements)
|
||||
# print(context_elements)
|
||||
for kws, proc in translate_kw[msgid]:
|
||||
if set(kws) <= context_elements.keys():
|
||||
args = tuple(context_elements[k] for k in kws)
|
||||
@ -676,7 +684,7 @@ def dump_py_messages_from_files(msgs, reports, files, settings):
|
||||
msgctxts[msgid] = ctxt
|
||||
break
|
||||
|
||||
#print(translate_args)
|
||||
# print(translate_args)
|
||||
# do nothing if not found
|
||||
for arg_kw, (arg_pos, _) in func_args.items():
|
||||
msgctxt = msgctxts[arg_kw]
|
||||
@ -706,7 +714,7 @@ def dump_py_messages(msgs, reports, addons, settings, addons_only=False):
|
||||
return []
|
||||
if os.path.isdir(path):
|
||||
return [os.path.join(dpath, fn) for dpath, _, fnames in os.walk(path) for fn in fnames
|
||||
if not fn.startswith("_") and fn.endswith(".py")]
|
||||
if not fn.startswith("_") and fn.endswith(".py")]
|
||||
return [path]
|
||||
|
||||
files = []
|
||||
@ -738,7 +746,9 @@ def dump_src_messages(msgs, reports, settings):
|
||||
pygettexts = tuple(re.compile(r).search for r in settings.PYGETTEXT_KEYWORDS)
|
||||
|
||||
_clean_str = re.compile(settings.str_clean_re).finditer
|
||||
clean_str = lambda s: "".join(m.group("clean") for m in _clean_str(s))
|
||||
|
||||
def clean_str(s):
|
||||
return "".join(m.group("clean") for m in _clean_str(s))
|
||||
|
||||
def dump_src_file(path, rel_path, msgs, reports, settings):
|
||||
def process_entry(_msgctxt, _msgid):
|
||||
@ -873,10 +883,10 @@ def dump_messages(do_messages, do_checks, settings):
|
||||
process_msg(msgs, settings.DEFAULT_CONTEXT, cat[1],
|
||||
"Language categories’ labels from bl_i18n_utils/settings.py", reports, None, settings)
|
||||
|
||||
#pot.check()
|
||||
# pot.check()
|
||||
pot.unescape() # Strings gathered in py/C source code may contain escaped chars...
|
||||
print_info(reports, pot)
|
||||
#pot.check()
|
||||
# pot.check()
|
||||
|
||||
if do_messages:
|
||||
print("Writing messages…")
|
||||
|
@ -32,9 +32,9 @@ import tempfile
|
||||
#import time
|
||||
|
||||
from bl_i18n_utils import (
|
||||
settings,
|
||||
utils_rtl,
|
||||
)
|
||||
settings,
|
||||
utils_rtl,
|
||||
)
|
||||
|
||||
import bpy
|
||||
|
||||
@ -44,6 +44,8 @@ from bpy.app.translations import locale_explode
|
||||
|
||||
|
||||
_valid_po_path_re = re.compile(r"^\S+:[0-9]+$")
|
||||
|
||||
|
||||
def is_valid_po_path(path):
|
||||
return bool(_valid_po_path_re.match(path))
|
||||
|
||||
@ -57,9 +59,10 @@ def get_best_similar(data):
|
||||
# We also consider to never make a match when len differs more than -len_key / 2, +len_key * 2 (which is valid
|
||||
# as long as use_similar is not below ~0.7).
|
||||
# Gives an overall ~20% of improvement!
|
||||
#tmp = difflib.get_close_matches(key[1], similar_pool, n=1, cutoff=use_similar)
|
||||
#if tmp:
|
||||
#tmp = tmp[0]
|
||||
|
||||
# tmp = difflib.get_close_matches(key[1], similar_pool, n=1, cutoff=use_similar)
|
||||
# if tmp:
|
||||
# tmp = tmp[0]
|
||||
tmp = None
|
||||
s = difflib.SequenceMatcher()
|
||||
s.set_seq2(key[1])
|
||||
@ -178,9 +181,11 @@ def enable_addons(addons=None, support=None, disable=False, check_only=False):
|
||||
userpref = bpy.context.user_preferences
|
||||
used_ext = {ext.module for ext in userpref.addons}
|
||||
|
||||
ret = [mod for mod in addon_utils.modules()
|
||||
if ((addons and mod.__name__ in addons) or
|
||||
(not addons and addon_utils.module_bl_info(mod)["support"] in support))]
|
||||
ret = [
|
||||
mod for mod in addon_utils.modules()
|
||||
if ((addons and mod.__name__ in addons) or
|
||||
(not addons and addon_utils.module_bl_info(mod)["support"] in support))
|
||||
]
|
||||
|
||||
if not check_only:
|
||||
for mod in ret:
|
||||
@ -229,18 +234,21 @@ class I18nMessage:
|
||||
|
||||
def _get_msgctxt(self):
|
||||
return "".join(self.msgctxt_lines)
|
||||
|
||||
def _set_msgctxt(self, ctxt):
|
||||
self.msgctxt_lines = [ctxt]
|
||||
msgctxt = property(_get_msgctxt, _set_msgctxt)
|
||||
|
||||
def _get_msgid(self):
|
||||
return "".join(self.msgid_lines)
|
||||
|
||||
def _set_msgid(self, msgid):
|
||||
self.msgid_lines = [msgid]
|
||||
msgid = property(_get_msgid, _set_msgid)
|
||||
|
||||
def _get_msgstr(self):
|
||||
return "".join(self.msgstr_lines)
|
||||
|
||||
def _set_msgstr(self, msgstr):
|
||||
self.msgstr_lines = [msgstr]
|
||||
msgstr = property(_get_msgstr, _set_msgstr)
|
||||
@ -250,12 +258,15 @@ class I18nMessage:
|
||||
lstrip2 = len(self.settings.PO_COMMENT_PREFIX_SOURCE_CUSTOM)
|
||||
return ([l[lstrip1:] for l in self.comment_lines if l.startswith(self.settings.PO_COMMENT_PREFIX_SOURCE)] +
|
||||
[l[lstrip2:] for l in self.comment_lines
|
||||
if l.startswith(self.settings.PO_COMMENT_PREFIX_SOURCE_CUSTOM)])
|
||||
if l.startswith(self.settings.PO_COMMENT_PREFIX_SOURCE_CUSTOM)])
|
||||
|
||||
def _set_sources(self, sources):
|
||||
cmmlines = self.comment_lines.copy()
|
||||
for l in cmmlines:
|
||||
if (l.startswith(self.settings.PO_COMMENT_PREFIX_SOURCE) or
|
||||
l.startswith(self.settings.PO_COMMENT_PREFIX_SOURCE_CUSTOM)):
|
||||
if (
|
||||
l.startswith(self.settings.PO_COMMENT_PREFIX_SOURCE) or
|
||||
l.startswith(self.settings.PO_COMMENT_PREFIX_SOURCE_CUSTOM)
|
||||
):
|
||||
self.comment_lines.remove(l)
|
||||
lines_src = []
|
||||
lines_src_custom = []
|
||||
@ -791,7 +802,7 @@ class I18nMessages:
|
||||
if len(k) > 1 and src_rna in src_to_msg:
|
||||
k &= src_to_msg[src_rna]
|
||||
msgmap["rna_tip"]["key"] = k
|
||||
#print(k)
|
||||
# print(k)
|
||||
btip = getattr(msgs, msgmap["but_tip"]["msgstr"])
|
||||
#print("button tip: " + btip)
|
||||
if btip and btip not in {rtip, etip}:
|
||||
@ -1051,12 +1062,13 @@ class I18nMessages:
|
||||
import subprocess
|
||||
with tempfile.NamedTemporaryFile(mode='w+', encoding="utf-8") as tmp_po_f:
|
||||
self.write_messages_to_po(tmp_po_f)
|
||||
cmd = (self.settings.GETTEXT_MSGFMT_EXECUTABLE,
|
||||
"--statistics", # show stats
|
||||
tmp_po_f.name,
|
||||
"-o",
|
||||
fname,
|
||||
)
|
||||
cmd = (
|
||||
self.settings.GETTEXT_MSGFMT_EXECUTABLE,
|
||||
"--statistics", # show stats
|
||||
tmp_po_f.name,
|
||||
"-o",
|
||||
fname,
|
||||
)
|
||||
print("Running ", " ".join(cmd))
|
||||
ret = subprocess.call(cmd)
|
||||
print("Finished.")
|
||||
@ -1081,6 +1093,7 @@ class I18nMessages:
|
||||
EOT = b"0x04" # Used to concatenate context and msgid
|
||||
_msgid_offset = 0
|
||||
_msgstr_offset = 0
|
||||
|
||||
def _gen(v):
|
||||
nonlocal _msgid_offset, _msgstr_offset
|
||||
msgid = v.msgid.encode("utf-8")
|
||||
@ -1188,6 +1201,7 @@ class I18n:
|
||||
|
||||
def _py_file_get(self):
|
||||
return self.src.get(self.settings.PARSER_PY_ID)
|
||||
|
||||
def _py_file_set(self, value):
|
||||
self.src[self.settings.PARSER_PY_ID] = value
|
||||
py_file = property(_py_file_get, _py_file_set)
|
||||
@ -1252,7 +1266,8 @@ class I18n:
|
||||
_ctx_txt = "s are"
|
||||
else:
|
||||
_ctx_txt = " is"
|
||||
lines = (("",
|
||||
lines = ((
|
||||
"",
|
||||
"Average stats for all {} translations:\n".format(self.nbr_trans),
|
||||
" {:>6.1%} done!\n".format(self.lvl / self.nbr_trans),
|
||||
" {:>6.1%} of messages are tooltips.\n".format(self.lvl_ttips / self.nbr_trans),
|
||||
@ -1350,10 +1365,10 @@ class I18n:
|
||||
comment_lines = [self.settings.PO_COMMENT_PREFIX + c for c in user_comments] + common_comment_lines
|
||||
self.trans[uid].msgs[key] = I18nMessage(ctxt, [key[1]], [msgstr], comment_lines, False, is_fuzzy,
|
||||
settings=self.settings)
|
||||
#key = self.settings.PO_HEADER_KEY
|
||||
#for uid, trans in self.trans.items():
|
||||
#if key not in trans.msgs:
|
||||
#trans.msgs[key]
|
||||
# key = self.settings.PO_HEADER_KEY
|
||||
# for uid, trans in self.trans.items():
|
||||
# if key not in trans.msgs:
|
||||
# trans.msgs[key]
|
||||
self.unescape()
|
||||
|
||||
def write(self, kind, langs=set()):
|
||||
|
@ -101,7 +101,7 @@ def write_subimage(sub_x, sub_y, sub_w, sub_h,
|
||||
sub_w, sub_h,
|
||||
sub_x, sub_y,
|
||||
# redundant but including to maintain consistency
|
||||
pixel_w, pixel_h,
|
||||
pixel_w, pixel_h,
|
||||
))
|
||||
|
||||
for y in range(sub_h):
|
||||
|
@ -1,22 +1,22 @@
|
||||
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# Contributor(s): Campbell Barton
|
||||
#
|
||||
# #**** END GPL LICENSE BLOCK #****
|
||||
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# ***** END GPL LICENSE BLOCK *****
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
defs = """
|
||||
SPACE_EMPTY,
|
||||
|
Loading…
Reference in New Issue
Block a user