    def get_user(handler):
        """alternative get_current_user to query the Hub

        Thus shouldn't be called anymore because HubAuthenticatedHandler
        should have already overridden get_current_user().

        Keep here to protect uncommon circumstance of multiple BaseHandlers
        from missing auth.

        e.g. when multiple BaseHandler classes are used.
        """
        if HubAuthenticatedHandler not in handler.__class__.mro():
            warnings.warn(
                f"Expected to see HubAuthenticatedHandler in {handler.__class__}.mro(),"
                " patching in at call time. Hub authentication is still applied.",
                RuntimeWarning,
                stacklevel=2,
            )
            # patch HubAuthenticated into the instance
            handler.__class__ = type(
                handler.__class__.__name__,
                (HubAuthenticatedHandler, handler.__class__),
                {},
            )
            # patch into the class itself so this doesn't happen again for the same class
            patch_base_handler(handler.__class__)
        return handler.get_current_user()
alternative get_current_user to query the Hub

Thus shouldn't be called anymore because HubAuthenticatedHandler
should have already overridden get_current_user().

Keep here to protect uncommon circumstance of multiple BaseHandlers
from missing auth.

e.g. when multiple BaseHandler classes are used.
jupyterhub/singleuser/mixins.py