From 2516c5797e3df4be5d417db8bdb02109fdb8b47e Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Mon, 12 Apr 2010 22:01:50 +0200 Subject: [PATCH] translations-status.py: Replace if top: by polymorphism. --- scripts/auxiliar/translations-status.py | 157 +++++++++++++----------- 1 file changed, 82 insertions(+), 75 deletions(-) diff --git a/scripts/auxiliar/translations-status.py b/scripts/auxiliar/translations-status.py index d96e5fd358..9e5970fd31 100755 --- a/scripts/auxiliar/translations-status.py +++ b/scripts/auxiliar/translations-status.py @@ -184,7 +184,6 @@ class TelyDocument (object): self.contents = 'GIT committish: 0' if os.path.exists (filename): self.contents = open (filename).read () - self.top = os.path.splitext (filename)[1] in ['.tely', '.texi'] ## record title and sectionning level of first Texinfo section self.sectioning = 'unnumbered' self.title = 'Untitled' @@ -389,55 +388,63 @@ setting to %d %%" % (self.filename, self.uptodate_percentage, alternative)) return s def texi_status (self, numbering=SectionNumber ()): - if self.title == 'Untitled': - return '' - - if self.top: - s = ''' + s = '''
''' % self.print_title (numbering) - s += ''.join ([' \n' % self.translation (h) - for h in detailed_status_heads]) - s += ' \n' - s += (' \n \n' - % (self.translation (section_titles_string), - sum (self.masterdocument.word_count))) % self.__dict__ + s += ''.join ([' \n' % self.translation (h) + for h in detailed_status_heads]) + s += ' \n' + s += (' \n \n' + % (self.translation (section_titles_string), + sum (self.masterdocument.word_count))) % self.__dict__ + s += self.texi_body (numbering) + s += '
%s%s
%s
(%d)
%s
%s
(%d)
\n

\n' + return s - else: - s = (' \n %s
(%d)\n' - % (self.print_title (numbering), - sum (self.masterdocument.word_count))) % self.__dict__ + def texi_body (self, numbering): + return (self.texi_translators () + + self.texi_completeness () + + self.texi_uptodateness () + + self.texi_gdp () + + self.texi_translations (numbering)) + def texi_translators (self): if self.partially_translated: - s += ' ' + '
\n '.join (self.translators) + '\n' - s += ' ' + '
\n '.join (self.checkers) + '\n' - else: - s += ' \n' * 2 + return (' ' + '
\n '.join (self.translators) + '\n' + + ' ' + '
\n '.join (self.checkers) + '\n') + return ' \n' * 2 + def texi_completeness (self): c = self.completeness (['color', 'short'], translated=True) - s += ' \ + return ' \ %(short)s\n' % {'color': c['color'], 'short': c['short']} + def texi_uptodateness (self): if self.partially_translated: u = self.uptodateness (['short', 'color'], translated=True) - s += ' \ + return ' \ %(short)s\n' % {'color': u['color'], 'short': u['short']} - else: - s += ' \n' + return ' \n' - s += ' ' + self.gdp_status () + '\n \n' - s += ''.join ([i.translations[self.language].texi_status (numbering) - for i in self.masterdocument.includes - if self.language in i.translations]) + def texi_gdp (self): + return ' ' + self.gdp_status () + '\n \n' - if self.top: - s += '\n

\n' - return s + def texi_translations (self, numbering): + return ''.join ([i.translations[self.language].texi_status (numbering) + for i in self.masterdocument.includes + if self.language in i.translations]) class IncludedTranslatedTelyDocument (TranslatedTelyDocument): get_level = TelyDocument.get_level + def texi_status (self, numbering=SectionNumber ()): + if self.title != 'Untitled': + return ((' \n %s
(%d)\n' + % (self.print_title (numbering), + sum (self.masterdocument.word_count))) % self.__dict__ + + self.texi_body (numbering)) + return '' class UntranslatedTelyDocument (TranslatedTelyDocument): def __init__ (self, filename, masterdocument, parent_translation=None): @@ -445,7 +452,7 @@ class UntranslatedTelyDocument (TranslatedTelyDocument): self.language = filename[:2] TranslatedTelyDocument.__init__ (self, filename, masterdocument, parent_translation) -class IncludedUntranslatedTelyDocument (UntranslatedTelyDocument): +class IncludedUntranslatedTelyDocument (UntranslatedTelyDocument, IncludedTranslatedTelyDocument): get_level = TelyDocument.get_level class MasterTelyDocument (TelyDocument): @@ -484,64 +491,64 @@ class MasterTelyDocument (TelyDocument): return s def texi_status (self, numbering=SectionNumber ()): - if self.title == 'Untitled' or not self.translations: - return '' - if self.top: - s = ''' + s = '''
''' % self.print_title (numbering) - s += ''.join ([' \n' % l for l in sorted (self.translations.keys ())]) - s += ' \n' - s += (' \n \n' - % sum (self.word_count)) % self.__dict__ - - else: # if self is an included file - s = (' \n \n' - % (self.print_title (numbering), sum (self.word_count))) % self.__dict__ - - s += ''.join ([self.translations[k].short_texi_status () - for k in sorted (self.translations.keys ())]) + s += ''.join ([' \n' % l for l in sorted (self.translations.keys ())]) s += ' \n' - s += ''.join ([i.texi_status (numbering) for i in self.includes]) - - if self.top: - s += '
%s%s
Section titles
(%d)
%s
(%d)
%s
\n

