code: def pad(self, *args, **kwargs):
          
          if not args:
              start, end = self.padding
          else:
              start, end = args
  
          if kwargs.pop('inplace', False):
              new = self
          else:
              new = self.copy()
          if kwargs:
              raise TypeError("unexpected keyword argument %r"
                              % list(kwargs.keys())[0])
          new.known = [(s[0]+start, s[1]+end) for s in self.known]
          new.active = [(s[0]+start, s[1]+end) for s in self.active]
          return new
docs: Apply a padding to each segment in this `DataQualityFlag`
  
          This method either takes no arguments, in which case the value of
          the :attr:`~DataQualityFlag.padding` attribute will be used,
          or two values representing the padding for the start and end of
          each segment.
  
          For both the `start` and `end` paddings, a positive value means
          pad forward in time, so that a positive `start` pad or negative
          `end` padding will contract a segment at one or both ends,
          and vice-versa.
  
          This method will apply the same padding to both the
          `~DataQualityFlag.known` and `~DataQualityFlag.active` lists,
          but will not :meth:`~DataQualityFlag.coalesce` the result.
  
          Parameters
          ----------
          start : `float`
              padding to apply to the start of the each segment
          end : `float`
              padding to apply to the end of each segment
          inplace : `bool`, optional, default: `False`
              modify this object in-place, default is `False`, i.e. return
              a copy of the original object with padded segments
  
          Returns
          -------
          paddedflag : `DataQualityFlag`
              a view of the modified flag