def __init__(self): self.mLogLevel = 3 Domains.__init__(self) self.mTableFamilies = TableFamiliesAdda(self.dbhandle, "adda") self.mTableDomains = TableDomainsAdda(self.dbhandle, "adda") self.mTableFamilies.SetName(self.mTableNameFamilies) self.mTableDomains.SetName(self.mTableNameDomains) self.mFileNameDomains = "adda"
def __init__ ( self ): # log parameters self.mLogLevel = 3 self.mLongOptions.append( 'descriptions=' ) self.mFileNameDescriptions = None Domains.__init__( self ) self.mTableFamilies = TableFamiliesReference( self.dbhandle, "adda" ) self.mTableDomains = TableDomainsReference( self.dbhandle, "adda" ) self.mTableFamilies.SetName( self.mTableNameFamilies ) self.mTableDomains.SetName( self.mTableNameDomains ) self.mFileNameDomains = "adda"
def process(filename): """ main processing loop, read the supplied file line by line, counting domains :param filename: :return domain_results: """ domain_results = Domains() with open(filename, 'r') as emails: try: for line in emails: email = EmailAddress(line) domain_results.add_domain(email) except UnicodeDecodeError as e: logging.warning("File: {} non-unicode characters {}".format(filename, e)) except Exception as e: logging.error(e) return domain_results
def Create( self ): Domains.Create( self ) if self.mFileNameDescriptions and os.path.exists( self.mFileNameDescriptions): infile = self.Open( self.mFileNameDescriptions, "r" ) nset = 0 for line in infile: if line.startswith("#"): continue if line.startswith("family\t"): continue family, description = line[:-1].split("\t") self.mTableFamilies.SetDescription( family.strip(), description.strip() ) nset +=1 print "--> descriptions set for %i families" % (nset) else: print "--> no descriptions available."
def ProcessOptions( self, optlist ): Domains.ProcessOptions( self, optlist) for o,a in optlist: if o == "--descriptions": self.mFileNameDescriptions = a