

def __init__(self, route, function):
    self.api = route.get('api', hug.api.from_object(function))
    if ('examples' in route):
        self.examples = route['examples']
    if (not hasattr(function, 'interface')):
        function.__dict__['interface'] = Interfaces(function)
    self.interface = function.interface
    self.requires = route.get('requires', ())
    if ('validate' in route):
        self.validate_function = self['validate']
    if ('output_invalid' in route):
        self.invalid_outputs = route['output_invalid']
    if (not ('parameters' in route)):
        self.defaults = self.interface.defaults
        self.parameters = self.interface.parameters
        self.required = self.interface.required
    else:
        self.defaults = route.get('defaults', {
            
        })
        self.parameters = tuple(route['parameters'])
        self.required = tuple([parameter for parameter in self.parameters if (parameter not in self.defaults)])
    self.outputs = route.get('output', None)
    self.transform = route.get('transform', None)
    if ((self.transform is None) and (not isinstance(self.interface.transform, (str, type(None))))):
        self.transform = self.interface.transform
    if hasattr(self.transform, 'dump'):
        self.transform = self.transform.dump
        self.output_doc = self.transform.__doc__
    elif (self.transform or self.interface.transform):
        output_doc = (self.transform or self.interface.transform)
        self.output_doc = (output_doc if (type(output_doc) is str) else output_doc.__doc__)
    self.raise_on_invalid = route.get('raise_on_invalid', False)
    if ('on_invalid' in route):
        self.on_invalid = route['on_invalid']
    elif self.transform:
        self.on_invalid = self.transform
    defined_directives = self.api.directives()
    used_directives = set(self.parameters).intersection(defined_directives)
    self.directives = {directive_name: defined_directives[directive_name] for directive_name in used_directives}
    self.directives.update(self.interface.directives)

dataset/ETHPy150Open timothycrosley/hug/hug/interface.py Interface.__init__/VarMisuse@114/138 `route`->`self`