def update(*args, **kwds):  # pylint: disable=E0211
                if len(args) > 2:
                    raise TypeError(
                        'update() takes at most 2 positional '
                        'arguments ({0} given)'.format(len(args))
                    )
                elif not args:
                    raise TypeError('update() takes at least 1 argument (0 given)')
                self = args[0]
                # Make progressively weaker assumptions about "other"
                other = ()
                if len(args) == 2:
                    other = args[1]
                if isinstance(other, dict):
                    for key in other:
                        self[key] = other[key]
                elif hasattr(other, 'keys'):
                    for key in other:
                        self[key] = other[key]
                else:
                    for key, value in other:
                        self[key] = value
                for key, value in six.iteritems(kwds):
                    self[key] = value
od.update(E, **F) -> None.  Update od from dict/iterable E and F.
dataset/ETHPy150Open saltstack/salt/salt/utils/odict.py/OrderedDict.update