Dict¶
-
class
pydu.dict.
AttrDict
(seq=None, **kwargs)¶ A AttrDict object is like a dictionary except
obj.foo
can be used in addition toobj['foo']
.>>> from pydu.dict import AttrDict >>> o = AttrDict(a=1) o.a 1 >>> o['a'] 1 >>> o.a = 2 >>> o['a'] 2 >>> del o.a >>> o.a Traceback (most recent call last): ... AttributeError: 'a'
-
class
pydu.dict.
CaseInsensitiveDict
(data=None, **kwargs)¶ A case-insensitive
dict
-like object. Implements all methods and operations ofcollections.MutableMapping
as well as dict’scopy
. Also provideslower_items
. All keys are expected to be strings. The structure remembers the case of the last key to be set, anditer(instance)
,keys()
,items()
,iterkeys()
, anditeritems()
will contain case-sensitive keys.>>> from pydu.dict import CaseInsensitiveDict >>> cid = CaseInsensitiveDict() >>> cid['Accept'] = 'application/json' >>> cid['aCCEPT'] == 'application/json' True >>> list(cid) == ['Accept'] True
-
class
pydu.dict.
LookupDict
(name=None)¶ Dictionary lookup object.
>>> from pydu.dict import LookupDict >>> d = LookupDict() >>> d['key'] None >>> d['key'] = 1 >>> d['key'] 1
-
class
pydu.dict.
OrderedDefaultDict
(default_factory=None, *args, **kwds)¶ Dictionary that remembers insertion order and has default value with default factory.
The default factory is called without arguments to produce a new value when a key is not present, in
__getitem__
only. AnOrderedDefaultDict
compares equal to acollections.defaultdict
with the same items. All remaining arguments are treated the same as if they were passed to thedefaultdict
constructor, including keyword arguments.>>> from pydu.dict import OrderedDefaultDict >>> d = OrderedDefaultDict(int) >>> d['b'] 0 >>> d['a'] 0 >>> d.keys() odict_keys(['b', 'a'])
-
pydu.dict.
attrify
(obj)¶ Attrify obj into
AttriDict
orlist of AttriDict
if the obj is list. If obj or the item of obj is not list or dict, will return itself.>>> from pydu.dict import attrify >>> attrd = attrify({ 'a': [1, 2, {'b': 'b'}], 'c': 'c', }) >>> attrd <AttrDict {'a': [1, 2, <AttrDict {'b': 'b'}>], 'c': 'c'}> >>> attrd.a 1 >>> attrd.a[2].b b >>> attrd.c c