code: def _gdecorator(generate_func):
          
          def dostuff(self):
              for func in self._pregenerate_functions:
                  self.current_params = func(self.current_params)
              res = generate_func(self) # pylint:disable=not-callable
              return self._postgenerate(res)
          return dostuff
docs: A decorator that allows for seemless pre/post manipulation of
          the waveform generator function.