code: def _process_underscores(self, tokens):
          "Strip underscores to make sure the number is correct after join"
          groups = [[str(''.join(el))] if b else list(el)
                    for (b,el) in itertools.groupby(tokens, lambda k: k=='_')]
          flattened = [el for group in groups for el in group]
          processed = []
          for token in flattened:
              if token == '_':  continue
              if token.startswith('_'):
                  token = str(token[1:])
              if token.endswith('_'):
                  token = str(token[:-1])
              processed.append(token)
          return processef _process_underscores(self, tokens):
          "Strip underscores to make sure the number is correct after join"
          groups = [[str(''.join(el))] if b else list(el)
                    for (b,el) in itertools.groupby(tokens, lambda k: k=='_')]
          flattened = [el for group in groups for el in group]
          processed = []
          for token in flattened:
              if token == '_':  continue
              if token.startswith('_'):
                  token = str(token[1:])
              if token.endswith('_'):
                  token = str(token[:-1])
              processed.append(token)
          return processed
docs: Strip underscores to make sure the number is correct after join