code: def _parse_labels(self, labels, element):
          r
          if labels is None:
              raise Exception('Labels cannot be None')
          if type(labels) is str:
              labels = [labels]
          # Parse the labels list
          parsed_labels = []
          for label in labels:
              # Remove element from label, if present
              if element in label:
                  label = label.split('.')[-1]
              # Deal with wildcards
              if '*' in label:
                  Ls = [L.split('.')[-1] for L in self.labels(element=element)]
                  if label.startswith('*'):
                      temp = [L for L in Ls if L.endswith(label.strip('*'))]
                  if label.endswith('*'):
                      temp = [L for L in Ls if L.startswith(label.strip('*'))]
                  temp = [element+'.'+L for L in temp]
              elif element+'.'+label in self.keys():
                  temp = [element+'.'+label]
              else:
                  temp = [element+'.'+label]
              parsed_labels.extend(temp)
              # Remove duplicates if any
              [parsed_labels.remove(L) for L in parsed_labels
               if parsed_labels.count(L) > 1]
          return parsed_labels
docs: r"""
          This private method is used for converting \'labels\' to a proper
          format, including dealing with wildcards (\*).
  
          Parameters
          ----------
          labels : string or list of strings
              The label or list of labels to be parsed. Note that the \* can be
              used as a wildcard.
  
          Returns
          -------
          A list of label strings, with all wildcard matches included if
          applicable.