i18n: factor out output method for txstats
This commit is contained in:
parent
a66eabe9ef
commit
dacd236f6a
@ -67,7 +67,24 @@ class BogusGetter(object):
|
|||||||
self.languages[lang] = dict(translated=dict(stringcount=686, percentage=(completion/100.0)))
|
self.languages[lang] = dict(translated=dict(stringcount=686, percentage=(completion/100.0)))
|
||||||
|
|
||||||
|
|
||||||
def output_langs(all_langs, label, filterfunc):
|
class PrintOutputter(object):
|
||||||
|
"""
|
||||||
|
Output via print-statements.
|
||||||
|
"""
|
||||||
|
def __init__(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def print(self, s):
|
||||||
|
print(s)
|
||||||
|
|
||||||
|
def __enter__(self):
|
||||||
|
return self
|
||||||
|
|
||||||
|
def __exit__(self, e, v, tb):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def output_langs(all_langs, outputter, label, filterfunc):
|
||||||
"""
|
"""
|
||||||
Output (via print) all of the languages in @p all_langs
|
Output (via print) all of the languages in @p all_langs
|
||||||
that satisfy the translation-percentage filter @p filterfunc.
|
that satisfy the translation-percentage filter @p filterfunc.
|
||||||
@ -83,13 +100,13 @@ def output_langs(all_langs, label, filterfunc):
|
|||||||
|
|
||||||
while len(out) > width - len(prefix):
|
while len(out) > width - len(prefix):
|
||||||
chunk = out[:out[:width].rfind(" ")]
|
chunk = out[:out[:width].rfind(" ")]
|
||||||
print("%s%s" % (prefix, chunk))
|
outputter.print("%s%s" % (prefix, chunk))
|
||||||
out = out[len(chunk)+1:]
|
out = out[len(chunk)+1:]
|
||||||
prefix = " "
|
prefix = " "
|
||||||
print("%s%s" % (prefix, out))
|
outputter.print("%s%s" % (prefix, out))
|
||||||
|
|
||||||
|
|
||||||
def get_tx_stats(languages, verbose):
|
def get_tx_stats(languages, outputter, verbose):
|
||||||
"""
|
"""
|
||||||
Does an API request to Transifex with the given API @p token, getting
|
Does an API request to Transifex with the given API @p token, getting
|
||||||
the translation statistics for the main body of texts. Then prints
|
the translation statistics for the main body of texts. Then prints
|
||||||
@ -110,7 +127,7 @@ def get_tx_stats(languages, verbose):
|
|||||||
)
|
)
|
||||||
|
|
||||||
all_langs = []
|
all_langs = []
|
||||||
print("# Total %d languages" % len(languages))
|
outputter.print("# Total %d languages" % len(languages))
|
||||||
for lang_name in languages:
|
for lang_name in languages:
|
||||||
if lang_name in suppressed_languages:
|
if lang_name in suppressed_languages:
|
||||||
continue
|
continue
|
||||||
@ -124,15 +141,18 @@ def get_tx_stats(languages, verbose):
|
|||||||
|
|
||||||
if verbose:
|
if verbose:
|
||||||
for s, l in sorted(all_langs, reverse=True):
|
for s, l in sorted(all_langs, reverse=True):
|
||||||
print("# %16s\t%6.2f" % (l, s * 100.0))
|
outputter.print("# %16s\t%6.2f" % (l, s * 100.0))
|
||||||
output_langs(all_langs, "complete", lambda s : s == 1.0)
|
output_langs(all_langs, outputter, "complete", lambda s : s == 1.0)
|
||||||
output_langs(all_langs, "good", lambda s : 1.0 > s >= 0.75)
|
output_langs(all_langs, outputter, "good", lambda s : 1.0 > s >= 0.75)
|
||||||
output_langs(all_langs, "ok", lambda s : 0.75 > s >= 0.05)
|
output_langs(all_langs, outputter, "ok", lambda s : 0.75 > s >= 0.05)
|
||||||
output_langs(all_langs, "incomplete", lambda s : 0.05 > s)
|
output_langs(all_langs, outputter, "incomplete", lambda s : 0.05 > s)
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def get_outputter():
|
||||||
|
return PrintOutputter()
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser(description="Update Transifex Statistics")
|
parser = argparse.ArgumentParser(description="Update Transifex Statistics")
|
||||||
parser.add_argument("--verbose", "-v", help="Show statistics", action="store_true")
|
parser.add_argument("--verbose", "-v", help="Show statistics", action="store_true")
|
||||||
@ -143,7 +163,8 @@ def main():
|
|||||||
getter = BogusGetter()
|
getter = BogusGetter()
|
||||||
else:
|
else:
|
||||||
getter = TransifexGetter()
|
getter = TransifexGetter()
|
||||||
return get_tx_stats(getter.languages, args.verbose)
|
with get_outputter() as outputter:
|
||||||
|
return get_tx_stats(getter.languages, outputter, args.verbose)
|
||||||
except TXError as e:
|
except TXError as e:
|
||||||
print("! " + str(e))
|
print("! " + str(e))
|
||||||
return 1;
|
return 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user