feat: + class view

feat: +retry
This commit is contained in:
莘权 马 2024-01-18 22:33:04 +08:00
parent 4a5ae1b4a4
commit 78af904f5e
6 changed files with 182 additions and 77 deletions

View file

@ -408,7 +408,7 @@ def concat_namespace(*args) -> str:
def split_namespace(ns_class_name: str) -> List[str]:
return ns_class_name.split(":")
return ns_class_name.split(":", maxsplit=1)
def general_after_log(i: "loguru.Logger", sec_format: str = "%0.3f") -> typing.Callable[["RetryCallState"], None]:
@ -567,3 +567,8 @@ def list_files(root: str | Path) -> List[Path]:
except Exception as e:
logger.error(f"Error: {e}")
return files
def parse_json_code_block(markdown_text: str) -> List[str]:
json_blocks = re.findall(r"```json(.*?)```", markdown_text, re.DOTALL)
return [v.strip() for v in json_blocks]

View file

@ -26,12 +26,6 @@ class DiGraphRepository(GraphRepository):
async def insert(self, subject: str, predicate: str, object_: str):
self._repo.add_edge(subject, object_, predicate=predicate)
async def upsert(self, subject: str, predicate: str, object_: str):
pass
async def update(self, subject: str, predicate: str, object_: str):
pass
async def select(self, subject: str = None, predicate: str = None, object_: str = None) -> List[SPO]:
result = []
for s, o, p in self._repo.edges(data="predicate"):
@ -44,6 +38,14 @@ class DiGraphRepository(GraphRepository):
result.append(SPO(subject=s, predicate=p, object_=o))
return result
async def delete(self, subject: str = None, predicate: str = None, object_: str = None) -> int:
rows = await self.select(subject=subject, predicate=predicate, object_=object_)
if not rows:
return 0
for r in rows:
self._repo.remove_edge(r.subject, r.object_)
return len(rows)
def json(self) -> str:
m = networkx.node_link_data(self._repo)
data = json.dumps(m)

View file

@ -33,6 +33,7 @@ class GraphKeyword:
HAS_CLASS_FUNCTION = "has_class_function"
HAS_CLASS_PROPERTY = "has_class_property"
HAS_CLASS = "has_class"
HAS_CLASS_DESC = "has_class_desc"
HAS_PAGE_INFO = "has_page_info"
HAS_CLASS_VIEW = "has_class_view"
HAS_SEQUENCE_VIEW = "has_sequence_view"
@ -55,18 +56,18 @@ class GraphRepository(ABC):
async def insert(self, subject: str, predicate: str, object_: str):
pass
@abstractmethod
async def upsert(self, subject: str, predicate: str, object_: str):
pass
@abstractmethod
async def update(self, subject: str, predicate: str, object_: str):
pass
@abstractmethod
async def select(self, subject: str = None, predicate: str = None, object_: str = None) -> List[SPO]:
pass
@abstractmethod
async def delete(self, subject: str = None, predicate: str = None, object_: str = None) -> int:
pass
@abstractmethod
async def save(self):
pass
@property
def name(self) -> str:
return self._repo_name