The `ast` compiler has flags to choose which `__future__` modules to apply, but any `__future__` imports in the actual code override them (I discovered this through experimentation -- it doesn't seem to actually be addressed in the docs).  So I remove all `__future__` imports in the code textual before compiling it twice: once with unicode literals and once without.