X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/73ed39b580977913998bbb988e52e474fe9835ae..bbf7159c8211a398e573122c66b93722f5125c60:/wxPython/samples/ide/activegrid/util/cachedloader.py diff --git a/wxPython/samples/ide/activegrid/util/cachedloader.py b/wxPython/samples/ide/activegrid/util/cachedloader.py deleted file mode 100644 index f0fc69de15..0000000000 --- a/wxPython/samples/ide/activegrid/util/cachedloader.py +++ /dev/null @@ -1,87 +0,0 @@ -#---------------------------------------------------------------------------- -# Name: cachedloader.py -# Purpose: -# -# Author: Joel Hare -# -# Created: 8/31/04 -# CVS-ID: $Id$ -# Copyright: (c) 2004-2005 ActiveGrid, Inc. -# License: wxWindows License -#---------------------------------------------------------------------------- - -import copy -import os.path -import string -import cStringIO - -import time - -# TODO: Instantiate the database and create a pool - - -class CachedLoader(object): - def __init__(self): - self.cache = {} - self.baseLoadDir = None - - def fullPath(self, fileName): - if os.path.isabs(fileName): - absPath = fileName - elif self.baseLoadDir: - absPath = os.path.join(self.baseLoadDir, fileName) - else: - absPath = os.path.abspath(fileName) - return absPath - - def setPrototype(self, fileName, loadedFile): - absPath = self.fullPath(fileName) - mtime = time.time() + 31536000.0 # Make sure prototypes aren't replaced by files on disk - self.cache[absPath] = (mtime, loadedFile) - - def update(self, loader): - self.cache.update(loader.cache) - - def clear(self): - self.cache.clear() - - def delete(self, fileName): - absPath = self.fullPath(fileName) - del self.cache[absPath] - - def needsLoad(self, fileName): - absPath = self.fullPath(fileName) - try: - cached = self.cache[absPath] - cachedTime = cached[0] - if cachedTime >= os.path.getmtime(absPath): - return False - except KeyError: - pass - return True - - def load(self, fileName, loader): - absPath = self.fullPath(fileName) - loadedFile = None - try: - cached = self.cache[absPath] - except KeyError: - cached = None - - if cached: - cachedTime = cached[0] - # ToDO We might need smarter logic for checking if a file needs to be reloaded - # ToDo We need a way to disable checking if this is a production server - if cachedTime >= os.path.getmtime(absPath): - loadedFile = cached[1] - - if not loadedFile: - targetFile = file(absPath) - try: - mtime = os.path.getmtime(absPath) - loadedFile = loader(targetFile) - self.cache[absPath] = (mtime, loadedFile) - finally: - targetFile.close() - return loadedFile -