both python 2 and python 3 in the same project

Use dictionary and metaclass styles from both in the same project. Mix and match your styles in both python 2 and 3 environments.

from __both__ import py2

stuff = {
    'a' : 123
}

stuff.keys() + ['z']
stuff.viewkeys() | {'z'}


class Form(BaseForm):
    __metaclass__ = FormType
    pass
from __both__ import py3

stuff = {
    'a' : 123
}

stuff.keys() | {'z'}

class Form(BaseForm, metaclass=FormType):
    pass

add your own fixes

Add your own list of fixes. Or use your custom fixes instead! You can run any lib2to3 fixes before importing. These fixes will not be run when in the given python version.

from __both__.py2 import fixes

# fixes to run when not in py2
import __fixes__.lib2to3.fixes.fix_tuple_params

lambda (x, y): x + y
# combine default fixes with others
from __both__ import py3
from __both__.py3 import fixes

# extra fixes to run when not in py3
import __fixes__.libpasteurize.fixes.fix_unpacking

a, *b, c = range(100)
# run all fixes in all pythons
from __both__ import fixes

# any lib2to3 fixer can be used
import __fixes__.my.custom.fix.here