docs: def generate(self,**kwargs):
          """run once to create all children containers for each combination of the keywords"""
          import collections
          all_params = cartesian_dicts({k:kwargs[k] for k in kwargs.keys() if isinstance(kwargs[k], collections.Iterable)})
          for pi,p in enumerate(all_params):
              if self.name_mode == 'int':
                  n = str(len(self.containers))
              else:
                  n = None
              self.containers.append(PDContainer(name=n,params=p,parent=self))
          self.parameters.update({ k: kwargs[k] for k in kwargs.keys() if not isinstance(kwargs[k], collections.Iterable) })
          self.save()