+
    Ni                         ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 . ROt
Rt. ROtR tR t ! R R]4      t ! R	 R
]4      tR# )    N)gvutils)	Frameworkellipsec                 @   \         P                  ! V 4      p\        V 4      P                  4       p. p\        P                  ! V4       F  p\        P
                  ! V4      pVP                  P                  R R4      pVP                  \        9   d   VP                  V4       VP                  RVP                  ,           R,           RV,           R,           4      pK  	  V F9  pRV,           R,           V,           R,           p\        P                  ! VRV4      pK;  	  V# )zKF5:: "z *"z".*label="KF5::z".*shape="ellipse".*;)gvreadopenr   get_node_listNodelabelreplaceshapeTARGET_SHAPESappendnameresub)	fnamegraph_handletxttargetsnode_handlenoder   targetrxs	   &        `/tmp/fempkg/build/kf6/DESTDIR/usr/lib/python3.14/site-packages/kapidox/depdiagram/frameworkdb.py
preprocessr   $   s    775>L
u+


CG" ,,\:||K(

""7B/::&NN5!kk#		/C/us1BC ;" f_0069<SSffRS!  J    c                 h    VP                  R 4      pVf   R# V F  pV P                  V4       K  	  R# )zframework-dependenciesN)getadd_extra_framework)fwdctlstdeps   &&  r   _add_extra_dependenciesr(   O   s1    
''*
+C
{
s# r    c                   8   a  ] tR t^Wt o R tR tR tR tRtV t	R# )DotFileParserc                    Wn         R # N_with_qt)selfwith_qts   &&r   __init__DotFileParser.__init__X   s    r    c                    \         P                  P                  V4      P                  R R4      p\	        W4      p\        V4      pV P                  WEV P                  4       V# ).dotr   )ospathbasenamer   r   r   _init_fw_from_dot_datar.   )r/   tierdot_filer   r$   dot_datas   &&&   r   parseDotFileParser.parse[   sR    ww)11&"=t" x(##B$--@	r    c                   R  p\         P                  ! V4      p\        4       p\        P                  ! V4       Fs  p\        P
                  ! V4      pVP                  \        9   g   K0  V P                  V4      '       g   KI  V! V4      p	VP                  V	4       VP                  V	4       Ku  	  \        P                  ! V4       Fy  p
\        P                  ! V
4      pV! VP                  4      p	W9   g   K3  V P                  VP                  4      '       g   KV  V! VP                  4      pVP                  W4       K{  	  R# )c                 :    V P                   P                  R R4      # )KF5r   )r   r   )r   s   &r   target_from_node>DotFileParser._init_fw_from_dot_data.<locals>.target_from_nodef   s    99$$UB//r    N)r	   
readstringsetr   r   r   r   r   _wantadd
add_targetget_edge_listEdgetailheadadd_target_dependency)r/   r$   r;   r0   rA   
src_handler   r   r   r   edge_handleedge
dep_targets   &&&&         r   r8   $DotFileParser._init_fw_from_dot_datae   s    	0 ]]8,
%"00<K<<,Dzz]*tzz$/?/?)$/F#f% = #00<K<<,D%dii0F TZZ		%:%:-dii8
((< =r    c                :   VP                   \        9  d   VP                   \        8w  d   R # VP                  p\         F-  p\
        P                  ! VP                  V4      '       g   K,   R # 	  V P                  '       g   VP                  R4      '       d   R # R# )FQtT)	r   r   
DEPS_SHAPEr   DEPS_BLACKLISTfnmatchfnmatchcaser.   
startswith)r/   r   r   patterns   &&  r   rE   DotFileParser._wantz   sh    ::]*tzzZ/Gyy%G""499g66 & }}}!6!6r    r-   N)
__name__
__module____qualname____firstlineno__r1   r<   r8   rE   __static_attributes____classdictcell____classdict__s   @r   r*   r*   W   s      =*
 
