More relaxed definition of what a commented line is in a blocklist.

Decorate readranges with raiseError rather than parse to increase performance.
This commit is contained in:
John Garland 2009-12-21 13:58:24 +00:00
parent 5a8c443d50
commit e0ebffb8fa

View File

@ -60,7 +60,8 @@ class BaseReader(object):
def is_ignored(self, line): def is_ignored(self, line):
"""Ignore commented lines and blank lines""" """Ignore commented lines and blank lines"""
return line.startswith('#') or not line.strip() line = line.strip()
return line.startswith('#') or not line
def is_valid(self): def is_valid(self):
"""Determines whether file is valid for this reader""" """Determines whether file is valid for this reader"""
@ -80,6 +81,7 @@ class BaseReader(object):
blocklist.close() blocklist.close()
return valid return valid
@raiseError(ReaderParseError)
def readranges(self): def readranges(self):
"""Yields each ip range from the file""" """Yields each ip range from the file"""
blocklist = self.open() blocklist = self.open()
@ -90,13 +92,11 @@ class BaseReader(object):
class EmuleReader(BaseReader): class EmuleReader(BaseReader):
"""Blocklist reader for emule style blocklists""" """Blocklist reader for emule style blocklists"""
@raiseError(ReaderParseError)
def parse(self, line): def parse(self, line):
return line.strip().split(" , ")[0].split(" - ") return line.strip().split(" , ")[0].split(" - ")
class SafePeerReader(BaseReader): class SafePeerReader(BaseReader):
"""Blocklist reader for SafePeer style blocklists""" """Blocklist reader for SafePeer style blocklists"""
@raiseError(ReaderParseError)
def parse(self, line): def parse(self, line):
return line.strip().split(":")[-1].split("-") return line.strip().split(":")[-1].split("-")