code: def special_parse_process_python_code(sourcecode):
      r
      import ast
      import astor
      #sourcecode = 'from __future__ import print_function\n' + sourcecode
      sourcecode_ = sourcecode.encode('utf8')
      pt = ast.parse(sourcecode_, 'testfile')
  
      generator = astor.codegen.SourceGenerator(' ' * 4)
      generator.visit(pt)
      resturctured_source = (''.join(generator.result))
      print(resturctured_source)
  
      visitor = ast.NodeVisitor()
      visitor.visit(pt)
  
      import redbaron
      # Pares a FULL syntax tree that keeps blockcomments
      baron = redbaron.RedBaron(sourcecode)
      #fst = baron.fst()
      node = (baron.node_list[54])  # NOQA
      [n.type for n in baron.node_list]
docs: r"""
      pip install redbaron
      http://stackoverflow.com/questions/7456933/python-ast-with-preserved-comments
  
      CommandLine:
          python -m utool.util_inspect special_parse_process_python_code --show
  
      Example:
          >>> # DISABLE_DOCTEST
          >>> from utool.util_inspect import *  # NOQA
          >>> import utool as ut
          >>> sourcecode = ut.read_from(ut.util_inspect.__file__)
          >>> result = special_parse_process_python_code(sourcecode)
          >>> print(result)