r    r*   c                   T   a  ] tR t^t o R tRR ltR tR tR tR t	R t
R tR	tV tR
# )FrameworkDbc                "    . V n         / V n        R # r,   )_fw_list_fw_for_targetr/   s   &r   r1   FrameworkDb.__init__   s     r    c                   \        V4      pV F  pVP                  RR4      p\        V4      ;_uu_ 4       p\        P                  ! V4      pRRR4       RX9  d   KP  VR,          pVP                  W4      p	\        W4       V P                  P                  V	4       K  	  V P                  4        R#   + '       g   i     Lo; i)z
Init db from dot files
r4   z.yamlNr9   )
r*   r   r   yaml	safe_loadr<   r(   rf   r   _update_fw_for_target)
r/   	dot_filesr0   parserr:   	yaml_filefr%   r9   r$   s
   &&&       r   populateFrameworkDb.populate   s     w'!H ((9IiAnnQ' ! S v;Dd-B#B,MM  $ " 	""$ !s   B44Cc                    / V n         V P                   F(  pVP                  4        F  pWP                   V&   K  	  K*  	  R # r,   )rg   rf   get_targets)r/   r$   r   s   &  r   rm   !FrameworkDb._update_fw_for_target   s7     --B..*.0##F+ +  r    c                V    V P                    F  pVP                  V8X  g   K  Vu # 	  R # r,   )rf   r   )r/   r   r$   s   && r   find_by_nameFrameworkDb.find_by_name   s%    --Bww$	   r    c                \   a a VV 3R  lo\        4       pS! W!4       \        V4      S n        R# )c                 x  < V P                  V4       VP                  4        F4  pSP                  P                  V4      pVf   K$  W09   d   K,  S! W4       K6  	  VP	                  4        FK  pSP                  V4      pV'       g    \        P                  ! RV RV R24       K;  W09   d   KC  S! W4       KM  	  R # )Nz
Framework z has an extra dependency on z , but there is no such framework)rF   get_all_target_dependenciesrg   r"   get_extra_frameworksrx   loggingwarning)fw_set	wanted_fwr   r$   fw_name
add_to_setr/   s   &&   r   r   8FrameworkDb.remove_unused_frameworks.<locals>.add_to_set   s    JJy!#??A((,,V4>",v* B
 %99;&&w/OOj;WX_W`  aA  %B  C|v* <r    N)rD   listrf   )r/   r   r   r   s   f& @r   remove_unused_frameworks$FrameworkDb.remove_unused_frameworks   s$    	+  6%Vr    c                    \        . 4      p\        . 4      pV P                   FA  pVP                  VP                  4       4       VP                  VP	                  4       4       KC  	  VP                  V4      # r,   )rD   rf   updateru   r|   
difference)r/   all_targets
fw_targetsr$   s   &   r   find_external_targets!FrameworkDb.find_external_targets   sa    "gW
--Bbnn./r==?@   %%j11r    c                (    V P                   V,          # r,   )rg   )r/   r   s   &&r   get_framework_for_target$FrameworkDb.get_framework_for_target   s    ""6**r    c                ,    \        V P                  4      # r,   )iterrf   rh   s   &r   __iter__FrameworkDb.__iter__   s    DMM""r    )rg   rf   N)F)r[   r\   r]   r^   r1   rr   rm   rx   r   r   r   r   r_   r`   ra   s   @r   rd   rd      s2     !%*1%*2+# #r    rd   )polygonhouseoctagondiamond)z-l*z-W*z/*mpthreadutilnslresolvz	*example*z*demo*z*test*z*Test*z*debug*)r~   rV   r5   r   r	   rk   kapidox.depdiagramr   kapidox.depdiagram.frameworkr   r   rT   rU   r   r(   objectr*   rd    r    r   <module>r      sZ      	 	 	  & 2 
(V$-F -`G#& G#r    