Create the final argument parser.

        This method creates the non-early (full) argparse argument parser.
        Unlike the early counterpart it is expected to have knowledge of
        the full command tree.

        This method relies on ``context.cmd_tree`` and produces
        ``context.parser``. Other ingredients can interact with the parser
        up until :meth:`parse()` is called.

def build_parser(self, context):
        """
        Create the final argument parser.

        This method creates the non-early (full) argparse argument parser.
        Unlike the early counterpart it is expected to have knowledge of
        the full command tree.

        This method relies on ``context.cmd_tree`` and produces
        ``context.parser``. Other ingredients can interact with the parser
        up until :meth:`parse()` is called.
        """
        context.parser, context.max_level = self._create_parser(context)