bg~*&dZddlmZddlmZddlmZddlZddlmZm Z ddl m Z ddl m Z mZGd d ZGd d eZGd deZGddeZGddeZGddee ZGddeZdS)zDiagram objects.) annotations)Iterable)AnyN)nodesutil)decorated_with_property) FilterMixIn is_interfaceceZdZdZddZdS)Figurez Base class for counter handling.returnNonecd|_dS)N)fig_idselfs j/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/pylint/pyreverse/diagrams.py__init__zFigure.__init__s  Nr r)__name__ __module__ __qualname____doc__rrrr r s.**rr c(eZdZdZ d d fd ZxZS) Relationshipz8A relationship from an object in the diagram to another.N from_object DiagramEntity to_object relation_typestrname str | Nonect||_||_||_||_dSN)superrrr!typer$)rrr!r"r$ __class__s rrzRelationship.__init__s< &"!  rr')rr r!r r"r#r$r%)rrrrr __classcell__r*s@rrrsMBB           rrc,eZdZdZdZ d d fd ZxZS)r z=A diagram object, i.e. a label associated to an astroid node.rNo nameNtitler#nodenodes.NodeNG | Noner rct||_|r|ntj|_|j|_dSr')r(rr/rNodeNGr0 default_shapeshaperr/r0r*s rrzDiagramEntity.__init__0sF  *."B$$ELNN ' r)r.N)r/r#r0r1r rrrrrr4rr+r,s@rr r +sTGGMCG(((((((((((rr ceZdZdZdZdS) PackageEntityz(A diagram object representing a package.packageN)rrrrr4rrrr9r99s22MMMrr9c(eZdZdZdZd fd ZxZS) ClassEntityz&A diagram object representing a class.classr/r#r0nodes.ClassDefr rcjt||g|_g|_dS)N)r/r0)r(rattrsmethodsr6s rrzClassEntity.__init__Ds2 u4000 " 02 rr/r#r0r>r rr7r,s@rr<r<?sH00M3333333333rr<ceZdZdZdZd.dZd/d Z d0d1dZd2dZd3dZ d4dZ d5dZ d6dZ d7d"Z d8d#Zd9d%Zd:d'Zd;d(Zd9; rroleIterable[Relationship]cXt|j|ddS)Nrc2|jj|jjfSr')rrr!)xs rz0ClassDiagram.get_relationships..\s1=/1CDrkey)sortedrHget)rrJs rget_relationshipszClassDiagram.get_relationshipsXs5   " "4 , ,DD    rNrr r!r"r$r%ct||||}|j|g|dS)zCreate a relationship.N)rrH setdefaultappend)rrr!r"r$rels radd_relationshipzClassDiagram.add_relationship_sD; =$GG %%mR88??DDDDDrrcv|j|dD]}|j|ur|cSt|)zReturn a relationship or None.r)rHrSrKeyError)rrr"rXs rget_relationshipzClassDiagram.get_relationshipjsO%))-<<  C+-- .}%%%rr0r> list[str]cg}d|D}t|jt|jz|zD]a\}}||s||}|r|dd|}||bt|S)z4Return visible attributes, possibly with class name.cng|]2\}}t|tjt|.||f3Sr) isinstancer FunctionDefr).0nms r z*ClassDiagram.get_attrs..vsV   1!U.// 5LA4N4N F   rz : z, ) itemslistinstance_attrs_type locals_type show_attr class_namesjoinrWrR)rr0r@ properties node_nameassociated_nodesnamess r get_attrszClassDiagram.get_attrsss      )//11 2 24#))++,, -  $ $ 'I' >>),, $$%566E @(??TYYu-=-=?? LL # # # #e}}rlist[nodes.FunctionDef]chfd|D}t|dS)zReturn visible methods.cg|]f}t|tjt|tjj;t |J|jd|gSr) r`rraastroidrGPropertyrrjr$)rbrdrs rrez,ClassDiagram.get_methods..s   !U.// q'/":;;  ,A..  qv&&     rc|jSr')r$)rcs rrOz*ClassDiagram.get_methods..sQVrrP)valuesrR)rr0rAs` r get_methodszClassDiagram.get_methodssL    [[]]   g#3#34444rc||jvsJt||}||j|<|j|dSzCreate a diagram object.N)rIr<rGrWrr/r0ents r add_objectzClassDiagram.add_objectsL4;&&&&%&& D C     r nodes_lstIterable[nodes.NodeNG]cbg}|D]}t|tjr|j}t|tjtjtjtjfrJt|dr:| |s%|j |vr|j }| ||S)z(Return class names if needed in diagram.r$) r`ruInstance_proxiedrClassDefName SubscriptBinOphasattrhas_noder$rW)rrrpr0rns rrkzClassDiagram.class_namess , ,D$ 011 %}5>5:u T ,D&)) ,  d++ ,9E)) $ ILL+++ r nodes.NodeNGboolc||jvS)z9Return true if the given node is included in the diagram.rIrr0s rrzClassDiagram.has_nodest{""rc|j|S)z)Return the diagram object mapped to node.rrs robject_from_nodezClassDiagram.object_from_nodes{4  rlist[ClassEntity]c$d|jDS)z&Return all class nodes in the diagram.c<g|]}t|t|Sr)r`r<rbos rrez(ClassDiagram.classes..s'FFFa:a+E+EFFFFrrGrs rclasseszClassDiagram.classessFF4<FFFFrr<cv|D]}|jj|kr|cSt|)z8Return a class by its name, raise KeyError if not found.)rr0r$r[)rr$klasss rclassezClassDiagram.classesB\\^^  Ez$&& 'tnnrc |D]}|j}|||_|||_t |rd|_nd|_|dD]?} | |}| ||d0#t$rY>% % C8Dt,,CI**400CKD!! $' #  NN%N88  "33H==G))#w8HIIIIH"_   #44Y??H))#xFFFFH!%T%;%A%A%C%C D D   f#E88sD- !%T%;%A%A%C%C D Dt &&((HH!   f$E88sD- ?% % s$ ,B77 CC,C>> D  D rastroid.NodeNGrtype_relationshipct|tjrdSt|tjr|j} ||}|||||dS#t$rYdSwxYwr') r`rUninferableBaserurrrrYr[)rrrr$rassociated_objs rrz,ClassDiagram.assign_association_relationships eT1 2 2  F eW- . . #NE !22599N  ! !.#7H$ O O O O O    FF s-A.. A<;A<)r/r#rEr#r r)rJr#r rKr') rr r!r r"r#r$r%r r)rr r"r#r r)r0r>r r])r0r>r rrrB)rrr r])r0rr r)r0rr r )r r)r$r#r r<r) rrrr<r$r#rr#r r)rrrrTYPErrTrYr\rqryr~rkrrrrrrrrrrDrDJsK&& D<<<<     E E E E E&&&&* 5 5 5 5!!!!$####!!!!GGGG''''R      rrDcPeZdZdZdZddZdd ZddZddZddZ dfd Z xZ S)PackageDiagramzPackage diagram handling.r:r list[PackageEntity]c$d|jDS)z'Return all module nodes in the diagram.c<g|]}t|t|Sr)r`r9rs rrez*PackageDiagram.modules..s'HHHa:a+G+GHHHHrrrs rmoduleszPackageDiagram.modulessHH4<HHHHrr$r#r9cv|D]}|jj|kr|cSt|)z9Return a module by its name, raise KeyError if not found.)rr0r$r[)rr$mods rmodulezPackageDiagram.modulesB<<>>  Cx}$$ %tnnrr/r0 nodes.Modulerc||jvsJt||}||j|<|j|dSr{)rIr9rGrWr|s rr~zPackageDiagram.add_objectsL4;&&&&E4(( D C     rc|D]i}|jj}||kr|cS|j}||d|kr|cS||dddd|kr|cSjt |)zmReturn a module by its name, looking also for relative imports; raise KeyError if not found. .r)rr0r$rootrsplitr[)rr$r0rmod_namer:s r get_modulezPackageDiagram.get_modules<<>>  Cx}H4 iikk&Gg...... gnnS!44Q7@@$@@@@ Atnnrnodes.ImportFrom from_modulec|j}||}||jjvr!|jj|dSdS)z)Add dependencies created by from-imports.N)rr$rr0dependsrW)rr0rrrs radd_from_dependzPackageDiagram.add_from_dependsZ99;;#kk(## ch. . . H  # #K 0 0 0 0 0 / .rct|D]V} ||j}|||dG#t$rYSwxYw|D]\}d|_ |jj D]F} | ||j}n#t$rY+wxYw|||dG]dS)r ownershipr:rN) r(rrrr0rrYr[rr5rr)r class_objr package_objdep_namedepr*s rrz$PackageDiagram.extract_relationships%s3 %%'''  I ++IN,?,?,A,ABB%%ikBBBB    <<>> C CK )K ',4 C C//(K4DEECCH%%k3 BBBB  C C Cs$AA== B  B 9C C"!C")r r)r$r#r r9)r/r#r0rr r)r$r#r0rr r9)r0rrr#r rr) rrrrrrrr~rrrr+r,s@rrrs## DIIII!!!! 1111CCCCCCCCCCrr)r __future__rcollections.abcrtypingrrurrpylint.checkers.utilsrpylint.pyreverse.utilsr r r rr r9r<rDrrrrrs """"""$$$$$$999999<<<<<<<<6" ( ( ( ( (F ( ( (M 33333-333jjjjj6;jjjZ@C@C@C@C@C\@C@C@C@C@Cr