skip to navigation
skip to content

dictns 1.5

simple class that merge dictionary and object API

simple python class that merges dictionary and object APIs

Those Namespace objects work in a similar way as javascript objects. intended to help deadling with deep json objects, and save you a lot of [”] in your code

usage

from dictns import Namespace
n = Namespace(dict(a=1, b=3, c=dict(d=4)))
assert(n['a'] == n.a)
assert(n['c']['d'] == n.c.d)

you can wrap dicts and lists inside Namespace

n = Namespace([dict(a=1, b=3, c=[dict(d=4)])])
assert(n[0]['a'] == n[0].a)
assert(n[0]['c'][0]['d'] == n[0].c[0].d)

you can also wrap dict subclasses like OrderedDict, but the resulting Namespace does not inherit original object characteristics (i.e. order in OrderedDict)

see unit tests for more usage examples

ChangeLog:

  • 1.0: Initial version

  • 1.1: Added Namespace comparaison tools

  • 1.2: Namespace now support dict and list subclasses as input

  • 1.3:
    • Fix for compatibility with getattr() built-in method. When an invalid key is requested, it now raises an AttributeError instead of a KeyError.
    • Allow initialization without arg: Namespace() is equivalent to Namespace({}).
  • 1.4: Allow Namespace objects to be weak referenced

  • 1.5:
    • Fix tests for 3.5 and pypy
    • Readme cleanups

Developing

Launch unit tests:

python test/test_namespace.py
 
File Type Py Version Uploaded on Size
dictns-1.5-py2.py3-none-any.whl (md5, pgp) Python Wheel py2.py3 2016-11-14 5KB
dictns-1.5.tar.gz (md5, pgp) Source 2016-11-14 5KB