in rostran/core/rule_manager.py [0:0]
def load(self):
rules_dir = os.path.join(RULES_DIR, self.rule_classifier)
if not os.path.exists(rules_dir):
return
for root, dirs, files in os.walk(rules_dir):
for filename in files:
if not filename.endswith(".yml"):
continue
filepath = os.path.join(root, filename)
if not os.path.isfile(filepath):
continue
rule = Rule.initialize(filepath)
if rule.type == Rule.RESOURCE:
if rule.rule_id in self.resource_rules:
raise RuleAlreadyExist(id=rule.rule_id, path=filepath)
self.resource_rules[rule.rule_id] = rule
elif rule.type == Rule.PSEUDO_PARAMETERS:
if self.pseudo_parameters_rule:
raise RuleAlreadyExist(id=rule.rule_id, path=filepath)
self.pseudo_parameters_rule = rule
elif rule.type == Rule.FUNCTION:
if self.function_rule:
raise RuleAlreadyExist(id=rule.rule_id, path=filepath)
self.function_rule = rule
elif rule.type == Rule.META_DATA:
if self.meta_data_rule:
raise RuleAlreadyExist(id=rule.rule_id, path=filepath)
self.meta_data_rule = rule
elif rule.type == Rule.ASSOCIATION_PROPERTY:
if self.association_property_rule:
raise RuleAlreadyExist(id=rule.rule_id, path=filepath)
self.association_property_rule = rule