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

2.8 KiB
Raw Blame History

Что реализовано

  • Полностью удалён 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 актуализирован.