code: def future_import(feature, node):
      
      root = find_root(node)
  
      if does_tree_import(u"__future__", feature, node):
          return
  
      # Look for a shebang or encoding line
      shebang_encoding_idx = None
  
      for idx, node in enumerate(root.children):
          # Is it a shebang or encoding line?
          if is_shebang_comment(node) or is_encoding_comment(node):
              shebang_encoding_idx = idx
          if is_docstring(node):
              # skip over docstring
              continue
          names = check_future_import(node)
          if not names:
              # not a future statement; need to insert before this
              break
          if feature in names:
              # already imported
              return
  
      import_ = FromImport(u'__future__', [Leaf(token.NAME, feature, prefix=" ")])
      if shebang_encoding_idx == 0 and idx == 0:
          # If this __future__ import would go on the first line,
          # detach the shebang / encoding prefix from the current first line.
          # and attach it to our new __future__ import node.
          import_.prefix = root.children[0].prefix
          root.children[0].prefix = u''
          # End the __future__ import line with a newline and add a blank line
          # afterwards:
      children = [import_ , Newline()]
      root.insert_child(idx, Node(syms.simple_stmt, children))
docs: This seems to work