Skip to main content

mergedict - A Python dict with a merge() method

https://travis-ci.org/schettino72/mergedict.png?branch=master https://coveralls.io/repos/schettino72/mergedict/badge.png

A MergeDict is a dict with a merge() method. merge() is like dict.update()

from mergedict import MergeDict

d1 = MergeDict({'a': 1, 'b': 'one'})
d1.merge({'a':2, 'c': [2]})

assert d1 == {'a': 2, 'c': [2], 'b': 'one'}

A MergeDict can be subclassed to create custom “merge” operations based on the type of an item value.

from mergedict import MergeDict

class SumDict(MergeDict):
      @MergeDict.dispatch(int)
      def merge_int(this, other):
          return this + other

d2 = SumDict({'a': 1, 'b': 'one'})
d2.merge({'a':2, 'b': 'two'})

assert d2 == {'a': 3, 'b': 'two'}

mergedict module comes with a ConfigDict that will extend/update lists/sets/dicts.

from mergedict import ConfigDict

d3 = ConfigDict({'a': 1, 'my_list': [1, 2]})
d3.merge({'a':2, 'my_list': [3, 4]})

assert d3 == {'a': 2, 'my_list': [1, 2, 3, 4]}

Project Details

license

The MIT License Copyright (c) 2013 Eduardo Naufel Schettino

see LICENSE file

developers / contributors

  • Eduardo Naufel Schettino — main author

  • Sebastian Pipping — build system fixes

install

$ pip install mergedict

or download and:

$ python setup.py install

tests

To run the tests:

$ py.test

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mergedict-1.0.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mergedict-1.0.0-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file mergedict-1.0.0.tar.gz.

File metadata

  • Download URL: mergedict-1.0.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.6.10

File hashes

Hashes for mergedict-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e1992b36a54229014fbcbc7a9c8c28d1f4ae131ea1d8d345c93973f9f0dc6fdc
MD5 3436228a2ca7fc26c58d7ca5cccf273b
BLAKE2b-256 aaf227542b17a2f3d0b15957684467b9617a518caaf340c5ab86b8e8023945e4

See more details on using hashes here.

File details

Details for the file mergedict-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: mergedict-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.6.10

File hashes

Hashes for mergedict-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f0eeede3d2119a002f96d56a6f7617dd2d80e225926809403d54e8c811eca22d
MD5 75967ebccd4859557b28b64523828427
BLAKE2b-256 b4f298a8757575ae9eb2d2ac8a7dbced7da3214f394b4c7f0716abc8e3292569

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

0.3.0

3 files

0.2.0

1 file

0.1.2

1 file

0.1.1

1 file

0.1.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page