~bddlmZddlZddlZddlZddlmZdZdZdZ e fdZ e e e fd Z ejdejddejeefd Zy) )print_functionN) findMachinescDdj|jddS)Nz"{}""z\")formatreplacess 4/usr/lib/python3/dist-packages/automat/_visualize.py_gvquoter s ==3. //c$dj|S)Nz<{}>)rr s r _gvhtmlrs == rcdjdt|jD}dj|}dj|||S)z? Construct a string from the HTML element description.  c 3jK|]+\}}dj|tt|-yw)z{}={}N)rr str).0keyvalues r zelementMaker..s2G",#u&nnS(3u:2FGGs13z#<{name} {attrs}>{children})nameattrschildren)joinsorteditemsr)rrrformattedAttrsformattedChildrens r elementMakerr"s]XXG06u{{}0EGGN) 1 8 8 " 9 $$rc i}|rtt||d<|d|d|dfd|d|}dd i}|Dcgc]}|d|d|fi|d }}|d |g} |r| j|d g||d g| Scc}w)z> Construct an HTML table to label a state transition. colspantdfontz menlo-italic)facepurple)colorportz point-size9pink)r)trtable)rlenappend) inputLabel outputLabelsr*_Er$inputLabelCell pointSize outputLabeloutputLabelCellsrowss r tableMakerr9sG \!23 6% .0#'! # " #Ns#I ,8 9 ( 4f)+ )+"( )99 t^ $ %D Bt/./0 g  9sBc tjdddddiddi}|jD]5}||jurd}d}nd }d}|j |||d |d 7t |j D]\}} | \} } } } d j|}|| }d}t|| Dcgc] }|| c}|}|j |t|dd|j|| dj||d|jdj|||| |Scc}w)zA Produce a L{graphviz.Digraph} object from an automaton. true100)packdpifontnameMenlo) graph_attr node_attr edge_attrboldz Menlo-Boldrellipseblue)fontameshapestyler)zt{} tableport)r*z0.2none)labelmarginrHz{}:{}:w) arrowheadz{}:{}:e) graphvizDigraphstates initialStatenode enumerateallTransitionsrr9redge) automaton inputAsStringoutputAsString stateAsStringdigraphstate stateShapefontNameneachTransitioninState inputSymboloutState outputSymbolsthisTransitionr1r* outputSymbolr.s r makeDigraphrg?s 627+9*4g)>*4g)>@G !!# # I** *J#HJH ]5)%$%!  # #'y'?'?'AB.>8F5h a";/ :%v  G  ]7+%%nd;%  '  Y%%nd;"8, .!.& N(Ks3D? cd}d}|dr|jddtj|||}|jdd|jd d d d d |jdddd|jdddd|jdddtj d|jdddd d |j |}|jxr(|j xs|j|jk7} |jrd}||jD]\} } || d | j} | r@| jd!j| |j"|| d#|j|jsn|j xs| } |j| _ | jd!j| |j|j | $| rd%}nd&}|| ||jy')(z/ Entry point for command line utility. zB Visualize automat.MethodicalMachines as graphviz graphs. zz You must have the graphviz tool suite installed. Please visit http://www.graphviz.org for more information. rr)prog descriptionepilogfqpnz@A Fully Qualified Path name representing where to find machines.)helpz--quietz-qzsuppress outputF store_true)rmdefaultactionz--dot-directoryz-dzWhere to write out .dot files.z.automat_visualize)rmroz--image-directoryz-izWhere to write out image files.z --image-typez-tzThe image format.png)rmchoicesroz--viewz-vz.View rendered graphs with default image viewercy)N)argss r _printztool.._prints rz ...discoveredz{}.dot)filename directoryz...wrote dot into)rwrxviewcleanupz...wrote image intoz...wrote image and dot intoN)insertargparseArgumentParser add_argumentrOFORMATS parse_args dot_directoryimage_directoryquietrl asDigraphsaver image_typerenderry) _progname_argv_syspath _findMachinesrv DESCRIPTIONEPILOGargumentParserruexplicitlySaveDotrlmachiner[ deleteDotmsgs r toolrlsOKF{2,, N&H I 4%6(-'3 5 14%E(< > 3T%F(< >%8(0(8(8(- /$&8(-'3  5  $ $U +D++M"&"6"66L!%!5!59K9K!K zz 'tyy14 gt_%##%  LL(//$"7#'#5#5  7 4,d.@.@ A    ...C2CI!__GN NNHOOD$9%)%9%9 $ #,  .+3 4d22 3+4r) __future__rr|sysrO _discoverrr rr"r9reprrgargvpathprintrrtrr rsl% #0 $3?@*.#"*Z88A;xx|((# J4r