def do_X(self, callbackMethod, *args, **kwargs):
        if self.path == '/':
            callback = SupyIndex()
        elif self.path in ('/robots.txt',):
            callback = Static('text/plain; charset=utf-8')
        elif self.path in ('/default.css',):
            callback = Static('text/css')
        elif self.path == '/favicon.ico':
            callback = Favicon()
        else:
            subdir = self.path.split('/')[1]
            try:
                callback = self.server.callbacks[subdir]
            except __HOLE__:
                callback = Supy404()

        # Some shortcuts
        for name in ('send_response', 'send_header', 'end_headers', 'rfile',
                'wfile', 'headers'):
            setattr(callback, name, getattr(self, name))
        # We call doX, because this is more supybotic than do_X.
        path = self.path
        if not callback.fullpath:
            path = '/' + path.split('/', 2)[-1]
        getattr(callback, callbackMethod)(self, path,
                *args, **kwargs)
dataset/ETHPy150Open ProgVal/Limnoria/src/httpserver.py/SupyHTTPRequestHandler.do_X