暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

Dict.py 969B

123456789101112131415161718192021222324252627282930
  1. # -*- coding: utf-8 -*-
  2. from lodel.leapi.datahandlers.reference import Reference
  3. from lodel.editorial_model.components import EmClass
  4. class Dict(Reference):
  5. ## @brief instanciates a dict reference
  6. # @param emclasses dict : Dict of EmClass objects
  7. # @param allowed bool
  8. # @param internal bool : if False, the field is not internal
  9. # @param kwargs : Other named arguments
  10. def __init__(self, emclasses, allowed=True, internal=False, **kwargs):
  11. self._refs = set(emclasses)
  12. self._refs_class = dict
  13. super().__init__(allowed=allowed, internal=internal, **kwargs)
  14. ## @brief checks if the given target is valid
  15. # @return bool
  16. def is_target_valid(self):
  17. relateds = self.get_relateds()
  18. if not isinstance(relateds, self._refs_class):
  19. return False
  20. for related in relateds.values():
  21. if not isinstance(related, EmClass):
  22. return False
  23. return True