bpo-36431: Use PEP 448 dict unpacking for merging two dicts. (GH-12553) · python/cpython@da08470 (original) (raw)
`@@ -285,10 +285,7 @@ def new(*args, **keywords):
`
285
285
``
286
286
`if hasattr(func, "func"):
`
287
287
`args = func.args + args
`
288
``
`-
tmpkw = func.keywords.copy()
`
289
``
`-
tmpkw.update(keywords)
`
290
``
`-
keywords = tmpkw
`
291
``
`-
del tmpkw
`
``
288
`+
keywords = {**func.keywords, **keywords}
`
292
289
`func = func.func
`
293
290
``
294
291
`self = super(partial, cls).new(cls)
`
`@@ -302,9 +299,8 @@ def call(*args, **keywords):
`
302
299
`if not args:
`
303
300
`raise TypeError("descriptor 'call' of partial needs an argument")
`
304
301
`self, *args = args
`
305
``
`-
newkeywords = self.keywords.copy()
`
306
``
`-
newkeywords.update(keywords)
`
307
``
`-
return self.func(*self.args, *args, **newkeywords)
`
``
302
`+
keywords = {**self.keywords, **keywords}
`
``
303
`+
return self.func(*self.args, *args, **keywords)
`
308
304
``
309
305
`@recursive_repr()
`
310
306
`def repr(self):
`
`@@ -371,8 +367,7 @@ def init(self, func, *args, **keywords):
`
371
367
`# it's also more efficient since only one function will be called
`
372
368
`self.func = func.func
`
373
369
`self.args = func.args + args
`
374
``
`-
self.keywords = func.keywords.copy()
`
375
``
`-
self.keywords.update(keywords)
`
``
370
`+
self.keywords = {**func.keywords, **keywords}
`
376
371
`else:
`
377
372
`self.func = func
`
378
373
`self.args = args
`
`@@ -391,11 +386,9 @@ def repr(self):
`
391
386
``
392
387
`def _make_unbound_method(self):
`
393
388
`def _method(*args, **keywords):
`
394
``
`-
call_keywords = self.keywords.copy()
`
395
``
`-
call_keywords.update(keywords)
`
396
``
`-
cls_or_self, *rest = args
`
397
``
`-
call_args = (cls_or_self,) + self.args + tuple(rest)
`
398
``
`-
return self.func(*call_args, **call_keywords)
`
``
389
`+
cls_or_self, *args = args
`
``
390
`+
keywords = {**self.keywords, **keywords}
`
``
391
`+
return self.func(cls_or_self, *self.args, *args, **keywords)
`
399
392
`_method.isabstractmethod = self.isabstractmethod
`
400
393
`_method._partialmethod = self
`
401
394
`return _method
`