spaces_matcher = re.compile(u"\s", flags=re.U)
def equivalence_partition(iterable, relation):
- """ Partitionne l'itérable en classes d'équivalences. """
- classes = []
- for o in iterable:
- # find the class it is in
- found = False
- for c in classes:
- if relation( iter(c).next(), o ): # is it equivalent to this class?
- c.add( o )
- found = True
- break
- if not found: # it is in a new class
- classes.append( set( [ o ] ) )
- return classes
+ """ Partitionne l'itérable en classes d'équivalences. """
+ classes = []
+ for o in iterable:
+ # find the class it is in
+ found = False
+ for c in classes:
+ if relation( iter(c).next(), o ): # is it equivalent to this class?
+ c.add( o )
+ found = True
+ break
+ if not found: # it is in a new class
+ classes.append( set( [ o ] ) )
+ return classes
def get_now():
""" Renvoie la date actuelle """
def __unicode__(self):
""" Retourne la quote affichable """
- return config.quote_template % self.__dict__
+ if self.place and self.place.strip() != u"":
+ return config.quote_template_withcontext % self.__dict__
+ else:
+ return config.quote_template % self.__dict__
def __str__(self):
return unicode(self).encode("utf-8")
def full_str(self):
""" Retourne une chaîne représentant la totalité des infos de la quote,
tout en étant parsable et human-readable. """
- place = self.place if self.place else ""
- quoter = self.quoter if self.quoter else ""
- return (u"%s %s | %s | %s" % (self.timestamp.strftime("%F_%T"), unicode(self), place, quoter)).encode("utf-8")
+ place = self.place if self.place and self.place.strip() != u"" else u""
+ quoter = self.quoter if self.quoter and self.quoter.strip() != u"" else u""
+ return (u"%s %s | %s | %s" % (self.timestamp.strftime("%F_%T"), config.quote_template % self.__dict__
+ , place, quoter)).encode("utf-8")
def __eq__(self, otherquote):
""" Vérifie si cette phrase n'a pas déjà été dite par la même personne.
return author
def get_clash_authors(self):
- """ Renvoie une liste de liste d'auteurs qui sont enresgitrés avec des casses différentes. """
+ """ Renvoie une liste de liste d'auteurs qui sont enregistrés avec des casses différentes. """
authors = list(set([q.author for q in self.quotelist]))
authors = equivalence_partition(authors, lambda x,y: x.lower() == y.lower())
authors = [list(c) for c in authors if len(c) > 1]
kwargs["timestamp"] = timestamp
newquote = Quote(**kwargs)
if not newquote in self.quotelist:
- self.search
self.quotelist.append(newquote)
return True
return False