Revision: 6808 Author: nicdumz Date: 2009-05-03 17:38:53 +0000 (Sun, 03 May 2009)
Log Message: ----------- Follow-up to r6797 & r6802: importing os in diskcache.delete is _necessary_ Documenting the reasons, so it doesnt get deleted a second time ;)
Modified Paths: -------------- trunk/pywikipedia/diskcache.py
Modified: trunk/pywikipedia/diskcache.py =================================================================== --- trunk/pywikipedia/diskcache.py 2009-05-03 15:47:29 UTC (rev 6807) +++ trunk/pywikipedia/diskcache.py 2009-05-03 17:38:53 UTC (rev 6808) @@ -64,8 +64,25 @@ self.cache = []
def delete(self): - self.cache_file.close() - os.unlink(self.cache_path) + """ + Method is called from wikipedia._flush, on Python exit + Some modules might already have been unloaded, and some + objects might already have been freed: + 1) We have to reload all modules used + 2) We have to dereference the loaded modules after usage + 3) Strange errors can be raised here, we don't care. + """ + try: + self.cache_file.close() + except IOError: + pass + try: + import os + os.unlink(self.cache_path) + except OSError: + pass + finally: + os = None
def __getitem__(self, key): key = key.lower()
pywikipedia-svn@lists.wikimedia.org