I think print(arg) with one argument in python2 should be accepted. Assuming one argument, the behavior is the same between versions, making the question all but pointless - but its usefulness for doing single-source is a strong practical argument for allowing it. The problem comes when you use 0 or 2+ arguments - print(arg1, arg2) and so on - since these do generate different behavior between versions. So in an ideal world, when there is no __future__ import, I think I'd flag print(foo, bar) and print() but not print(foo).