hanspi42 / signalflowgrapher

This Python tool allows you to draw signal-flow graphs, calculate transfer functions (SymPy code is generated for further use in Jupyter notebooks), do graph manipulations (e.g., node elimination and graph transposition), and save a graph as TikZ for use in LaTeX documentation.
Artistic License 2.0
30 stars 6 forks source link

Fehler bei Invert Path #4

Open hanspi42 opened 3 years ago

hanspi42 commented 3 years ago

Wenn auf dem beiliegenden Graphen g3.json die Branches a, b und c selektiert werden, und danach auf der Selektion "Invert Path" aufgerufen wird, dann stürzt die Applikation ab, denn es wird über None auf ingoing Knoten zugegriffen.

python -m signalflowgrapher
Traceback (most recent call last):
  File "C:\Repos\20_signalflowgrapher\src\signalflowgrapher\gui\conditional_actions\conditional_action.py", line 27, in <lambda>
    signal.connect(lambda *args: action(self._selection, *args))
  File "C:\Repos\20_signalflowgrapher\src\signalflowgrapher\gui\side_widget.py",  line 198, in <lambda>
    lambda sel, *args: self.__operation_controller.invert_path(sel)
  File "C:\Repos\20_signalflowgrapher\src\signalflowgrapher\controllers\operation_controller.py", line 148, in invert_path
    for affected_branch in operation.get_affected_branches(
  File "C:\Repos\20_signalflowgrapher\src\signalflow_algorithms\algorithms\graph_operations.py", line 181, in get_affected_branches
    affected = branch_to_invert.end.ingoing.copy()
AttributeError: 'NoneType' object has no attribute 'ingoing'

Die Frage, die man sich hier stellen muss ist, ob diese Operation überhaupt angeboten werden soll, d.h. ob man "Invert Path" auf einem Pfad unterstützen soll, oder ob man das reduzieren soll auf ein "Invert Branch", d.h. dass nur noch einzelne Branches invertiert werden können.

Die Frage ist allerdings, ob dieser Fehler weiterhin auftreten könnte.

g3.zip