mercurial/pycompat.py
changeset 29800 178c89e8519a
parent 29799 45fa8de47a0f
child 29801 c63ab0524db7
equal deleted inserted replaced
29799:45fa8de47a0f 29800:178c89e8519a
    30     import xmlrpc.client as xmlrpclib
    30     import xmlrpc.client as xmlrpclib
    31 
    31 
    32 if sys.version_info[0] >= 3:
    32 if sys.version_info[0] >= 3:
    33     import builtins
    33     import builtins
    34     import functools
    34     import functools
    35     builtins.xrange = range
       
    36 
    35 
    37     def _wrapattrfunc(f):
    36     def _wrapattrfunc(f):
    38         @functools.wraps(f)
    37         @functools.wraps(f)
    39         def w(object, name, *args):
    38         def w(object, name, *args):
    40             if isinstance(name, bytes):
    39             if isinstance(name, bytes):
    41                 name = name.decode(u'utf-8')
    40                 name = name.decode(u'utf-8')
    42             return f(object, name, *args)
    41             return f(object, name, *args)
    43         return w
    42         return w
    44 
    43 
       
    44     # these wrappers are automagically imported by hgloader
    45     delattr = _wrapattrfunc(builtins.delattr)
    45     delattr = _wrapattrfunc(builtins.delattr)
    46     getattr = _wrapattrfunc(builtins.getattr)
    46     getattr = _wrapattrfunc(builtins.getattr)
    47     hasattr = _wrapattrfunc(builtins.hasattr)
    47     hasattr = _wrapattrfunc(builtins.hasattr)
    48     setattr = _wrapattrfunc(builtins.setattr)
    48     setattr = _wrapattrfunc(builtins.setattr)
       
    49     xrange = builtins.range
    49 
    50 
    50 stringio = io.StringIO
    51 stringio = io.StringIO
    51 empty = _queue.Empty
    52 empty = _queue.Empty
    52 queue = _queue.Queue
    53 queue = _queue.Queue
    53 
    54