author | Sverre Rabbelier <srabbelier@gmail.com> |
Sun, 19 Oct 2008 00:34:33 +0000 (2008-10-19) | |
changeset 387 | c55195361cb6 |
parent 363 | d35ffa6ca643 |
child 410 | 2af7f84f4fc7 |
permissions | -rw-r--r-- |
#!/usr/bin/python2.5 # # Copyright 2008 the Melange authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Logic related to handling dictionaries """ __authors__ = [ '"Sverre Rabbelier" <sverre@rabbelier.nl>', ] def merge(target, updates): """Like the builtin 'update' method but does not overwrite existing values Args: target: The dictionary that is to be updated, may be None updates: A dictionary containing new values for the original dict Returns: the target dict, with any missing values from updates merged in, in-place """ if not target: target = {} for key, value in updates.iteritems(): if key not in target: target[key] = value return target