def _tr_init(self, set_conf=0, transform=None): """ initialize the zope transform by loading the wrapped transform """ __traceback_info__ = (self.module,) if transform is None: transform = self._load_transform() else: self._v_transform = transform # check this is a valid transform if not hasattr(transform, "__class__"): raise TransformException("Invalid transform : transform is not a class") if not ITransform.providedBy(transform): raise TransformException("Invalid transform : ITransform is not implemented by %s" % transform.__class__) if not hasattr(transform, "inputs"): raise TransformException('Invalid transform : missing required "inputs" attribute') if not hasattr(transform, "output"): raise TransformException('Invalid transform : missing required "output" attribute') # manage configuration if set_conf and hasattr(transform, "config"): conf = dict(transform.config) self._config.update(conf) make_config_persistent(self._config) if hasattr(transform, "config_metadata"): conf = dict(transform.config_metadata) self._config_metadata.update(conf) make_config_persistent(self._config_metadata) transform.config = dict(self._config) make_config_nonpersistent(transform.config) transform.config_metadata = dict(self._config_metadata) make_config_nonpersistent(transform.config_metadata) self.inputs = transform.inputs self.output = transform.output self.output_encoding = getattr(transform, "output_encoding", None) return transform
def registerTransform(self, transform): """register a new transform transform isn't a Zope Transform (the wrapper) but the wrapped transform the persistence wrapper will be created here """ # needed when call from transform.transforms.initialize which # register non zope transform module = str(transform.__module__) transform = Transform(transform.name(), module, transform) if not ITransform.providedBy(transform): raise TransformException('%s does not implement ITransform' % transform) name = transform.name() __traceback_info__ = (name, transform) if name not in self.objectIds(): self._setObject(name, transform) self._mapTransform(transform)
def _tr_init(self, set_conf=0, transform=None): """ initialize the zope transform by loading the wrapped transform """ __traceback_info__ = (self.module, ) if transform is None: transform = self._load_transform() else: self._v_transform = transform # check this is a valid transform if not hasattr(transform, '__class__'): raise TransformException( 'Invalid transform : transform is not a class') if not ITransform.providedBy(transform): raise TransformException( 'Invalid transform : ITransform is not implemented by %s' % transform.__class__) if not hasattr(transform, 'inputs'): raise TransformException( 'Invalid transform : missing required "inputs" attribute') if not hasattr(transform, 'output'): raise TransformException( 'Invalid transform : missing required "output" attribute') # manage configuration if set_conf and hasattr(transform, 'config'): conf = dict(transform.config) self._config.update(conf) make_config_persistent(self._config) if hasattr(transform, 'config_metadata'): conf = dict(transform.config_metadata) self._config_metadata.update(conf) make_config_persistent(self._config_metadata) transform.config = dict(self._config) make_config_nonpersistent(transform.config) transform.config_metadata = dict(self._config_metadata) make_config_nonpersistent(transform.config_metadata) self.inputs = transform.inputs self.output = transform.output self.output_encoding = getattr(transform, 'output_encoding', None) return transform