code: def show(self):
          
          copied = self.copy()
          enumerated = [el for el in enumerate(copied)]
          for (group_ind, specs) in enumerated:
              if len(enumerated) > 1: print("Group %d" % group_ind)
              ordering = self.constant_keys + self.varying_keys
              # Ordered nicely by varying_keys definition.
              spec_lines = [', '.join(['%s=%s' % (k, s[k]) for k in ordering]) for s in specs]
              print('\n'.join(['%d: %s' % (i,l) for (i,l) in enumerate(spec_lines)]))
  
          print('Remaining arguments not available for %s' % self.__class__.__name__)
docs: When dynamic, not all argument values may be available.