def cmp_latents(latent1, latent2): rev1, rev2 = latent1.revnum(), latent2.revnum() if rev1 is not None and rev2 is not None and rev1 != rev2: # lower revnums first return util.cmp(revnum_key(rev1), revnum_key(rev2)) # otherwise, do it by date return util.cmp(latent1.date_lower_bound(), latent2.date_lower_bound())
def fcmp(f1, f2): if f1 == f2: return cmp(f1, f2) l1, l2 = lib_of_filename(f1, **kwargs), lib_of_filename(f2, **kwargs) if l1 == l2: return cmp(f1, f2) # this only works correctly if the closure is *reflexive* as # well as transitive, because we require that if A requires B, # then A must have strictly more requires than B (i.e., it # must include itself) if len(requires[l1]) != len(requires[l2]): return cmp(len(requires[l1]), len(requires[l2])) return cmp(l1, l2)
def endgame(self): if self.state == "failed": return self.state = "failed" with self.printer.buffer(self.channel) as buffer: buffer += "01│00,01 Cards Against Humanity is over!" players = sorted(self.allplayers, key=CAHPlayer.score)[::-1] for i, player in enumerate(players): if i and players[i - 1].score() == player.score(): rank = " " else: rank = ordinal(i + 1) + (" " if i < 9 else "") buffer += CAHPREFIX + "%s 01│ %s - %d point%s" % ( rank, player.nick, player.score(), ["", "s"][cmp( 1, player.score())])
def endgame(self): if self.state == "failed": return self.state = "failed" with self.printer.buffer(self.channel) as buffer: buffer += "01│00,01 Cards Against Humanity is over!" players = sorted(self.allplayers, key=CAHPlayer.score)[::-1] for i, player in enumerate(players): if i and players[i-1].score() == player.score(): rank = " " else: rank = ordinal(i+1) + (" " if i < 9 else "") buffer += CAHPREFIX + "%s 01│ %s - %d point%s" % (rank, player.nick, player.score(), ["", "s"][cmp(1, player.score())])
def cmp_timestamp(a, b): return cmp(a.timestamp, b.timestamp)
def nickcmp(self, nick1, nick2): """ Implements RFC-compliant nickcmp """ return util.cmp(self.nickkey(nick1), self.nickkey(nick2))