diff options
Diffstat (limited to 'ipalib/public.py')
-rw-r--r-- | ipalib/public.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/ipalib/public.py b/ipalib/public.py index b43e0af9..baae83e4 100644 --- a/ipalib/public.py +++ b/ipalib/public.py @@ -35,9 +35,7 @@ def rule(obj): return obj def is_rule(obj): - return getattr(obj, RULE_FLAG, False) is True - - + return callable(obj) and getattr(obj, RULE_FLAG, False) is True class opt(plugable.ReadOnly): @@ -65,7 +63,12 @@ class opt(plugable.ReadOnly): rules = property(__get_rules) def __rules_iter(self): - pass + for name in dir(self): + if name.startswith('_'): + continue + attr = getattr(self, name) + if is_rule(attr): + yield attr def validate(self, value): pass |