[mod] put cache.py in another file

This commit is contained in:
Laurent Peuch 2016-02-18 06:43:28 +01:00
parent c95b0d0207
commit 4747366446
2 changed files with 48 additions and 46 deletions

46
prosopopee/cache.py Normal file
View File

@ -0,0 +1,46 @@
import os
import json
CACHE_VERSION = 1
class Cache(object):
cache_file_path = os.path.join(os.getcwd(), ".prosopopee_cache")
def __init__(self, json):
# fix: I need to keep a reference to json because for whatever reason
# modules are set to None during python shutdown thus totally breaking
# the __del__ call to save the cache
# This wonderfully stupid behavior has been fixed in 3.4 (which nobody uses)
self.json = json
if os.path.exists(os.path.join(os.getcwd(), ".prosopopee_cache")):
self.cache = json.load(open(self.cache_file_path, "r"))
else:
self.cache = {"version": CACHE_VERSION}
if "version" not in self.cache or self.cache["version"] != CACHE_VERSION:
print "info: cache format as changed, prune cache"
self.cache = {"version": CACHE_VERSION}
def thumbnail_needs_to_be_generated(self, source, target, image):
if not os.path.exists(target):
return True
if target not in self.cache:
return True
cached_thumbnail = self.cache[target]
if cached_thumbnail["size"] != os.path.getsize(source) or cached_thumbnail["options"] != image.options:
return True
return False
def cache_thumbnail(self, source, target, image):
self.cache[target] = {"size": os.path.getsize(source), "options": image.options}
def __del__(self):
self.json.dump(self.cache, open(self.cache_file_path, "w"))
CACHE = Cache(json=json)

View File

@ -2,12 +2,13 @@
import os import os
import sys import sys
import json
import yaml import yaml
import shutil import shutil
from jinja2 import Environment, FileSystemLoader from jinja2 import Environment, FileSystemLoader
from .cache import CACHE
templates = Environment(loader=FileSystemLoader([os.path.realpath(os.path.join(os.getcwd(), "templates")), os.path.join(os.path.split(os.path.realpath(__file__))[0], "templates")])) templates = Environment(loader=FileSystemLoader([os.path.realpath(os.path.join(os.getcwd(), "templates")), os.path.join(os.path.split(os.path.realpath(__file__))[0], "templates")]))
index_template = templates.get_template("index.html") index_template = templates.get_template("index.html")
gallery_index_template = templates.get_template("gallery-index.html") gallery_index_template = templates.get_template("gallery-index.html")
@ -18,51 +19,6 @@ gm_settings = {
"auto-orient": True "auto-orient": True
} }
CACHE_VERSION = 1
class Cache(object):
cache_file_path = os.path.join(os.getcwd(), ".prosopopee_cache")
def __init__(self, json):
# fix: I need to keep a reference to json because for whatever reason
# modules are set to None during python shutdown thus totally breaking
# the __del__ call to save the cache
# This wonderfully stupid behavior has been fixed in 3.4 (which nobody uses)
self.json = json
if os.path.exists(os.path.join(os.getcwd(), ".prosopopee_cache")):
self.cache = json.load(open(self.cache_file_path, "r"))
else:
self.cache = {"version": CACHE_VERSION}
if "version" not in self.cache or self.cache["version"] != CACHE_VERSION:
print "info: cache format as changed, prune cache"
self.cache = {"version": CACHE_VERSION}
def thumbnail_needs_to_be_generated(self, source, target, image):
if not os.path.exists(target):
return True
if target not in self.cache:
return True
cached_thumbnail = self.cache[target]
if cached_thumbnail["size"] != os.path.getsize(source) or cached_thumbnail["options"] != image.options:
return True
return False
def cache_thumbnail(self, source, target, image):
self.cache[target] = {"size": os.path.getsize(source), "options": image.options}
def __del__(self):
self.json.dump(self.cache, open(self.cache_file_path, "w"))
CACHE = Cache(json=json)
class Image(object): class Image(object):
base_dir = "" base_dir = ""
target_dir = "" target_dir = ""