@@ -163,16 +163,21 @@ def box(self, x0: int, y0: int, width: int, height: int) -> None:
163
163
self .point (x0 + width , y0 + height , "+" )
164
164
165
165
166
+ class _EdgeViewer :
167
+ def __init__ (self ) -> None :
168
+ self .pts : list [tuple [float ]] = []
169
+
170
+ def setpath (self , pts : list [tuple [float ]]) -> None :
171
+ self .pts = pts
172
+
173
+
166
174
def _build_sugiyama_layout (
167
175
vertices : Mapping [str , str ], edges : Sequence [LangEdge ]
168
176
) -> Any :
169
177
try :
170
178
from grandalf .graphs import Edge , Graph , Vertex # type: ignore[import-untyped]
171
179
from grandalf .layouts import SugiyamaLayout # type: ignore[import-untyped]
172
- from grandalf .routing import ( # type: ignore[import-untyped]
173
- EdgeViewer ,
174
- route_with_lines ,
175
- )
180
+ from grandalf .routing import route_with_lines # type: ignore[import-untyped]
176
181
except ImportError as exc :
177
182
msg = "Install grandalf to draw graphs: `pip install grandalf`."
178
183
raise ImportError (msg ) from exc
@@ -199,7 +204,7 @@ def _build_sugiyama_layout(
199
204
minw = min (v .view .w for v in vertices_list )
200
205
201
206
for edge in edges_ :
202
- edge .view = EdgeViewer ()
207
+ edge .view = _EdgeViewer ()
203
208
204
209
sug = SugiyamaLayout (graph .C [0 ])
205
210
graph = graph .C [0 ]
@@ -277,7 +282,7 @@ def draw_ascii(vertices: Mapping[str, str], edges: Sequence[LangEdge]) -> str:
277
282
ylist .extend ((vertex .view .xy [1 ], vertex .view .xy [1 ] + vertex .view .h ))
278
283
279
284
for edge in sug .g .sE :
280
- for x , y in edge .view ._pts :
285
+ for x , y in edge .view .pts :
281
286
xlist .append (x )
282
287
ylist .append (y )
283
288
@@ -293,12 +298,12 @@ def draw_ascii(vertices: Mapping[str, str], edges: Sequence[LangEdge]) -> str:
293
298
294
299
# NOTE: first draw edges so that node boxes could overwrite them
295
300
for edge in sug .g .sE :
296
- if len (edge .view ._pts ) <= 1 :
301
+ if len (edge .view .pts ) <= 1 :
297
302
msg = "Not enough points to draw an edge"
298
303
raise ValueError (msg )
299
- for index in range (1 , len (edge .view ._pts )):
300
- start = edge .view ._pts [index - 1 ]
301
- end = edge .view ._pts [index ]
304
+ for index in range (1 , len (edge .view .pts )):
305
+ start = edge .view .pts [index - 1 ]
306
+ end = edge .view .pts [index ]
302
307
303
308
start_x = int (round (start [0 ] - minx ))
304
309
start_y = int (round (start [1 ] - miny ))
0 commit comments