bpo-37116: Use PEP 570 syntax for positional-only parameters. (GH-13700)

This commit is contained in:
Serhiy Storchaka 2019-06-01 11:00:15 +03:00 committed by GitHub
parent 4a686504eb
commit 2085bd0877
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 126 additions and 261 deletions

View file

@ -821,30 +821,21 @@ class MutableMapping(Mapping):
except KeyError:
pass
def update(*args, **kwds):
def update(self, other=(), /, **kwds):
''' D.update([E, ]**F) -> None. Update D from mapping/iterable E and F.
If E present and has a .keys() method, does: for k in E: D[k] = E[k]
If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v
In either case, this is followed by: for k, v in F.items(): D[k] = v
'''
if not args:
raise TypeError("descriptor 'update' of 'MutableMapping' object "
"needs an argument")
self, *args = args
if len(args) > 1:
raise TypeError('update expected at most 1 arguments, got %d' %
len(args))
if args:
other = args[0]
if isinstance(other, Mapping):
for key in other:
self[key] = other[key]
elif hasattr(other, "keys"):
for key in other.keys():
self[key] = other[key]
else:
for key, value in other:
self[key] = value
if isinstance(other, Mapping):
for key in other:
self[key] = other[key]
elif hasattr(other, "keys"):
for key in other.keys():
self[key] = other[key]
else:
for key, value in other:
self[key] = value
for key, value in kwds.items():
self[key] = value