code: def dimensions(self, selection='all', label=False):
          
          if label in ['name', True]:
              label = 'short'
          elif label == 'label':
              label = 'long'
          elif label:
              raise ValueError("label needs to be one of True, False, 'name' or 'label'")
  
          lambdas = {'k': (lambda x: x.kdims, {'full_breadth': False}),
                     'v': (lambda x: x.vdims, {}),
                     'c': (lambda x: x.cdims, {})}
          aliases = {'key': 'k', 'value': 'v', 'constant': 'c'}
          if selection in ['all', 'ranges']:
              groups = [d for d in self._dim_groups if d != 'cdims']
              dims = [dim for group in groups
                      for dim in getattr(self, group)]
          elif isinstance(selection, list):
              dims =  [dim for group in selection
                       for dim in getattr(self, '%sdims' % aliases.get(group))]
          elif aliases.get(selection) in lambdas:
              selection = aliases.get(selection, selection)
              lmbd, kwargs = lambdas[selection]
              key_traversal = self.traverse(lmbd, **kwargs)
              dims = [dim for keydims in key_traversal for dim in keydims]
          else:
              raise KeyError("Invalid selection %r, valid selections include"
                             "'all', 'value' and 'key' dimensions" % repr(selection))
          return [(dim.label if label == 'long' else dim.name)
                  if label else dim for dim in dims]
docs: Lists the available dimensions on the object
  
          Provides convenient access to Dimensions on nested Dimensioned
          objects. Dimensions can be selected by their type, i.e. 'key'
          or 'value' dimensions. By default 'all' dimensions are
          returned.
  
          Args:
              selection: Type of dimensions to return
                  The type of dimension, i.e. one of 'key', 'value',
                  'constant' or 'all'.
              label: Whether to return the name, label or Dimension
                  Whether to return the Dimension objects (False),
                  the Dimension names (True/'name') or labels ('label').
  
          Returns:
              List of Dimension objects or their names or labels