code: def make_python_name(self, name):
          
          # FIXME see cindex.SpellingCache
          for k, v in [('<', '_'), ('>', '_'), ('::', '__'), (',', ''), (' ', ''),
                       ("$", "DOLLAR"), (".", "DOT"), ("@", "_"), (":", "_"),
                       ('-', '_')]:
              if k in name:  # template
                  name = name.replace(k, v)
              # FIXME: test case ? I want this func to be neutral on C valid
              # names.
              if name.startswith("__"):
                  return "_X" + name
          if len(name) == 0:
              pass
          elif name[0] in "01234567879":
              return "_" + name
          return name
docs: Transforms an USR into a valid python name.