def str_list_w_last(iterable, infix=None, last_infix=None, oxfordian_last_infix=None, oxford_comma=True): """ Concatène une liste de chaîne de caractères avec des virgules et un «,\u00A0et\u00A0» final («\u00A0et\u00A0» pour deux éléments). Pour désactiver la virgule d’Oxford, passer oxford_comma=False en argument. >>> l = ['Jeanne', 'Marion', 'Lola', 'Perrine'] >>> print(str_list_w_last(l)) Jeanne, Marion, Lola\u00A0et\u00A0Perrine >>> print(str_list_w_last(l[:2])) Jeanne\u00A0et\u00A0Marion """ l = [e for e in iterable if e] if infix is None: infix = pgettext('infix d’une liste', ', ') if oxford_comma and len(l) > 2: if oxfordian_last_infix is None: oxfordian_last_infix = pgettext( 'dernier infix pour plus de 2 éléments', ' et ') last_infix = oxfordian_last_infix elif last_infix is None: last_infix = pgettext('dernier infix pour 2 éléments', ' et ') return str_list(l, infix, last_infix)
def __str__(self): d = { 'lieu': smart_text(self.lieu), 'debut': self.debut.year, 'fin': self.fin.year } return pgettext('saison : pattern d’affichage', '%(lieu)s, %(debut)d–%(fin)d') % d
def str_list(iterable, infix=None, last_infix=None): """ Concatène une liste de chaîne de caractères avec des virgules. >>> l = ['Jeanne', 'Lola', 'Perrine', 'Marion'] >>> print(str_list(l)) Jeanne, Lola, Perrine, Marion """ if infix is None: infix = pgettext('infix d’une liste', ', ') l = [e for e in iterable if e] if last_infix is None: return infix.join(l) suffix = '' if len(l) > 1: suffix = last_infix + l.pop() return infix.join(l) + suffix