def get_args_and_kwargs(self):
        """Return a list and a dict usable as ``*args, **kwargs`` to pass to a callable."

        If the entity is known to not accept arguments (``self.args`` is ``None``), then this
        method returns ``None`` for both args and kwargs.

        Returns
        -------
        tuple (list or None, dict or None)
            A tuple with as first value, the list of positioned arguments (or ``None``), and as
            second value the dict of named arguments (or ``None``)

        """

        args = None
        kwargs = None

        if self.args:
            args = []
            kwargs = {}
            for arg in self.args:
                if arg.is_named:
                    kwargs[arg.arg] = arg.value
                else:
                    args.append(arg.value)

        return args, kwargs