def get_skin_obj(obj, view=None, cls=None): layer = utility.getLayer() key = layer, obj inst = registry.get(key) if inst is None: cls = obj.__class__ inst = registry[key] = cls.__new__(cls) inst.__dict__ = obj.__dict__.copy() for manager in utility.getManagers(layer): # register template; this call returns ``True`` if the # template was invalidated (changed filename) if manager.registerTemplate(inst, obj): inst._parsed = False inst.getObjectFSPath() return of(inst, view)
def get(template, view=None, cls=None): layer = utility.getLayer() key = layer, template inst = registry.get(key) if inst is None: cls = type(template) inst = registry[key] = cls.__new__(cls) inst.__dict__ = template.__dict__.copy() for manager in utility.getManagers(layer): # register template; this call returns ``True`` if the # template was invalidated (changed filename) if manager.registerTemplate(inst, template): inst._v_last_read = False inst.__dict__.pop('_v_template', None) break if view is not None and IAcquirer is not None: if IAcquirer.providedBy(inst) and IAcquirer.providedBy(view): return inst.__of__(view) return inst