code: def normalize_selectors(self, _selectors, extra_selectors=None, extra_parents=None):
          
          # Fixe tabs and spaces in selectors
          _selectors = _spaces_re.sub(' ', _selectors)
  
          if isinstance(extra_selectors, basestring):
              extra_selectors = extra_selectors.split(',')
  
          if isinstance(extra_parents, basestring):
              extra_parents = extra_parents.split('&')
  
          parents = set()
          if ' extends ' in _selectors:
              selectors = set()
              for key in _selectors.split(','):
                  child, _, parent = key.partition(' extends ')
                  child = child.strip()
                  parent = parent.strip()
                  selectors.add(child)
                  parents.update(
                      s.strip() for s in parent.split('&') if s.strip())
          else:
              selectors = set(
                  s.strip() for s in _selectors.split(',') if s.strip())
          if extra_selectors:
              selectors.update(s.strip() for s in extra_selectors if s.strip())
          selectors.discard('')
          if not selectors:
              return ''
          if extra_parents:
              parents.update(s.strip() for s in extra_parents if s.strip())
          parents.discard('')
          if parents:
              return ','.join(sorted(selectors)) + ' extends ' + '&'.join(sorted(parents))
          return ','.join(sorted(selectors))
docs: Normalizes or extends selectors in a string.
          An optional extra parameter that can be a list of extra selectors to be
          added to the final normalized selectors string.