code: def clone(self, spec=None, **overrides):
          
          settings = dict(self.get_param_values(), **overrides)
  
          if spec is None:
              spec = (self.name, overrides.get('label', self.label))
          if 'label' in overrides and isinstance(spec, basestring) :
              spec = (spec, overrides['label'])
          elif 'label' in overrides and isinstance(spec, tuple) :
              if overrides['label'] != spec[1]:
                  self.param.warning(
                      'Using label as supplied by keyword ({!r}), ignoring '
                      'tuple value {!r}'.format(overrides['label'], spec[1]))
              spec = (spec[0],  overrides['label'])
          return self.__class__(spec, **{k:v for k,v in settings.items()
                                         if k not in ['name', 'label']})
docs: Clones the Dimension with new parameters
  
          Derive a new Dimension that inherits existing parameters
          except for the supplied, explicit overrides
  
          Args:
              spec (tuple, optional): Dimension tuple specification
              **overrides: Dimension parameter overrides
  
          Returns:
              Cloned Dimension object