mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 16:31:02 +03:00
py3: provide (del|get|has|set)attr wrappers that accepts bytes
These functions will be imported automagically by our code transformer. getattr() and setattr() are widely used in our code. We wouldn't probably want to rewrite every single call of getattr/setattr. delattr() and hasattr() aren't that important, but they are functions of the same kind.
This commit is contained in:
parent
df4c2c74a3
commit
29c5e8dc21
@ -31,8 +31,22 @@ else:
|
||||
|
||||
if sys.version_info[0] >= 3:
|
||||
import builtins
|
||||
import functools
|
||||
builtins.xrange = range
|
||||
|
||||
def _wrapattrfunc(f):
|
||||
@functools.wraps(f)
|
||||
def w(object, name, *args):
|
||||
if isinstance(name, bytes):
|
||||
name = name.decode(u'utf-8')
|
||||
return f(object, name, *args)
|
||||
return w
|
||||
|
||||
delattr = _wrapattrfunc(builtins.delattr)
|
||||
getattr = _wrapattrfunc(builtins.getattr)
|
||||
hasattr = _wrapattrfunc(builtins.hasattr)
|
||||
setattr = _wrapattrfunc(builtins.setattr)
|
||||
|
||||
stringio = io.StringIO
|
||||
empty = _queue.Empty
|
||||
queue = _queue.Queue
|
||||
|
Loading…
Reference in New Issue
Block a user