shelved.py

Go to the documentation of this file.
00001 from win32api import GetComputerName
00002 import shelve
00003 
00004 class persistence(object):
00005     def __init__(self, fname):
00006         self.__fname = fname
00007         self.__isUsingSpecificFileName = False
00008 
00009     def set_isUsingSpecificFileName(self,bool):
00010         self.__isUsingSpecificFileName = bool
00011     
00012     def get_isUsingSpecificFileName(self):
00013         return self.__isUsingSpecificFileName
00014     
00015     def set_fname(self,fname):
00016         self.__fname = fname
00017         self.isUsingSpecificFileName = True
00018     
00019     def get_fname(self):
00020         return self.__fname
00021     
00022     def getShelvedFileName(self):
00023         if (self.isUsingSpecificFileName):
00024             return self.fname
00025         else:
00026             return '%s_%s_%s.dat' % (self.fname,__name__,GetComputerName())
00027     
00028     def shelveThis(self,key,value):
00029         handle = shelve.open(self.getShelvedFileName())
00030         handle[key] = value
00031         handle.close()
00032     
00033     def unShelveThis(self,key):
00034         value = ''
00035         fname = self.getShelvedFileName()
00036         try:
00037             handle = shelve.open(fname)
00038             if (handle.has_key(key)):
00039                 try:
00040                     value = handle[key]
00041                 except Exception, details:
00042                     print 'Unable to un-shelve from "%s" due to "%s".' % (fname,str(details))
00043                 finally:
00044                     handle.close()
00045         except:
00046             print 'Unable to un-shelve from "%s", probably due to a faulty path name.' % fname
00047         return value
00048 
00049     fname = property(get_fname, set_fname)
00050     isUsingSpecificFileName = property(get_isUsingSpecificFileName, set_isUsingSpecificFileName)
00051 
00052 

© Copyright 2008-2009 Vyper Logix Corp., All Right Reserved; If you reference this document or any part of this document you must use the citation verbatim (including the link) "© Copyright 2008-2009 Vyper Logix Corp., All Right Reserved."

Notice: This source code contained in this document is NOT open source and is NOT being distributed as open source.

122,241 lines of code and growing...