\n' + s += (' \n Section titles
(%d)\n' + % sum (self.word_count)) % self.__dict__ + s += self.texi_body (numbering) + s += '\n

\n' return s - def text_status (self, numbering=SectionNumber (), colspec=[48,12]): - if self.title == 'Untitled' or not self.translations: - return '' - - s = '' - if self.top: - s += (self.print_title (numbering) + ' ').ljust (colspec[0]) - s += ''.join (['%s'.ljust (colspec[1]) % l - for l in sorted (self.translations.keys ())]) - s += '\n' - s += ('Section titles (%d)' % \ - sum (self.word_count)).ljust (colspec[0]) - - else: - s = '%s (%d) ' \ - % (self.print_title (numbering), sum (self.word_count)) - s = s.ljust (colspec[0]) + def texi_body (self, numbering): + return (''.join ([self.translations[k].short_texi_status () + for k in sorted (self.translations.keys ())]) + + ' \n' + + ''.join ([i.texi_status (numbering) for i in self.includes])) - s += ''.join ([self.translations[k].text_status ().ljust(colspec[1]) - for k in sorted (self.translations.keys ())]) - s += '\n\n' - s += ''.join ([i.text_status (numbering) for i in self.includes]) - - if self.top: - s += '\n' + def text_status (self, numbering=SectionNumber (), colspec=[48,12]): + s = (self.print_title (numbering) + ' ').ljust (colspec[0]) + s += ''.join (['%s'.ljust (colspec[1]) % l + for l in sorted (self.translations.keys ())]) + s += '\n' + s += ('Section titles (%d)' % \ + sum (self.word_count)).ljust (colspec[0]) + s += self.text_body (numbering, colspec) + s += '\n' return s + def text_body (self, numbering, colspec): + return (''.join ([self.translations[k].text_status ().ljust(colspec[1]) + for k in sorted (self.translations.keys ())]) + + '\n\n' + + ''.join ([i.text_status (numbering) for i in self.includes])) + class IncludedMasterTelyDocument (MasterTelyDocument): get_level = TelyDocument.get_level + def translated_factory (self, filename, parent): if os.path.exists (filename): return IncludedTranslatedTelyDocument (filename, self, parent) return IncludedUntranslatedTelyDocument (filename, self, parent) + def texi_status (self, numbering=SectionNumber ()): + if self.title != 'Untitled': + return ((' \n %s
(%d)\n' + % (self.print_title (numbering), sum (self.word_count))) % self.__dict__ + + self.texi_body (numbering)) + return '' + + def text_status (self, numbering=SectionNumber (), colspec=[48,12]): + if self.title != 'Untitled': + return (('%s (%d) ' + % (self.print_title (numbering), sum (self.word_count))) + + self.text_body (numbering, colspec) + ).ljust (colspec[0]) + return '' + + update_category_word_counts_re = re.compile (r'(?ms)^-(\d+)-(.*?\n)\d+ *total') counts_re = re.compile (r'(?m)^(\d+) ') -- 2.39.2