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))
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
def __repr__(self): return '{}{}'.format(self.klass.__name__, call_sig(self.args, self.kwargs))
def __repr__(self): return '{}{}'.format(type(self).__name__, call_sig(self.args, self.kwargs))
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