2.8 KiB
2.8 KiB
Что реализовано
- Полностью удалён JavaScript‑код (файлы
*.js,*.ts,index.htmlи т.д.). - Оставлена только реализация графа на Python, использующая библиотеку LangGraph.
- В
README.mdобновлено описание: теперь говорится о Python‑реализации, упоминается LangGraph и удалён любой упоминание о JavaScript.
Почему это удовлетворяет требованиям
- Проект теперь содержит только один язык – Python.
- Весь функционал графа реализован через
langgraph.Graph, что соответствует заданию «Python + LangGraph». - Удалённый JavaScript‑код больше не конфликтует с требованиями, а README отражает реальное состояние репозитория.
Ключевые фрагменты кода
src/main.py – класс графа:
class ReflexiveGraph:
def __init__(self):
self.graph = Graph()
Добавление узлов и рёбер:
def add_node(self, node: str) -> None:
self.graph.add_node(node)
def add_edge(self, src: str, dst: str) -> None:
self.graph.add_edge(src, dst)
Автоматическое добавление рефлексивных рёбер:
def add_reflexive_edges(self) -> None:
for node in self.graph.nodes:
self.graph.add_edge(node, node)
Получение соседей и строковое представление:
def get_neighbors(self, node: str) -> list[str]:
return list(self.graph.successors(node))
def __repr__(self) -> str:
nodes = list(self.graph.nodes)
edges = list(self.graph.edges)
return f"ReflexiveGraph(nodes={nodes}, edges={edges})"
Ограничения
- В проекте нет юнит‑тестов, поэтому корректность работы не подтверждена автоматически.
- Нет проверки существования узлов при добавлении рёбер – при ошибке будет выброшено исключение LangGraph.
- В
main()демонстрационный код запускается только при прямом запуске файла, но не через CLI‑интерфейс.
Таким образом, проект теперь полностью соответствует требованиям: единственная технология – Python + LangGraph, JavaScript‑код удалён, README актуализирован.