/
boris00043
/
semantic-papers
Обзор
Документация
Войти
/
boris00043
/
semantic-papers
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
angular
services/article-parser/src/db/arango.py
54 строки
2 KB
boris
fix type
15 авг 2025, 18:40
15 авг 2025, 18:40
4b39b2a
Код
Авторство
О чём код?
import dataclasses from arango import ArangoClient from arango.database import StandardDatabase from arango.graph import Graph def init_arango_db(arango_client: ArangoClient, db_name: str) -> StandardDatabase: db = arango_client.db(password="arangopass") if not db.has_database(db_name): db.create_database(db_name) return arango_client.db(db_name, password="arangopass") def get_graph(db: StandardDatabase, graph_name: str) -> Graph: if not db.has_graph(graph_name): db.create_graph(graph_name) return db.graph(graph_name) class ArangoDatabase: def __init__( self, arango_client: ArangoClient, db_name: str, graph_name: str | None = None ): self.arango_client = arango_client self.db_name = db_name self.db = init_arango_db(arango_client, db_name) if not graph_name: graph_name = db_name self.graph = get_graph(self.db, graph_name) def get_vertex_collection(self, collection_name: str): if not self.graph.has_vertex_collection(collection_name): self.graph.create_vertex_collection(collection_name) return self.graph.vertex_collection(collection_name) def get_edge_collection( self, collection_name: str, from_collections: list[str], to_collections: list[str], ): if not self.graph.has_edge_collection(collection_name): self.graph.create_edge_definition( collection_name, from_collections, to_collections ) return self.graph.edge_collection(collection_name) def get_graph(self, graph_name: str) -> "ArangoDatabase": return ArangoDatabase(self.arango_client, self.db_name, graph_name)