def _BuildPredicate(self, client_id, token=None): if self.path_globs_whitelist is None: return None kb = data_store_utils.GetClientKnowledgeBase(client_id) blacklist_regexes = [] for expression in self.path_globs_blacklist: for pattern in expression.Interpolate(knowledge_base=kb): blacklist_regexes.append( rdf_paths.GlobExpression(pattern).AsRegEx()) whitelist_regexes = [] for expression in self.path_globs_whitelist: for pattern in expression.Interpolate(knowledge_base=kb): whitelist_regexes.append( rdf_paths.GlobExpression(pattern).AsRegEx()) def Predicate(client_path): # Enforce leading / since Regexes require it. path = "/" + client_path.Path().lstrip("/") return (not any(r.Match(path) for r in blacklist_regexes) and any(r.Match(path) for r in whitelist_regexes)) return Predicate
def Handle(self, args, token=None): ge = rdf_paths.GlobExpression(args.glob_expression) ge.Validate() kb = data_store_utils.GetClientKnowledgeBase(str(args.client_id)) components = ge.ExplainComponents(args.example_count, kb) return ApiExplainGlobExpressionResult(components=components)
def _BuildPredicate(self, client_id, context=None): if self.include_only_path_globs is None: return None kb = data_store_utils.GetClientKnowledgeBase(client_id) exclude_regexes = [] for expression in self.exclude_path_globs: for pattern in expression.Interpolate(knowledge_base=kb): exclude_regexes.append(rdf_paths.GlobExpression(pattern).AsRegEx()) include_only_regexes = [] for expression in self.include_only_path_globs: for pattern in expression.Interpolate(knowledge_base=kb): include_only_regexes.append(rdf_paths.GlobExpression(pattern).AsRegEx()) def Predicate(client_path): # Enforce leading / since Regexes require it. path = "/" + client_path.Path().lstrip("/") return (not any(r.Match(path) for r in exclude_regexes) and any(r.Match(path) for r in include_only_regexes)) return Predicate
def client_knowledge_base(self) -> rdf_client.KnowledgeBase: if self._client_knowledge_base is None: self._client_knowledge_base = data_store_utils.GetClientKnowledgeBase( self.client_id) return self._client_knowledge_base
def client_knowledge_base(self): if self._client_knowledge_base is None: self._client_knowledge_base = data_store_utils.GetClientKnowledgeBase( self.client_id, token=self.token) return self._client_knowledge_base