1"""
2For the ``future`` package.
3
4Turns any print statements into functions and adds this import line:
5
6    from __future__ import print_function
7
8at the top to retain compatibility with Python 2.6+.
9"""
10
11from libfuturize.fixes.fix_print import FixPrint
12from libfuturize.fixer_util import future_import
13
14class FixPrintWithImport(FixPrint):
15    run_order = 7
16    def transform(self, node, results):
17        # Add the __future__ import first. (Otherwise any shebang or encoding
18        # comment line attached as a prefix to the print statement will be
19        # copied twice and appear twice.)
20        future_import(u'print_function', node)
21        n_stmt = super(FixPrintWithImport, self).transform(node, results)
22        return n_stmt
23