utils.py 443 B

12345678910111213141516171819
  1. class attr_dict(dict):
  2. def __getattr__(self, name):
  3. if name in self:
  4. return self[name]
  5. else:
  6. return super(attr_dict, self).__getattr__(name)
  7. def __getitem__(self, key):
  8. res = super(attr_dict, self).__getitem__(key)
  9. if isinstance(res, dict):
  10. return attr_dict(res)
  11. return res
  12. class _MetaInfo(object):
  13. def __init__(self, **kwargs):
  14. for name, value in kwargs.items():
  15. setattr(self, name, value)
  16. self.structure = []