def validate(self, from_package='', allow_rules=None, disallow_rules=None): results = [] def callback(obj): try: result = validate(obj) except OSError as e: symbol = f"{obj.__module__}.{obj.__name__}" logger.warning(f"Unable to validate `{symbol}` due to `{e}`") return errors = [] for errcode, errmsg in result.get('errors', []): if allow_rules and errcode not in allow_rules: continue if disallow_rules and errcode in disallow_rules: continue errors.append((errcode, errmsg)) if len(errors): result['errors'] = errors results.append((obj, result)) with self._apply_patches(): for symbol in self.symbols: try: obj = Docstring._load_obj(symbol) except (ImportError, AttributeError): print('{} is not available for import'.format(symbol)) else: self.traverse(callback, obj, from_package=from_package) return results
def validate(self, from_package='', rules_blacklist=None, rules_whitelist=None): results = [] def callback(obj): result = validate(obj) errors = [] for errcode, errmsg in result.get('errors', []): if rules_whitelist and errcode not in rules_whitelist: continue if rules_blacklist and errcode in rules_blacklist: continue errors.append((errcode, errmsg)) if len(errors): result['errors'] = errors results.append((obj, result)) with self._apply_patches(): for symbol in self.symbols: try: obj = Docstring._load_obj(symbol) except (ImportError, AttributeError): print('{} is not available for import'.format(symbol)) else: self.traverse(callback, obj, from_package=from_package) return results