docs: def generate(self,*args,**kwargs):
          """
          Creates an iterator over one of the index dimensions of the object.
  
          Example for a discrete variable::
  
              for l in s.generate('layer',remove_dimensions=False,resolution=2):
                  # taking two layers at a time
                  print l
  
          Example for two continuous variables::
  
              for l in s.generate('x','y',remove_dimensions=False,bins=3,reversed=True):
                  # will generate x0,y0 | x1,y0 | x2,y0 | x0,y1 | x1,y1 | ...
                  # (default is reversed=True)
                  print l
              for l in s.generate('x','y',remove_dimensions=False,bins=3,reversed=False):
                  # will generate x0,y0 | x0,y1 | x0,y2 | x1,y0 | x1,y1 | ...
                  print l
  
          remove_dimensions: False
              Whether the labels that are used for generation should be removed in the generated objects.
          resolution:     None
              If set to an integer, the dimension used for generation will be split into parts of size `resolution`.
          bins:           None
              If set to an integer, the dimension used for generation will be split into `bins` many, equal parts.
          reversed:       True
              Whether argument list should be reversed, such that the first argument is rotated first.
  
          .. note::
  
              Discrete Labels (units='1') will behave differently than continuous Labels (units='1.0' or 's' etc.)
              To emulate the discrete behaviour, you can pass `end_at_end=False` to the function.
              The default behaviour is continuous if `units != '1'` (that is the output units if specified).
  
              Generating discretely from 0...5 will yield 6 times: 0, 1, 2, 3, 4, 5 while generating continuously
              will generate only 5 iterations: 0.0-1.0,1.0-2.0,2.0-3.0,3.0-4.0,4.0-5.0 (at a resolution of 1.0).
  
          """
          for st in self.spike_times.generate(*args,**kwargs):
              yield SpikeContainer(st, copy_from=self)