API reference: Dictionaries

The kutils.dicts module provides several utility dictionaries.

dicts contains a number of special-case dictionaries.

class kutils.dicts.AttrDict(*args, **kwargs)[source]

AttrDict represents a dictionary where the keys are represented as attributes.

>>> d = kd.AttrDict(foo='bar')
>>> d.foo
'bar'
>>> d['foo']
'bar'
class kutils.dicts.AttrDictDict(*args, **kwargs)[source]

AttrDictDict is a dictionary that returns an empty StrDict if a key is unavailable. This is meant for a dictionary of dictionaries of string values.

>>> d = kd.AttrDictDict()
>>> d.foo
{}
>>> d['foo']
{}
>>> d.foo.bar
''
>>> d['foo']['bar']
''
class kutils.dicts.AttrNoneDict(*args, **kwargs)[source]

AttrNoneDict returns an AttrDict that returns None if a key isn’t present.

>>> d = kd.AttrNoneDict(foo='bar')
>>> d.foo
'bar'
>>> d['foo']
'bar'
>>> d.bar is None
True
>>> d['bar'] is None
True
class kutils.dicts.AttrStrDict(*args, **kwargs)[source]

AttrStrDict returns an AttrDict that returns an empty string if a key isn’t present.

>>> d = kd.AttrStrDict(foo='bar')
>>> d.foo
'bar'
>>> d['foo']
'bar'
>>> d.bar
''
>>> d['bar']
''
class kutils.dicts.DictDict(*args, **kwargs)[source]

DictDict is a dictionary that returns an empty AttrStrDict if a key is unavailable. This is meant for a dictionary of dictionaries of string values.

>>> d = kd.DictDict()
>>> d['foo']
{}
>>> type(d['foo'])
<class 'kutils.dicts.AttrStrDict'>
>>> d.foo.bar
''
class kutils.dicts.NoneDict(*args, **kwargs)[source]

NoneDict is a dictionary that returns None if a key is unavailable.

>>> d = kd.NoneDict(foo='bar')
>>> d['foo']
'bar'
>>> d['baz'] is None
True
class kutils.dicts.StrDict(*args, **kwargs)[source]

StrDict is a dictionary that returns an empty string if a key is unavailable.

>>> d = kd.StrDict(foo='bar')
>>> d['foo']
'bar'
>>> d['baz']
''