Hello fellows,

I just wanted to know, if there is any best practice concerning
following code:

import re, shelve

class TextMatcher:
    def __init__(self, patterns, email=False, dbName='textmatch.db'):
        self._initPatterns(patterns)
        self.email = email
        self.dbName = dbName
        if self.email:
            self.emailList = []
            self.emailList.append(
                re.compile(r'[EMAIL PROTECTED]'))

    def match(self, src, url):
        self.matchDict = {}
        self.matchDict[url] = {}
        # The next 2 functions just add stuff to self.matchDict
        if self.email:
            self._addEmails(src, url)
        self._addPatterns(src, url)
        # Is it good practice to open, write and close the db straight
        # away? Or is it better to leave it open until the whole program
        # has finished, and close it then?
        self.openDB(self.dbName)
        self.db[url] = self.matchDict[url]
        self.db.close()
        # I want to del the matchDict each time so it can't grow big.
        # Is this good, or should it be left open, too?
        del self.matchDict

    def openDB(self, dbName=None, modeflag='c'):
        if dbName == None:
            self.db = shelve.open('textmatch.db', flag=modeflag)
        else:
            self.db = shelve.open(dbName, flag=modeflag)

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to