diff --git a/external/annotation.py b/external/annotation.py index 43ede0f..cb25990 100644 --- a/external/annotation.py +++ b/external/annotation.py @@ -41,7 +41,7 @@ class AnnotationsElement(Element): for k, v in kw.items(): self[k] = v - def __call__(self, loader): + def execute(self, loader): obj = self.parent.object dc = IZopeDublinCore(obj, None) if dc is not None: diff --git a/external/base.py b/external/base.py index f89fe44..7832f64 100644 --- a/external/base.py +++ b/external/base.py @@ -80,7 +80,7 @@ class Loader(Base, SetupManager): def load(self, elements): for element in elements: - element(self) + element.execute(self) if element.subElements is not None: self.load(element.subElements) diff --git a/external/element.py b/external/element.py index 9b24e52..09c0dd1 100644 --- a/external/element.py +++ b/external/element.py @@ -69,7 +69,7 @@ class Element(dict): self.subElements = [] self.subElements.append(element) - def __call__(self, loader): + def execute(self, loader): pass @@ -78,7 +78,7 @@ class ConceptElement(Element): elementType = 'concept' posArgs = ('name', 'title', 'type') - def __call__(self, loader): + def execute(self, loader): type = loader.concepts[self['type']] kw = dict((k, v) for k, v in self.items() if k not in self.posArgs) @@ -97,7 +97,7 @@ class TypeElement(ConceptElement): if not isinstance(ti, basestring): self['typeInterface'] = '.'.join((ti.__module__, ti.__name__)) - def __call__(self, loader): + def execute(self, loader): kw = dict((k, v) for k, v in self.items() if k not in ('name', 'title', 'type', 'typeInterface')) ti = self.get('typeInterface') @@ -137,7 +137,7 @@ class ResourceElement(Element): f.write(content) f.close() - def __call__(self, loader): + def execute(self, loader): type = loader.concepts[self['type']] kw = dict((k, v) for k, v in self.items() if k not in self.posArgs) @@ -156,7 +156,7 @@ class ResourceRelationElement(ChildElement): elementType = 'resourceRelation' - def __call__(self, loader): + def execute(self, loader): loader.assignResource(self['first'], self['second'], self['predicate']) @@ -171,7 +171,7 @@ class NodeElement(Element): for k, v in kw.items(): self[k] = v - def __call__(self, loader): + def execute(self, loader): type = self['type'] cont = traverse(loader.views, self['path']) target = self.pop('target', None) diff --git a/external/interfaces.py b/external/interfaces.py index cb1828d..681a085 100644 --- a/external/interfaces.py +++ b/external/interfaces.py @@ -51,7 +51,7 @@ class IElement(Interface): """ Add a sub-element, may be called by the extractor during export. """ - def __call__(loader): + def execute(loader): """ Create the object that is specified by the element in the context of the loader and return it. """ diff --git a/external/pyfunc.py b/external/pyfunc.py index 8a74091..83a0293 100644 --- a/external/pyfunc.py +++ b/external/pyfunc.py @@ -46,6 +46,7 @@ class InputProcessor(dict): def __init__(self): self.elements = [] + self['__builtins__'] = {} # security! def __getitem__(self, key): def factory(*args, **kw):