Exemplo n.º 1
0
    def __init__(self, parameters, code, render_kwds=None, connectors=None):

        for param in parameters:
            if param.annotation.input and param.annotation.output:
                raise ValueError(
                    "Transformation cannot have 'io' parameters ('" +
                    param.name + "')")

        self.signature = Signature(parameters)

        for param in self.signature.parameters.values():
            setattr(
                self, param.name,
                TransformationParameter(self, param.name,
                                        param.annotation.type))

        if connectors is not None:
            self.connectors = connectors
        else:
            self.connectors = [
                param.name for param in parameters if param.annotation.array
            ]

        tr_param_names = ['idxs'] + [
            param.name for param in self.signature.parameters.values()
        ]
        self.snippet = Snippet(template_def(tr_param_names, code),
                               render_kwds=render_kwds)
Exemplo n.º 2
0
 def __init__(self, parameters, kernel_calls, internal_args, temp_buffers):
     self.signature = Signature(parameters)
     self.parameter = make_parameter_container(self, parameters)
     self._kernel_calls = [
         kernel_call.finalize(internal_args) for kernel_call in kernel_calls
     ]
     self._internal_args = internal_args
     self.__tempalloc__ = temp_buffers
Exemplo n.º 3
0
 def _update_attributes(self):
     """
     Updates ``signature`` and ``parameter`` attributes.
     Called by the methods that change the signature.
     """
     leaf_params = self._tr_tree.get_leaf_parameters()
     self.signature = Signature(leaf_params)
     self.parameter = make_parameter_container(self, leaf_params)