--- a/src/pyams_file/thumbnail.py Mon Jul 02 17:07:25 2018 +0200
+++ b/src/pyams_file/thumbnail.py Mon Jul 02 17:07:48 2018 +0200
@@ -23,6 +23,7 @@
from zope.traversing.interfaces import ITraversable
# import packages
+from BTrees import OOBTree
from persistent.dict import PersistentDict
from pyams_file.file import FileFactory
from pyams_file.zmi.image import render_image
@@ -50,7 +51,7 @@
def __init__(self, image):
self.image = image
- self.thumbnails = get_annotation_adapter(image, THUMBNAIL_ANNOTATIONS_KEY, PersistentDict,
+ self.thumbnails = get_annotation_adapter(image, THUMBNAIL_ANNOTATIONS_KEY, OOBTree.OOBTree,
notify=False, locate=False)
def get_image_size(self):
@@ -104,15 +105,15 @@
geometries = get_annotation_adapter(self.image, THUMBNAIL_GEOMETRY_KEY, PersistentDict,
notify=False, locate=False)
geometries[selection_name] = geometry
- for current_thumbnail_name in self.thumbnails.copy():
+ for current_thumbnail_name in list(self.thumbnails.keys()):
if (current_thumbnail_name == selection_name) or \
- current_thumbnail_name.startswith(selection_name + ':'):
+ current_thumbnail_name.startswith('{0}:'.format(selection_name)):
self.delete_thumbnail(current_thumbnail_name)
def clear_geometries(self):
geometries = get_annotation_adapter(self.image, THUMBNAIL_GEOMETRY_KEY)
if geometries is not None:
- for geometry_name in geometries.copy():
+ for geometry_name in list(geometries.keys()):
del geometries[geometry_name]
def get_thumbnail_name(self, thumbnail_name, with_size=False):
@@ -211,7 +212,7 @@
del self.thumbnails[thumbnail_name]
def clear_thumbnails(self):
- [self.delete_thumbnail(thumbnail_name) for thumbnail_name in self.thumbnails.copy()]
+ [self.delete_thumbnail(thumbnail_name) for thumbnail_name in list(self.thumbnails.keys())]
@subscriber(IFileModifiedEvent, context_selector=IImage)