Re: [Python-ideas] sys.py3k

2012-11-07 Thread Chris Angelico
On Thu, Nov 8, 2012 at 5:35 AM, anatoly techtonik techto...@gmail.com wrote:
 I thought of sys.py3k check as an explicit way to guard the code that should
 be maintained extra carefully for Python 3 compatibility, so that you can
 grep the source for this constant and remove all the hacks (such as bytes to
 string conversion) required to maintain the compatibility when the time
 comes to switch.

I agree about greppability, it's a huge help. Hence the code comment;
as long as you're consistent and you pick a keyword long enough or
unusual enough to not occur anywhere else, you can easily do a find
across files or grep XYZ * to find them all. And if you put the
comment on the most significant line of code, line-based tools will be
more useful.

# Unideal:
# py3k
try:
reload
except NameError:
from imp import reload

# Better:
try: # py3k
reload
except NameError:
from imp import reload

# Best:
try:
reload # py3k
except NameError:
from imp import reload

# Also best:
try:
reload
except NameError:
from imp import reload # py3k

Taking just the line with the keyword py3k on it will tell you
exactly what that file is doing.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [Python-ideas] sys.py3k

2012-11-07 Thread Steven D'Aprano
On Thu, 08 Nov 2012 10:14:35 +1100, Chris Angelico wrote:

 On Thu, Nov 8, 2012 at 5:35 AM, anatoly techtonik techto...@gmail.com
 wrote:
 I thought of sys.py3k check ...

Chris, you regularly reply to the wrong mailing list, and you've just 
done it again. This is not python-ideas.



-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [Python-ideas] sys.py3k

2012-11-07 Thread Chris Angelico
On Thu, Nov 8, 2012 at 10:56 AM, Steven D'Aprano
steve+comp.lang.pyt...@pearwood.info wrote:
 On Thu, 08 Nov 2012 10:14:35 +1100, Chris Angelico wrote:

 On Thu, Nov 8, 2012 at 5:35 AM, anatoly techtonik techto...@gmail.com
 wrote:
 I thought of sys.py3k check ...

 Chris, you regularly reply to the wrong mailing list, and you've just
 done it again. This is not python-ideas.

Ack! Sorry all. I was sure I checked whoops.

Egg-on-face-ly yours...

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [Python-ideas] sys.py3k

2012-11-04 Thread Chris Angelico
On Mon, Nov 5, 2012 at 9:33 AM, Steven D'Aprano st...@pearwood.info wrote:
 On 05/11/12 08:49, anatoly techtonik wrote:

 if sys.py3k:
# some py2k specific code
pass

 # Bring back reload in Python 3.
 try:
 reload
 except NameError:
 from imp import reload

 try:
 any
 except NameError:
 # Python 2.4 compatibility.
 def any(items):
 for item in items:
 if item:
 return True
 return False

Take the best of both worlds:

try: # py3k
reload
except NameError:
from imp import reload

Now you can grep your code for py3k without changing the language!

Never underestimate the value of comment tokens. Universal ones like
TODO or private ones like NULLSAFE, all it takes is grep or your
editor's Find function to make them all obvious.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list