bg;ZdZddlmZddlmZmZmZmZmZddl m Z GddeZ dS)zNClass to generate files in dot format and image formats supported by Graphviz.) annotations)EdgeTypeLayoutNodePropertiesNodeTypePrinter)get_annotation_labelc eZdZUdZdZejdejdejdiZ de d<e j de j de jd e jd e jd iZd e d <d dZ d!d"dZ d!d#dZd dZdS)$PlantUmlPrinterzPrinter for PlantUML diagrams.blackclasspackagezdict[NodeType, str]NODESz--|>z..|>z--*z--oz-->zdict[EdgeType, str]ARROWSreturnNonec^|d|jz|js|d|jrl|jtjur|ddS|jtjur|ddStd|jddS)zEmit the header lines.z @startuml zset namespaceSeparator nonezleft to right directionztop to bottom directionzUnsupported layout zG. PlantUmlPrinter only supports left to right and top to bottom layout.N)emittitleuse_automatic_namespacelayoutr LEFT_TO_RIGHT TOP_TO_BOTTOM ValueErrorselfs r/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/pylint/pyreverse/plantuml_printer.py _open_graphzPlantUmlPrinter._open_graphs ,+,,,+ 5 II3 4 4 4 ; {f222 344444 444 344444 G$+GGG  Nnamestrtype_r propertiesNodeProperties | Nonec |t|}|tjurdnd}|j|}|jr|j|jkr d|j}nd}g}|jr||j|jr|jD]}| |} | rdnd} | |j dd | d z } |j r| d t|j zz } || |j|jn|} |jr|j|jkrd |jd | d } ||d| d|||d||D]} || ||ddS)zVCreate a new node. Nodes can be classes, packages, participants etc. N)labelz << interface >>z #z {abstract}(z, )z -> zzz "z" as z {})rr INTERFACErcolor DEFAULT_COLORattrsextendmethods_get_method_arguments is_abstractr joinreturnsr appendr& fontcolorr _inc_indent _dec_indent) rr r"r# stereotypenodetyper-bodyfuncargsliner&s r emit_nodezPlantUmlPrinter.emit_node/s  'd333J+0H4F+F+F''B :e$    0D4F F F+)++EEE   * KK ( ) ) )   ""* " "11$77'+'7'7'9'9A||r4999tyy9999<HF%9$,%G%GGGD D!!!!$.$4$@   d   EJ$8DrZs UT""""""XXXXXXXXXXXXXX777777XXXXXgXXXXXr