Question: Best Practice? (module 'shelve')

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Thomas Ploch

    Question: Best Practice? (module 'shelve')

    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='textmat ch.db'):
    self._initPatte rns(patterns)
    self.email = email
    self.dbName = dbName
    if self.email:
    self.emailList = []
    self.emailList. append(
    re.compile(r'[a-zA-Z0-9_.]+@\w+\.\w+'))

    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._addPatter ns(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(sel f.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('te xtmatch.db', flag=modeflag)
    else:
    self.db = shelve.open(dbN ame, flag=modeflag)

Working...