On Mon, Nov 5, 2012 at 4:55 PM, Georg Brandl
Am 04.11.2012 22:49, schrieb anatoly techtonik:
if sys.py3k: # some py2k specific code pass
Why? 1. readable 2. traceable
Explained: 1. self-explanatory 2. sys.version_info >= (3, 0) or sys.version[0] == '3' is harder to trace when you need to find all python 3 related hacks
This proposal is roughly 3 minor versions late. I can offer you a sys.py3_4 attribute though... ;)
Even better (http://packages.python.org/six/#package-contents): import six if six.PY3: # Ooh, Python 3 else: # Not Python 3 If anyone is trying to do single code base Python 2/3 support without relying on six, they're doing it wrong. Even bundling a copy (if you don't want to deal with dependency management issues) is a better idea than reinventing that wheel. If you *are* rolling your own (or need additional compatibility fixes that six doesn't provide), then all Python 2/3 compatibility hacks should be located in a small number of compatibility modules. They *shouldn't* be distributed widely throughout your codebase. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia