def _build_stack(self) -> List[Callable]:
        """
        Generates the stack of functions to call. It looks at the ordered list
        of all middlewares and only keeps those which have the method we're
        trying to call.
        """

        stack = []

        for m in self.manager.middlewares:
            try:
                stack.append(getattr(m(self), self.name))
            except AttributeError:
                pass

        return stack
Generates the stack of functions to call. It looks at the ordered list
        of all middlewares and only keeps those which have the method we're
        trying to call.