Ejemplo n.º 1
0
 def _param_resolve(self, param):
     # Resolves to canonical parameters, including default case.
     if param is None:
         assert self._allow_default
         assert len(self.param_list) > 0
         param = self.param_list[0]
     elif not isinstance(param, tuple):
         if not isinstance(param, list):
             # Assume scalar.
             param = (param, )
         else:
             param = tuple(param)
     return get_param_canonical(param)
Ejemplo n.º 2
0
 def add_instantiation(self, param, instantiation):
     """Adds a unique instantiation. """
     assert instantiation is not None
     # Ensure that we do not already have this tuple.
     param = get_param_canonical(self._param_resolve(param))
     if param in self._instantiation_map:
         raise RuntimeError(
             "Parameter instantiation already registered: {}".format(param))
     # Register it.
     self.param_list.append(param)
     self._instantiation_map[param] = instantiation
     self._on_add(param, instantiation)
     return param
Ejemplo n.º 3
0
 def add_instantiation(self, param, instantiation):
     """Adds a unique instantiation. """
     assert instantiation is not None
     # Ensure that we do not already have this tuple.
     param = get_param_canonical(self._param_resolve(param))
     if param in self._instantiation_map:
         raise RuntimeError(
             "Parameter instantiation already registered: {}".format(param))
     # Register it.
     self.param_list.append(param)
     self._instantiation_map[param] = instantiation
     self._on_add(param, instantiation)
     return param
Ejemplo n.º 4
0
 def _param_resolve(self, param):
     # Resolves to canonical parameters, including default case.
     if param is None:
         assert self._allow_default
         assert len(self.param_list) > 0
         param = self.param_list[0]
     elif not isinstance(param, tuple):
         if not isinstance(param, list):
             # Assume scalar.
             param = (param,)
         else:
             param = tuple(param)
     return get_param_canonical(param)
    def add_instantiation(self, param, instantiation):
        """Adds a unique instantiation.

        @pre `param` must not have already been added.
        """
        # Ensure that we do not already have this tuple.
        param = get_param_canonical(self._param_resolve(param))
        if param in self._instantiation_map:
            raise RuntimeError(
                "Parameter instantiation already registered: {}".format(param))
        # Register it.
        self.param_list.append(param)
        self._add_instantiation_internal(param, instantiation)
        return param
Ejemplo n.º 6
0
    def add_instantiation(self, param, instantiation):
        """Adds a unique instantiation.

        @pre `param` must not have already been added.
        """
        # Ensure that we do not already have this tuple.
        param = get_param_canonical(self._param_resolve(param))
        if param in self._instantiation_map:
            raise RuntimeError(
                "Parameter instantiation already registered: {}".format(param))
        # Register it.
        self.param_list.append(param)
        self._add_instantiation_internal(param, instantiation)
        return param
Ejemplo n.º 7
0
 def _check_alias(self, canonical, alias):
     actual = get_param_canonical([alias])[0]
     self.assertTrue(actual is canonical)
Ejemplo n.º 8
0
 def _check_alias(self, canonical, alias):
     actual = get_param_canonical([alias])[0]
     self.assertTrue(actual is canonical)