# HG changeset patch # User Renato Cunha # Date 1279159183 10800 # Node ID 7546d4a272c8ab72d29c1b1f40f4b98fc43237c4 # Parent 9bbfeba33aa38ec30924af29928135881e05a455 util: improved the check for the existence of the 'buffer' builtin 2to3 is unable to translate '__builtin__' calls to 'builtins' when hasattr is used (as in hasattr(__builtin__, buffer)). Translating the check to the format try: whatever except NameError # define whatever __builtin__.whatever = whatever is a correct way of checking for the name and has the benefit of being translated by 2to3. This patch implements the same idea for the aforementioned example. diff -r 9bbfeba33aa3 -r 7546d4a272c8 mercurial/util.py --- a/mercurial/util.py Wed Jul 14 22:58:29 2010 -0300 +++ b/mercurial/util.py Wed Jul 14 22:59:43 2010 -0300 @@ -40,7 +40,9 @@ def fakebuffer(sliceable, offset=0): return sliceable[offset:] -if not hasattr(__builtin__, 'buffer'): +try: + buffer +except NameError: __builtin__.buffer = fakebuffer import subprocess