On 3/21/19 1:01 PM, Jonathan Fine wrote:
Rémi Lapeyre wrote:
Not matter the notation you end up choosing, I think this code:
https://github.com/jpadilla/pyjwt/blob/master/jwt/utils.py#L71-L81
[...] would greatly benefit from a new merge to merge dicts.
I've looked at the merge_dict defined in this code. It's similar to
def gapfill(self, other):
# See also: https://cobrapy.readthedocs.io/en/latest/gapfilling.html
# Cobra's gapfill adds items to a model, to meet a requirement.
for key in other.keys():
if key not in self:
self[key] = other[key]
(This is code I've written, that's not yet on PyPi.) The usage is
different. Instead of writing one of
aaa = merge_dict(aaa, bbb)
ccc = merge_dict(aaa, bbb)
you write one of
gapfill(aaa, bbb)
aaa.gapfill(bbb) # If gapfill added to dict methods.
With merge_dict, you never really know if ccc is the same object as
aaa, or a different one. Sometimes this is important.
With gapfill, you get the same behaviour as the already familiar and
loved dict.update. But of course with a different merge rule.
With gapfill, I can never remeber whether it's gapfill(aaa,
bbb) or gapfill(bbb, aaa). This is always important. :-)
At least with aaa.gapfill(bbb), I have some sense of the
"direction" of the asymmetry, or I would if I had some frame
of reference into which to put the "gapfill" operation.
(With the proposed + or | operator syntax, that gets lost.)
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/