;ò òiýDc@sŸdkTdkTdkZdklZdfd„ƒYZd„ZdkTdkZdk Z dkl Z dei fd„ƒYZ d „Z d „Z d efd „ƒYZd efd„ƒYZdefd„ƒYZdklZdefd„ƒYZdei fd„ƒYZdefd„ƒYZdklZdefd„ƒYZdklZdefd„ƒYZeƒeƒeƒeƒeƒeƒeƒgZdS((s*N(s askokcancelsCreatorcBs)tZdZd„Zd„Zd„ZRS(s^ This class provides an abstract Creator as a base for actual Creator implementations cCsdSdS(sY Return a short descriptive name for the creator e.g. usable as a menu item snoneN((sself((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysName.scCstSdS(s Create a new graph. N(snone(sselfstheGraphEditor((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysCreate3scCs>|idjotddƒ odSq-n|i|ƒdS(s Create a new graph. is Open Graphs<Graph changed since last saved. Do you want to overwrite it?N(stheGraphEditorsdirtys askokcancelsselfsCreate(sselfstheGraphEditor((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysCheckDirtyAndCreate7s   (s__name__s __module__s__doc__sNamesCreatesCheckDirtyAndCreate(((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysCreator*s   cCs–d|_|i|ddddddƒx/|iD]$}|i|i||i |ƒq2Wx,|i ƒD]}|i |d|dƒqgWd|_dS(NiisNonesOne( stheGraphEditorsdirtysNewGraphs directionsGsverticessvs AddVertexsxCoordsyCoordsEdgessesAddEdge(stheGraphEditorsGs directionsesv((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pys DrawNewGraphAs  " (s showwarningsDialogcBs#tZd„Zd„Zd„ZRS(NcCs,||_||_tii|||ƒdS(N(splanarsselfsvisiblestkSimpleDialogsDialogs__init__smastersText(sselfsmastersplanarsvisiblesText((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pys__init__Vs  cCs|iddƒtƒ|_|iidƒt|dddtƒ}|i ddddddd d d d ƒt |d ddt d|iƒ}|i ddƒ|iƒ|i dddddd d d d d ƒtƒ|_|iidƒ|io§t|dddtƒ}|i ddddddd d d d ƒt |d ddt d|iƒ}|i ddƒ|iƒ|i dddddd d d d d ƒntƒ|_|iidƒt|ddd|iddƒ}|i dddd dd d d d d ƒt|ddd|iddƒ}|i dddd dd d d d d ƒt|ddƒ}|i ddddddd d ƒtƒ|_|iidƒt|ddd|iddd dddddƒ}|i dddd ddd d d d ƒt|dd!d|iddd dddddƒ}|i dddd ddd d d d ƒ|ioºt|dd"d|idd d dddddƒ}|i dddd ddd d d d ƒt|dd#d|iddd dddddƒ}|i dd dd ddd d d d ƒndS($Nis1stextsnumber of nodes :sanchorsrowscolumnspadxspadyisstickyswswidthisexportselections textvariableis0snumber of edges :s UndirectedsvariablesvaluesDirecteds iisRandomize Layoutis indicatorons selectcolorswhiteisCircular LayoutsPlanar Layout (FPP)sPlanar Layout (Schnyder)(sselfs resizables StringVarsnumber_of_nodesssetsLabelsmastersWslabelsgridsEntrysFALSEsentrysselection_ranges focus_setsnumber_of_edgessvisiblesIntVars directions Radiobuttonsradioslayoutsplanar(sselfsmasterslabelsentrysradio((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysbody\sb ( (  ( ,  ( ("  ( (  ( cCs…y@ti|iiƒƒ}|djp |djo t‚nWntddƒdSnXy¥ti|iiƒƒ}|i o)|djo d}q·d|d}n|||}|i iƒdjo|d}n|djp ||jo t ‚nWntdd |ƒdSnXg|_|ii|ƒ|ii|ƒ|ii|i iƒƒ|ii|iiƒƒ|iSdS( NiiÈsPlease try again !s3min. number of nodes = 1 max. number of nodes = 200iii is2min. number of edges = 0 max. number of edges = %i(sstringsatoisselfsnumber_of_nodessgetsns nodeErrors showwarningsnumber_of_edgessmsplanarsmax_ms directions edgeErrorsresultsappendslayout(sselfsmax_msmsn((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysvalidate”s:    (s__name__s __module__s__init__sbodysvalidate(((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysDialogTs  8cCs—g}x†td|ƒD]u}|i|}x_t|d|ƒD]J}|i|}|i ||fƒ|djo|i ||fƒq=q=WqW|SdS(Nii( sEdgessrangesnsisGsverticesssourcesjstargetsappends direction(sGsns directionstargetsisjssourcesEdges((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pys CompleteEdges¼s   cCsJg} h} x|iD]} g| |              (s__name__s __module__sNamesCreate(((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysmaximalPlanarGraphCreatorGs (slog10srandomPlanarGraphCreatorcBstZd„Zd„ZRS(NcCsdSdS(NsCreate Random Planar Graph((sself((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysNamexsc Cs|iddƒt|dddƒ}|itjo|iddƒdSn|id} | djodSn|id} |id}|id}t ƒ}||_ x!t d| ƒD]} |iƒq¸Wt|| |ƒ}xZt d| ƒD]I}tidt|ƒdƒ}|i||d||dƒ||=qîW|djo%t|ƒot|||ƒqòn†|djo%t|ƒot|||ƒqònT|djo%t|ƒot|||ƒqòn"t|ƒot|||ƒn|iddƒdS( NscursorswatchisCreate Random Planar Graphsiii(stheGraphEditorsconfigsDialogsdialsresultsNonesnsms directionslayoutsGraphsGsdirectedsrangesvs AddVertexsMaximalPlanarEdgessEdgessisrandomsrandintslenspossAddEdges RandomCoordss DrawNewGraphsCircularCoordssFPP_PlanarCoordssSchnyder_PlanarCoords( sselfstheGraphEditorspossdialslayouts directionsEdgessGsismsnsv((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysCreate{sD                (s__name__s __module__sNamesCreate(((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysrandomPlanarGraphCreatorvs s TreeDialogcBs#tZd„Zd„Zd„ZRS(NcCs#||_tii|||ƒdS(N(svisiblesselfstkSimpleDialogsDialogs__init__smastersText(sselfsmastersvisiblesText((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pys__init__¨s cCsÉ|iddƒtƒ|_|iidƒt|dddtƒ}|i ddddddd d d d ƒt |d ddt d|iƒ}|i ddƒ|iƒ|i dddddd d d d d ƒtƒ|_|iidƒt|dddtƒ}|i ddddddd d d d ƒt |d ddt d|iƒ}|i ddƒ|iƒ|i dddddd d d d d ƒtƒ|_|iidƒ|io§t|dddtƒ}|i dd ddddd d d d ƒt |d ddt d|iƒ}|i ddƒ|iƒ|i dd dddd d d d d ƒntƒ|_|iidƒt|ddd|iddƒ}|i dddd dd d d d d ƒt|ddd|iddƒ}|i dddd dd d d d d ƒt|ddƒ}|i ddddddd d ƒtƒ|_|iidƒt|ddd|iddd dddd d!ƒ}|i dddd"ddd d d d ƒt|dd#d|iddd dddd d!ƒ}|i dddd"ddd d d d ƒt|dd$d|idd d dddd d!ƒ}|i dd dd"ddd d d d ƒt|dd%d|iddd dddd d!ƒ}|i dddd"ddd d d d ƒdS(&Nis2stexts degree :sanchorsrowscolumnspadxspadyisstickyswswidthisexportselections textvariableis0s height :s1s#nodes :s UndirectedsvariablesvaluesDirecteds iisRandomize Layoutis indicatorons selectcolorswhiteisCircular Layouts Tree LayoutsBFS-Tree Layout(sselfs resizables StringVarsdegreessetsLabelsmastersWslabelsgridsEntrysFALSEsentrysselection_ranges focus_setsheightsnumber_of_nodessvisiblesIntVars directions Radiobuttonsradioslayout(sselfsmasterslabelsentrysradio((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysbody­sr ( ( ( (  ( ,  ( ("  ( ( ( cCsžy@ti|iiƒƒ}|djp |djo t‚nWntddƒdSnXy@ti|iiƒƒ}|djp |djo t ‚nWntddƒdSnXyti|i iƒƒ}Wntdd ƒdSnX|i oØ|d jotdd ƒdSn|d}|djo|d}n't|ƒ|ddt|dƒ}||jo |}n|d jo d }n||jp ||jotdd ||fƒdSq(nZ|djo d }nttd ƒt|ƒƒ}||jotdd|ƒdSng|_|ii|ƒ|ii|ƒ|ii|ƒ|ii|iiƒƒ|ii|iiƒƒ|iSdS(NiisPlease try again !s min. degree = 1 max. degree = 20ii2s min. height = 0 max. height = 50sInvalid value !s*Please enter an integer value for #nodes !ièsmax. #nodes = 1000s!min. #nodes = %i max. #nodes = %iidsmax. height = %i(sstringsatoisselfsdegreesgetsds degreeErrors showwarningsheightshs heightErrorsnumber_of_nodessnsvisibles min_nodess max_nodessfloats max_heightsintslog10sresultsappends directionslayout(sselfsdshs max_heightsns max_nodess min_nodes((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysvalidateîsj    &          (s__name__s __module__s__init__sbodysvalidate(((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pys TreeDialog¦s  AscompleteTreeCreatorcBstZd„Zd„ZRS(NcCsdSdS(NsCreate Complete Tree((sself((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysName3sc Csw|iddƒt|ddƒ}|itjo|iddƒdSn|id}|id}|id}|id}t ƒ}||_ h}g|d<|iƒ|di|idƒxÍtd|ƒD]¼} g|| d       (,44(s__name__s __module__sNamesCreate(((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pysrectangularGridGraph´s (sGraphsEmbeddersrandoms tkMessageBoxs askokcancelsCreators DrawNewGraphsTkinterstkSimpleDialogsstrings showwarningsDialogs CompleteEdgessMaximalPlanarEdgesscompleteGraphCreatorsrandomGraphCreatorsmaximalPlanarGraphCreatorsmathslog10srandomPlanarGraphCreators TreeDialogscompleteTreeCreatorsceilsrandomTreeCreatorsrectangularGridGraphscreator(srandomPlanarGraphCreators showwarningsrectangularGridGraphsstringsCreators askokcancelsrandoms DrawNewGraphs TreeDialogsceilscreators CompleteEdgesscompleteGraphCreatorsDialogstkSimpleDialogscompleteTreeCreatorsMaximalPlanarEdgessmaximalPlanarGraphCreatorslog10srandomTreeCreatorsrandomGraphCreator((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphCreator.pys?%s2      h 2&)- 0‹7 H /