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