def _set_stopping_conditions(conditions): if conditions: return [ Fact.load(dict(trait=trait, value=value)) for sc in conditions for trait, value in sc.items() ] return []
async def update_planner(self, data): planner = (await self.get_service('data_svc').locate('planners', dict(name=data['name'])))[0] planner_id = planner.planner_id file_path = await self._get_file_path(planner_id) planner_dict = await self._read_from_yaml(file_path) planner_dict['stopping_conditions'] = self._get_stopping_conditions(data) await self._write_to_yaml(file_path, planner_dict) planner.stopping_conditions = [Fact.load(dict(trait=f.get('trait'), value=f.get('value'))) for f in data['stopping_conditions']] await self.get_service('data_svc').store(planner)
async def add_facts(self, request: web.Request): knowledge_svc_handle = self._api_manager.knowledge_svc fact_data = await self._api_manager.extract_data(request) if fact_data: try: new_fact = Fact.load(fact_data) if 'source' not in fact_data: new_fact.source = WILDCARD_STRING new_fact.source_type = OriginType.USER.name await knowledge_svc_handle.add_fact(new_fact) store = await knowledge_svc_handle.get_facts(criteria=dict(trait=fact_data['trait'], value=fact_data['value'], source=WILDCARD_STRING, source_type=OriginType.USER.name)) resp = await self._api_manager.verify_fact_integrity(store) return web.json_response(dict(added=resp)) except Exception as e: self.log.warning(f'Encountered issue saving fact {fact_data} - {e}')
async def add_facts(self, request: web.Request): knowledge_svc_handle = self._api_manager.knowledge_svc fact_data = await self._api_manager.extract_data(request) try: new_fact = Fact.load(fact_data) if 'source' not in fact_data: new_fact.source = WILDCARD_STRING new_fact.origin_type = OriginType.USER await self._api_manager.verify_operation_state(new_fact) await knowledge_svc_handle.add_fact(new_fact) store = await knowledge_svc_handle.get_facts(criteria=dict(trait=new_fact.trait, value=new_fact.value, source=new_fact.source, origin_type=OriginType.USER)) resp = await self._api_manager.verify_fact_integrity(store) return web.json_response(dict(added=resp)) except Exception as e: error_msg = f'Encountered issue saving fact {fact_data} - {e}' self.log.warning(error_msg) raise JsonHttpBadRequest(error_msg)
def parse(self, blob): for ip in re.findall(r'\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b', blob): if self._is_valid_ip(ip): yield Fact.load(dict(trait=self.trait, value=ip))
def parse(self, blob): for p in re.findall(r'(\/.*?\.[\w:]+[^\s]+)', blob): yield Fact.load(dict(trait=self.trait, value=p)) for p in re.findall(r'(C:\\.*?\.[\w:]+)', blob): yield Fact.load(dict(trait=self.trait, value=p))