

def _find_handler(self):
    app = self.application
    handlers = app._get_host_handlers(self.request)
    if (not handlers):
        self.handler_class = RedirectHandler
        self.handler_kwargs = dict(url=(('http://' + app.default_host) + '/'))
        return
    for spec in handlers:
        match = spec.regex.match(self.request.path)
        if match:
            self.handler_class = spec.handler_class
            self.handler_kwargs = spec.kwargs
            if spec.regex.groups:
                if spec.regex.groupindex:
                    self.path_kwargs = dict(((str(k), _unquote_or_none(v)) for (k, v) in match.groupdict().items()))
                else:
                    self.path_args = [_unquote_or_none(s) for s in match.groups()]
            return
    if app.settings.get('default_handler_class'):
        self.handler_class = app.settings['default_handler_class']
        self.handler_kwargs = app.settings.get('default_handler_args', {
            
        })
    else:
        self.handler_class = ErrorHandler
        self.handler_kwargs = dict(status_code=404)

dataset/ETHPy150Open RobotWebTools/rosbridge_suite/rosbridge_server/src/tornado/web.py _RequestDispatcher._find_handler/original