56 lines
2.8 KiB
Markdown
56 lines
2.8 KiB
Markdown
**Что реализовано**
|
||
- Полностью удалён JavaScript‑код (файлы `*.js`, `*.ts`, `index.html` и т.д.).
|
||
- Оставлена только реализация графа на Python, использующая библиотеку **LangGraph**.
|
||
- В `README.md` обновлено описание: теперь говорится о Python‑реализации, упоминается LangGraph и удалён любой упоминание о JavaScript.
|
||
|
||
**Почему это удовлетворяет требованиям**
|
||
- Проект теперь содержит только один язык – Python.
|
||
- Весь функционал графа реализован через `langgraph.Graph`, что соответствует заданию «Python + LangGraph».
|
||
- Удалённый JavaScript‑код больше не конфликтует с требованиями, а README отражает реальное состояние репозитория.
|
||
|
||
**Ключевые фрагменты кода**
|
||
|
||
`src/main.py` – класс графа:
|
||
|
||
```python
|
||
class ReflexiveGraph:
|
||
def __init__(self):
|
||
self.graph = Graph()
|
||
```
|
||
|
||
Добавление узлов и рёбер:
|
||
|
||
```python
|
||
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)
|
||
```
|
||
|
||
Автоматическое добавление рефлексивных рёбер:
|
||
|
||
```python
|
||
def add_reflexive_edges(self) -> None:
|
||
for node in self.graph.nodes:
|
||
self.graph.add_edge(node, node)
|
||
```
|
||
|
||
Получение соседей и строковое представление:
|
||
|
||
```python
|
||
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 актуализирован. |