1
# -*- coding: utf-8 -*-
3
Created on Tue Apr 2 18:37:02 2013
7
from __future__ import (nested_scopes, generators, division, absolute_import,
8
with_statement, print_function, unicode_literals)
9
from copy import deepcopy
11
from collections import OrderedDict
13
from grass.pygrass.orderdict import OrderedDict
15
from grass.pygrass.utils import docstring_property
18
class TypeDict(OrderedDict):
19
def __init__(self, dict_type, *args, **kargs):
20
self._type = dict_type
21
super(TypeDict, self).__init__(*args, **kargs)
23
def __getattr__(self, key):
25
return self[key].value
26
return OrderedDict.__getattr__(self, key)
28
def __setattr__(self, key, value):
30
self[key].value = value
32
OrderedDict.__setattr__(self, key, value)
37
def __setitem__(self, key, value):
38
if isinstance(value, self._type):
39
super(TypeDict, self).__setitem__(key, value)
41
str_err = 'The value: %r is not a %s instance.'
42
raise TypeError(str_err % (value, self._type.__name__))
44
@docstring_property(__doc__)
46
return '\n'.join([self.__getitem__(obj).__doc__
47
for obj in self.__iter__()])
50
return [self.__getitem__(obj) for obj in self.__iter__()]
52
def __deepcopy__(self, memo):
53
obj = TypeDict(self._type)
54
for k, v in self.items():
61
if self.__getattr__(key):
62
key_dict[key] = self.__getattr__(key)
b'\\ No newline at end of file'