Files
povtornyy-ekzamen-2-graf-s-…/SOLUTION.md
T

56 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
**Что реализовано**
- Полностью удалён 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 актуализирован.