def _construct_axes_from_arguments(<EOL>self, args, kwargs, require_all=False, sentinel=None):
<EOL>args = list(args)<EOL>for a in self._AXIS_ORDERS:<EOL><INDENT>alias = self._AXIS_IALIASES.get(a)<EOL>if alias is not None:<EOL><INDENT>if a in kwargs:<EOL><INDENT>if alias in kwargs:<EOL><INDENT>raise TypeError("<STR_LIT>"<EOL>"<STR_LIT>" % (a, alias))<EOL><DEDENT>continue<EOL><DEDENT>if alias in kwargs:<EOL><INDENT>kwargs[a] = kwargs.pop(alias)<EOL>continue<EOL><DEDENT><DEDENT>if a not in kwargs:<EOL><INDENT>try:<EOL><INDENT>kwargs[a] = args.pop(<NUM_LIT:0>)<EOL><DEDENT>except IndexError:<EOL><INDENT>if require_all:<EOL><INDENT>raise TypeError("<STR_LIT>"<EOL>"<STR_LIT>")<EOL><DEDENT><DEDENT><DEDENT><DEDENT>axes = {a: kwargs.pop(a, sentinel) for a in self._AXIS_ORDERS}<EOL>return axes, kwargs<EOL>
Construct and returns axes if supplied in args/kwargs.

        If require_all, raise if all axis arguments are not supplied
        return a tuple of (axes, kwargs).

        sentinel specifies the default parameter when an axis is not
        supplied; useful to distinguish when a user explicitly passes None
        in scenarios where None has special meaning.