def __init__(self): self.pool = [] # Why lu_nick and lu_address? # # One of the biggest slow-downs for a log analysis program is # nickname tracking. In a previous version of silan, this was # done very cleanly by massaging a single list of users until # the right user or group of users could be found. This proved # to take an enormous amount of effort, and was unacceptable. # # From this came the UserCrate. The purpose of this is to do # pretty much the same thing as a big list would. The # difference is in these two dictionaries. Rather than repeated # iterations through a list of users, a user can be quickly # obtained simply by looking it up by whatever information is # on hand. # # There is a cost of memory usage involved, but the gain in # efficiency and understandability is enormous. self.lu_nick = {} self.lu_address = {} self.ownuser = None