Exemple #1
0
 def __repr__(self):
     if self.classes:
         classes = {"classes": self.classes}
     else:
         classes = {}
     kwarg_dict = dict(chain(self.kwargs.items(), classes.items()))
     return "{}{}".format(type(self).__name__, call_sig(self.args, kwarg_dict))
Exemple #2
0
    def __call__(self, *args, **kwargs):
        if len(args) > len(self.view_class.PARAMETERS):
            raise TypeError(
                'You passed more parameters than {} accepts'.format(
                    self.view_class.__name__))
        param_dict = {}
        for passed_arg, required_arg in zip(args, self.view_class.PARAMETERS):
            param_dict[required_arg] = passed_arg
        for key, value in kwargs.items():
            if key not in self.view_class.PARAMETERS:
                raise TypeError('Unknown view parameter {}'.format(key))
            param_dict[key] = value

        for param in self.view_class.PARAMETERS:
            if param not in param_dict:
                raise TypeError(
                    'You did not pass the required parameter {} into {}'.
                    format(param, self.view_class.__name__))

        new_kwargs = copy(self.kwargs)
        if 'additional_context' not in self.kwargs:
            new_kwargs['additional_context'] = {}
        new_kwargs['additional_context'].update(param_dict)
        # And finally, set up a nice logger
        parent_logger = self.parent_object.logger
        current_name = self.view_class.__name__
        # Now add the params to the name so it is class_name(args)
        current_name += call_sig(
            (), param_dict)  # no args because we process everything into dict
        new_kwargs['logger'] = create_child_logger(parent_logger, current_name)
        result = self.view_class(self.parent_object, *self.args, **new_kwargs)
        self.parent_object.child_widget_accessed(result)
        return result
Exemple #3
0
 def __repr__(self):
     return '{}{}'.format(self.klass.__name__,
                          call_sig(self.args, self.kwargs))
Exemple #4
0
 def __repr__(self):
     return '{}{}'.format(type(self).__name__, call_sig(self.args, self.kwargs))
Exemple #5
0
 def __repr__(self):
     return "{}{}".format(
         type(self).__name__, call_sig(self.args, self.kwargs))
def test_call_sig(args, kwargs, sig):
    assert call_sig(args, kwargs) == sig