code: def arguments_as_dict(cls, *args, **kwargs):
          
          all_args = (None, ) + args
          return inspect.getcallargs(cls.run, *all_args, **kwargs)
docs: Generate the arguments dictionary provided to :py:meth:`generate_name` and :py:meth:`calculate_total_steps`.
  
          This makes it possible to fetch arguments by name regardless of
          whether they were passed as positional or keyword arguments.  Unnamed
          positional arguments are provided as a tuple under the key ``pos``.