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 """
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]