def entry_text_authoreditor(entry): '''Convert entry Reviews to entry string review field''' entrystr = ' ' if entry.not_empty('Authors'): entrystr += utils.make_name_str(entry['Authors']) elif entry.not_empty('Editors'): entrystr += utils.make_name_str(entry['Editors']) entrystr += ' ed.' return entrystr
def entry_text_contributors(entry): '''Convert entry Contributors to entry string contributors''' entrystr = ' ' if entry.not_empty('Contributors'): entrystr += 'contributors ' entrystr += utils.make_name_str(entry['Contributors']) entrystr += ';' return entrystr
def entry_text_additional_editors(entry): '''Convert the entry Editors to entrystr edited by but only if the author field is populated in which case these are additional editors.''' entrystr = ' ' # additional editors if entry.not_empty('Authors') and entry.not_empty('Editors'): # need to include editors in comments entrystr += 'edited by ' entrystr += utils.make_name_str(entry['Editors']) entrystr += ';' return entrystr
def entry_text_translated(entry): '''Convert entry Translated or TranslatedFrom to an entrystr translator comment.''' entrystr = ' ' # translated from by if entry.not_empty('Translators') or entry.not_empty('TranslatedFrom'): entrystr += 'translated ' if entry.not_empty('TranslatedFrom'): entrystr += 'from ' entrystr += entry['TranslatedFrom'] if entry.not_empty('Translators'): entrystr += ' by ' entrystr += utils.make_name_str(entry['Translators']) entrystr += ';' return entrystr
def write_text_from_entry(self): """Write an AJBentry back into the string format that it came from. It should be the case that write(read(ajbstr)) == ajbstr up to the order of the comments and that read(write(ajbent)) == ajbent.""" if not self.is_valid(): return '' entrystr = self.num_str()[4:] + ' ' if self.not_empty('Authors'): entrystr += utils.make_name_str(self['Authors']) elif self.not_empty('Editors'): entrystr += utils.make_name_str(self['Editors']) entrystr += ' ed.' entrystr = entrystr + ', ' + self['Title'].replace(', ', ' comma ') if self.not_empty('Publishers'): entrystr += ', ' if self['Publishers'][0]['Place']: entrystr += self['Publishers'][0]['Place'] entrystr += ', ' if self['Publishers'][0]['PublisherName']: name = self['Publishers'][0]['PublisherName'] name = name.replace(', ', ' comma ') entrystr += name else: entrystr += ', , ' entrystr += ', ' if self.not_empty('Year'): entrystr += str(self['Year']) entrystr += ', ' if self.not_empty('Pagination'): entrystr += str(self['Pagination']) entrystr += ', ' if self.not_empty('Price'): entrystr += str(self['Price']) entrystr += ', ' if self.not_empty('Reviews'): first = True for review in self['Reviews']: if not first: entrystr += ' and ' first = False entrystr += review # comments entrystr += ', ' if self.not_empty('Edition'): entrystr += str(self['Edition']) num = int(self['Edition']) if num == 1: entrystr += 'st' elif num == 2: entrystr += 'nd' elif num == 3: entrystr += 'rd' else: entrystr += 'th' entrystr += ' edition;' if self.not_empty('Reprint'): entrystr += 'reprint of ' entrystr += str(self['Reprint']) entrystr += ';' if self.not_empty('Compilers'): entrystr += 'compiled by ' entrystr += utils.make_name_str(self['Compilers']) entrystr += ';' if self.not_empty('Contributors'): entrystr += 'contributors ' entrystr += utils.make_name_str(self['Contributors']) entrystr += ';' # translated from by if self.not_empty('Translators') or self.not_empty('TranslatedFrom'): entrystr += 'translated ' if self.not_empty('TranslatedFrom'): entrystr += 'from ' entrystr += self['TranslatedFrom'] if self.not_empty('Translators'): entrystr += ' by ' entrystr += utils.make_name_str(self['Translators']) entrystr += ';' # additional editors if self.not_empty('Authors') and self.not_empty('Editors'): # need to include editors in comments entrystr += 'edited by ' entrystr += utils.make_name_str(self['Editors']) entrystr += ';' # additional publishers if self['Publishers'].__len__() > 1: extrapubl = self['Publishers'][1:] entrystr += 'also published ' first = True for publ in extrapubl: if not first: entrystr += ' and ' first = False entrystr += '%s: %s' % (publ['Place'].replace(', ', ' comma '), publ['PublisherName'].replace(', ', ' comma ')) entrystr += ';' if self.not_empty('Language'): entrystr += 'in ' entrystr += self['Language'] entrystr += ';' # others if self.not_empty('Others'): for other in self['Others']: entrystr += 'other %s' % str(other).replace(', ', ' comma ') entrystr += '; ' if self.not_empty('Reference'): entrystr += 'reference ' entrystr += self['Reference'] entrystr += ';' return entrystr