def eval_components(self, *args, **kwargs):
        """
        :return: evaluated lambda functions of each of the components in
            model_dict, to be used in numerical calculation.
        """
        bound_arguments = self.__signature__.bind(*args, **kwargs)
        kwargs = bound_arguments.arguments  # Only work with kwargs
        components = dict(zip(self, self.numerical_components))
        # Evaluate the variables in topological order.
        for symbol in self.ordered_symbols:
            if symbol.name not in kwargs:
                dependencies = self.connectivity_mapping[symbol]
                dependencies_kwargs = {d.name: kwargs[d.name]
                                       for d in dependencies}
                kwargs[symbol.name] = components[symbol](**dependencies_kwargs)

        return [np.atleast_1d(kwargs[var.name]) for var in self]
def eval_components ( self , * args , ** kwargs ) : bound_arguments = self . __signature__ . bind ( * args , ** kwargs ) kwargs = bound_arguments . arguments components = dict ( zip ( self , self . numerical_components ) ) for symbol in self . ordered_symbols : if symbol . name not in kwargs : dependencies = self . connectivity_mapping [ symbol ] dependencies_kwargs = { d . name : kwargs [ d . name ] for d in dependencies } kwargs [ symbol . name ] = components [ symbol ] ( ** dependencies_kwargs ) return [ np . atleast_1d ( kwargs [ var . name ] ) for var in self ]
:return: evaluated lambda functions of each of the components in
            model_dict, to be used in numerical calculation.