
    Vhb                       d Z ddlmZ ddlZddlmZ ddlZddlZddl	Z	ddl
Z
ddlZddlZddlmZmZ ddlmZ ddlmZmZmZmZ ddlmZmZ d	Zd*d
Zd+d,dZ	 	 	 d-	 	 	 	 	 	 	 	 	 d.dZ	 	 d/	 	 	 	 	 	 	 	 	 d0dZd1dZd1dZ d2d3dZ!d2d3dZ"d1dZ#d+d4dZ$d+d4dZ%d+d4dZ&d5dZ'd6dZ(	 	 	 	 	 	 	 d7	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d8dZ)d9dZ* G d dejV                        Z, G d de,      Z- G d d ej\                        Z/d:d!Z0d;d"Z1 G d# d$e,      Z2 G d% d&e      Z3 ejh                  d'e,(      Z5 ejh                  d)e2(      Z6y)<z>Test target identification, iteration and inclusion/exclusion.    )annotationsN   )to_bytesto_text)read_text_file)ApplicationErrordisplayread_lines_without_comments	is_subdir)data_contextcontent_plugins).py.ps1c                z    	  |        }t        t        |||            }|S # t        $ r}d|z  gcY d}~S d}~ww xY w)zUReturn a list of targets from the given target function which match the given prefix.z%sN)listwalk_completion_targets	Exception)target_funcprefixshorttargetsmatchesexs         M/home/dcms/DCMS/lib/python3.12/site-packages/ansible_test/_internal/target.pyfind_target_completionr   %   sC    -.wFG r	{s   ! 	:5::c                   t        d | D              }|j                  d      r||v r|j                  |       |D cg c]'  }|j                  |      sd|t	        |      d vs&|) }}|r`t	        t
        j                  j                  |            }|r6|dz  }|D cg c]  }t	        |      |kD  s||d  }}t	        |      dkD  r|}t        t        |            S c c}w c c}w )zVReturn a tuple of targets from the given target iterable which match the given prefix.c              3  B   K   | ]  }|j                   D ]  }|   y wN)aliases).0targetaliass      r   	<genexpr>z*walk_completion_targets.<locals>.<genexpr>1   s      JF6>>J%%J%Js   /r   N)
setendswithremove
startswithlenospathdirnametuplesorted)	r   r   r   r   r"   r   offsetmatchrelative_matchess	            r   r   r   /   s    JgJJGs' 1v")kU-=-=f-E#UZ[^_e[fgiUjJjukGkRWW__V,-aKF<C[5s5zTZGZfg[[#$q(*!! l  \s   C!C!%C! C&4C&c                8   t        |       } t        t        | |      d       }|r)t        t        | |            }|D cg c]	  }||v s| }}|rt	        t        | |d             t        t        ||dd            }t        t        |d             S c c}w )z.Return a tuple of matching completion targets.c                    | j                   S r   name)include_targets    r   <lambda>z'walk_internal_targets.<locals>.<lambda>L   s    [i[n[n     )keyF)include)errorsr;   c                    | j                   S r   r5   )sort_targets    r   r8   z'walk_internal_targets.<locals>.<lambda>V   s    +BRBR r9   )r.   r/   filter_targetsr&   r   )r   includesexcludesrequiresinclude_targetsrequire_targetsrequire_targetinternal_targetss           r   walk_internal_targetsrG   C   s     GnG^GX>DnoOnWh?@@OunSaetSt>uu^GXu=>>/8E[`ab(.RSTT vs   	B	Bc              #  r  K   t        |xs d      }|rt        d |D              nd}| D ]h  }t               }d}|r|j                  D ]  }	|D ]  }
||
   j                  |	      sd}	 |j	                  |
       |	j                  d      s>|j                  r=t        |j                        t        |	      kD  r|j                  |j                         |j                  |	         n|rd}|j                  s|j                  d       |j                  D ]n  }	|	j                  d      s|j                  r=t        |j                        t        |	      kD  r|j                  |j                         ^|j                  |	       p ||k7  re| k |r|rt        |      yy# t
        $ r Y :w xY ww)zOIterate over the given targets and filter them based on the supplied arguments. c              3  P   K   | ]  }|t        j                  d |z        f   yw)z^%s$N)recompiler    ps     r   r#   z!filter_targets.<locals>.<genexpr>a   s"     KQaFQJ!78Ks   $&NFTr$   .)r&   dictr   r1   r(   KeyErrorr'   	base_pathr*   addTargetPatternsNotMatched)r   patternsr;   r<   	unmatchedcompiled_patternsr!   matched_directoriesr1   r"   patterns              r   r?   r?   Y   s     HN#IOWK(KK]a "!e ?' ?G(177> $!%,,W5 !>>#.%//C8H8H4ICPUJ4V 3 7 78H8H I 3 7 7 >?? E###'', 7>>#&''C0@0@,ACJ,N+//0@0@A+//67 GE"H *955  1  ( ! !s>   A"F7%F7(F'9F7B F7,A;F7'	F4	0F73F4	4F7c               #     K   t        t               j                  j                  t               j                  j                  t              D ]  } | j
                  s|   yw)z(Iterate through the module test targets.)r,   module_path
extensionsN)walk_test_targetsr   contentr[   MODULE_EXTENSIONSmodule)r!   s    r   walk_module_targetsra      sS     #)?)?)K)KYeYgYoYoY{Y{  IZ  [ }}	s   A"A$c                     t        t               j                  j                  t               j                  j                  dd      S )z$Return an iterable of units targets.r   test_)r,   r[   r\   r   )r]   r   r^   	unit_pathunit_module_pathrI   r9   r   walk_units_targetsrg      sA    ,."8"8"B"BP\P^PfPfPwPw  EM  V]  ^  ^r9   c                X    t        t               j                  j                  dd|       S )z&Return an iterable of compile targets.rc   )bin)r[   r\   
extra_dirsinclude_symlinksr]   r   r^   r[   rk   s    r   walk_compile_targetsrn      s.    )?)?)K)KX`mu  IY  Z  Zr9   c                V    t        t               j                  j                  d|       S )z)Return an iterable of PowerShell targets.)r   z.psm1)r[   r\   rk   rl   rm   s    r   walk_powershell_targetsrp      s+    )?)?)K)KXi  }M  N  Nr9   c                 V    t        t               j                  j                  dd      S )z%Return an iterable of sanity targets.T)r[   rk   include_symlinked_directoriesrl   rI   r9   r   walk_sanity_targetsrs      s+    )?)?)K)K^b  CG  H  Hr9   c              #  r   K   t               D ]&  }d|j                  v s| sd|j                  v s#| ( yw)z0Return an iterable of POSIX integration targets.zposix/zhidden/posix/Nwalk_integration_targetsr   include_hiddenr!   s     r   walk_posix_integration_targetsry      s9     *, v~~%._PVP^P^=^L   777c              #  r   K   t               D ]&  }d|j                  v s| sd|j                  v s#| ( yw)z2Return an iterable of network integration targets.network/zhidden/network/Nru   rw   s     r    walk_network_integration_targetsr}      :     *, 'N?PTZTbTb?bLrz   c              #  r   K   t               D ]&  }d|j                  v s| sd|j                  v s#| ( yw)z2Return an iterable of windows integration targets.zwindows/zhidden/windows/Nru   rw   s     r    walk_windows_integration_targetsr      r~   rz   c            	   #  x  K   t               j                  j                  } t        d t	               D              }t               j                  j                  |       }t               }t        | j                  t        j                  j                              }d}d}g |D ]Q  }|D ]J  }j                  t        j                  j                  t        j                  j                  ||             L S t        d |D              }	|	j                  fd|D               ||	v r|	j!                  |       d}
g }t#        |	      D ]P  }|
r|
|dt%        |
       k(  r|}
|j                  t        j                  j                  j                  |             R |D ]  } t'        t)        |       ||        yw)z*Return an iterable of integration targets.c              3  4   K   | ]  }|j                     y wr   )r`   r    r!   s     r   r#   z+walk_integration_targets.<locals>.<genexpr>   s     J&Js   )defaultsfileshandlersmetatasks	templatesvars)zmain.ymlz	main.yamlc              3     K   | ]S  }t        t        j                  j                  |      j	                  t        j                  j
                               U y wr   )r.   r+   r,   r-   splitseprM   s     r   r#   z+walk_integration_targets.<locals>.<genexpr>   s=      & BGGOOA.44RWW[[AB &s   AAc              3     K   | ]  t        fd D              rnt        t        j                  j	                  t        j                  j	                              j                  t        j                  j                                yw)c              3  @   K   | ]  }j                  |        y wr   )r'   )r    entry_pointrN   s     r   r#   z5walk_integration_targets.<locals>.<genexpr>.<genexpr>   s     ,eQZZ-D,es   N)anyr.   r+   r,   r-   r   r   )r    rN   entry_pointss    @r   r#   z+walk_integration_targets.<locals>.<genexpr>   s[      g,eXd,e)e RWW__RWW__Q-?@FFrww{{ST gs   B
BN)r   r^   integration_targets_path	frozensetra   
walk_filesload_integration_prefixesr.   r   r+   r,   r   appendjoinr&   updater(   r/   r*   IntegrationTargetr   )r,   modulespathsprefixestargets_path_tuple
entry_dirsentry_files	entry_dir
entry_filepath_tuplesprevious_path_tuple
path_tupler   s               @r   rv   rv      s    >!!::DJ4G4IJJGN""--d3E(*Htzz"''++67JK
 L R	% 	RJRWW[[)Z PQ	RR
  &$& &K  g %g g [(-.E[) 3
#6*E^cJ]F^:_#_(RWW[[%%j123  BwAABs   F7F:c            	     z   t               j                  j                  } t        d t               j                  j	                  |       D              }i }|D ]a  }t
        j                  j                  |      d   dd |j                  t        fdt        |      j                         D                     c |S )z.Load and return the integration test prefixes.c              3     K   | ]I  }t         j                  j                  t         j                  j                  |            d    dk(  sF| K yw)r   ztarget-prefixesN)r+   r,   splitextbasename)r    fs     r   r#   z,load_integration_prefixes.<locals>.<genexpr>   sN       LaRWWM]M]^`^e^e^n^nop^qMrstMu  zK  NK  Ls   AA
Ar   Nc              3  &   K   | ]  }|f 
 y wr   rI   )r    kr   s     r   r#   z,load_integration_prefixes.<locals>.<genexpr>   s     YQa[Ys   )r   r^   integration_pathr/   	get_filesr+   r,   r   r   rP   r   
splitlines)r,   
file_pathsr   	file_pathr   s       @r   r   r      s    >!!22D  L<>#9#9#C#CD#I  L  LJH [	!!),Q/3Y.2K2V2V2XYYZ[ Or9   c              #    K   | r&t               j                  j                  | |      }n$t               j                  j                  |      }|D ]  }t        j
                  j                  t        j
                  j                  |            \  }	}
|r|
|vrI|r|	j                  |      s]t        j
                  j                  t        |j                  t        j
                  j                                    }|r|st        t        |      ||| |        g }|r@|D ];  }t               j                  j                  |      D ]  }|j!                  |        = |D ]g  }t        j
                  j                  t        |j                  t        j
                  j                                    }|r|sWt        |||| |       i yw)z$Iterate over available test targets.)rr   N)r   r^   r   	all_filesr+   r,   r   r   r)   islinkr   rstripr   
TestTargetr   r   r   )r,   r[   r\   r   rj   rk   rr   r   r   r6   extsymlink	extra_dirs                r   r]   r]     s     !^++66t[x6y
!^++55Tq5r
 Q	GG$$RWW%5%5i%@A	c#Z/$//&1''..)*:*:277;;*G!HI++[&$PPQ  J# 	-I)^33==iH -	!!),-	-   H	''..)*:*:277;;*G!HI+KwGGHs   GGc           	        t         j                  j                  t               j                  j
                        dz   }| D cg c]  }|j                  dk(  s| }}t        d |D              }t        j                  t              }| D ]>  }|j                  |j                  z   D ]   }||   j                  |j                         " @ | D ]1  }|j                  D ]   }||   j                  |j                         " 3 | D ]  }t               j                  j                  |j                        D ]  }t         j                  j!                  t#        |j%                  t         j                  j&                                    sSt         j                  j                  |      }	|	j)                  |      s|	t+        |      d j-                  d      d   }
|
|j                  k(  r||
   j                  |j                           | D ]
  }t         j                  j/                  |j                  d      }t         j                  j1                  |      sNt               j                  j3                  |      }|D ]  }t         j                  j5                  |      s#	 t7        |      j9                         }|D ]T  }t=        j>                  d|      r|jA                         s+|D ]%  }||v s||   j                  |j                         ' V   	 d}|jC                         D ]K  \  }}tE        |      D ]8  }|jG                  |      }|s|D ]  }||vs|j                  |       |dz  } : M |sndtI        |      D ]N  }||   }|stK        jL                  d	|z  d
       tI        |      D ]  }tK        jL                  d|z  d
        P |S c c}w # t:        $ r Y ow xY w)zAnalyze the given list of integration test targets and return a dictionary expressing target names and the target names which depend on them.r$   rolec              3  R   K   | ]  }d |j                   v s|j                   ! yw)hidden/N)r   r6   r   s     r   r#   z:analyze_integration_target_dependencies.<locals>.<genexpr>7  s"     "i6YZ`ZhZhMh6;;"is   ''Nr   r   z^ *#.*$r   z%s:   )	verbosityz  %s)'r+   r,   realpathr   r^   r   typer&   collectionsdefaultdictsetup_always
setup_oncerS   r6   needs_targetr   r   r   r   r   r)   r*   r   r   isdirr   existsr   r   UnicodeDecodeErrorrK   searchstripitemsr   getr/   r	   info)integration_targetsreal_target_rootr!   role_targetshidden_role_target_namesdependenciessetup_target_nameneed_targetr,   real_link_pathlink_targetmeta_dir
meta_paths	meta_path
meta_lines	meta_linehidden_target_namechangesdummydependent_target_namesdependent_target_namenew_target_namesnew_target_nametarget_name	consumersconsumers                             r   'analyze_integration_target_dependenciesr   2  s   ww''(>(>(W(WX[^^)<Vvv@UFVLV""i\"ii;F;R;RSV;WL & =!'!4!4v7H7H!H 	=*+//<	==
 & 7!.. 	7K%))&++6	77 & 7 N**55fkkB 	7D77>>(4;;rww{{+C"DEWW--d3N!,,-=>(-=)>)?@FFsKANKfkk)%))&++6	77& & N77<<V4ww}}X&!^++55h?
# 	NIww~~i(!/	!:!E!E!GJ ", 	NIyyY7 $??, .F N*-:();<@@MN	N	NN6 -9-?-?-A 	))E))-.D)E )%#/#3#34I#J #+; )*2HH266G#qLG)	)	)    l+ 	9 -	U[(A6y) 	9HLL(*a8	9	9 u Wb * s   OO%O$$	O10O1c                  <    e Zd ZdZd
dZd Zd Zd Zd Zd Z	d Z
y	)CompletionTargetz3Command-line argument completion target base class.c                j    d| _         d| _        d | _        t               | _        t               | _        y )N )r6   r,   rR   r.   r   r   selfs    r   __init__zCompletionTarget.__init__  s)    		*.(-(-r9   c                f    t        |t              r!| j                         |j                         k(  S y)NF)
isinstancer   __repr__r   others     r   __eq__zCompletionTarget.__eq__  s(    e-.==?enn&666r9   c                &    | j                  |       S r   )r   r   s     r   __ne__zCompletionTarget.__ne__  s    ;;u%%%r9   c                L    | j                   j                  |j                         S r   )r6   __lt__r   s     r   r   zCompletionTarget.__lt__      yy

++r9   c                L    | j                   j                  |j                         S r   )r6   __gt__r   s     r   r   zCompletionTarget.__gt__  r   r9   c                4    t        | j                               S r   )hashr   r   s    r   __hash__zCompletionTarget.__hash__  s    DMMO$$r9   c                    | j                   r+| j                  ddj                  | j                         dS | j                  S )Nz (z, ))r   r6   r   r   s    r   r   zCompletionTarget.__repr__  s/    << $		499T\\+BCCyyr9   N)returnNone)__name__
__module____qualname____doc__r   r   r   r   r   r   r   rI   r9   r   r   r     s(    =0&,,%r9   r   )	metaclassc                  >     e Zd ZdZ	 d	 	 	 	 	 	 	 	 	 	 	 d fdZ xZS )r   zGeneric test target.c                   t         |           |Ot        j                  j	                  t        |j                  t        j                  j                                    }|| _        || _        |r|dz   nd | _	        || _
        t        j                  j                  t        j                  j                  | j                              \  }}|rRt        ||      rF|dk7  rA|t        v r9|t        |xs d      d  j!                  d      | _        | j"                  f| _        nd | _        t'               | _        | j                  | j"                  g}| j                  j)                  d      }	t+        dt        |	            D ]*  }
ddj-                  |	d |
       z  }|j/                  |       , |D cg c]  }|s|	 }}t'        t1        |            | _        y c c}w )Nr$   r   r   _r   %s/)superr   r+   r,   r   r   r   r   r6   rR   r   r   r   r   r_   r*   lstripr`   r   r.   r   ranger   r   r/   r   )r   r,   r[   module_prefixrR   r   r6   r   r   partsir"   a	__class__s                r   r   zTestTarget.__init__  sx    	?ggnnXdkk"''++.F%GHG		,5S4GG$$RWW%5%5dii%@A	c9T;7DJ<NSVZkSks=#6B789@@EDK KK>DLDK 7DL99dkk*		$q#e*% 	"ACHHU2AY//ENN5!	" &+1++VG_- ,s   0G8Gr   )r,   strr[   t.Optional[str]r  r  rR   r  r   zt.Optional[bool]r  r  r  r  r  r  r   __classcell__r  s   @r   r   r     sO     %)$.$. %$. '	$.
 $. "$. 
$. $.r9   r   c                      e Zd ZdZ ej
                         Z ej
                         Z ej
                         Z ej
                         Z	y)IntegrationTargetTypez Type of integration test target.N)
r  r  r  r  enumauto
CONTROLLERTARGETUNKNOWNCONFLICTrI   r9   r   r  r    s9    *JTYY[FdiikGtyy{Hr9   r  c                x   t               }g }| g|z   D ]  }d}|}||j                  |i       v r|j                  ||f       |j                  d      }dD ]a  }t	        |      |kD  sdj                  |d|       }dj                  ||d       }||j                  |i       v sO|j                  ||f       c  |S )z_Return a list of plugin references found in the given integration test target name and aliases.r   r
  )r      N)r   r   r   r   r*   r   )	r6   r   pluginsfoundr"   plugin_typeplugin_namer  type_lengths	            r   extract_plugin_referencesr(    s    G#%E'! ='++k266LL+{34C ! 	=K5zK'!hhu\k':;!hhu[\':;'++k2">>LL+{!;<	==" Lr9   c                   dt         j                  j                  j                          |v }dt         j                  j                  j                          |v xs |}d}t               j                  j                  }|r|rt         j                  }n|r|st         j                  }n|r|st         j                  }nt        | |      D 	ch c])  \  }}	|dv rt         j                  nt         j                  + }
}}	t        |
      dk(  r|
j                         }n7|
s%t         j                  }|r|nt         j                  }nt         j                  }||xs |fS c c}	}w )zfReturn the integration test target types (used and actual) based on the given target name and aliases.context/N)r   module_utilsr   )r  r  r6   lowerr  r   r^   
is_ansibler   r(  r*   popr  )r6   r   force_targetcontext_controllercontext_targetactual_typestrict_modetarget_typer%  r&  target_typess              r   categorize_integration_testr6    sV   #$9$D$D$I$I$O$O$Q#RSW^^ 5 < < A A G G IJKwVfZfNK.((33Kn+44	N+66	 2+22 9RRVX_8`b4K 9DGb8b-44h}  iI  iI  I b b |!&**,K/77K)4+:O:V:VK/88K2{22bs   .Ec                  V     e Zd ZdZ ed      Z ee ed      z        Zd fdZ xZS )r   zIntegration test target.)networkwindows)posixr`   needsskipc           	         t                    t        j                  j	                  |t               j                  j                         _         j                  j                  t        j                  j                  d       _        | _        t               j                  j                  |      }t        j                  j                  |d      }||v rd _        | _        nd _        d  _        t        j                  j                  |d      }||v rt!        t#        |d            }n
t!               } j                  v r j                  }n> j                  j%                  d      r! j                  d	d  v r j                  d	d  }nd }t!        t'        fd
|t!        |g      z   D                     _         j                  g}	|	|D 
cg c]	  }
|
vs|
 c}
z  }	|	 j(                  D cg c]  }d|z  	 c}z  }	t               j                  j*                  r; j                  dk(  s j                  j%                  d      r|	j-                  d        j(                  s|	j-                  d       d|	vr|	j-                  d       d|	v r|	j-                  d       |j/                         D ]A  \  }} j                  j%                  | d      s%||k7  r|d|}|	j-                  |       C  j                  j%                  d      r|	j-                  d        j                  j%                  d      r|	j-                  d        j                  j%                  d      s j                  j%                  d      r|	j-                  d        j                  dvr|	j-                  d       t               j                  j                  t!        d |	D               _        t!        t'        t3        fd|	D                           _        |	D cg c](  }|j%                  d      s|j7                  d      d   * }}|r|d    nd  _        t;        j<                  |	d t?        |	            D ]U  }d|v s|j7                  d      }tA        dt?        |            D ]%  }|	j-                  dj                  |d |              ' W tC         fd!|	D              s|	j-                  d"       tC         fd#|	D              }tE         j                  tG        |      |      \  }}|	jI                  d$d$|j                  jK                          g       ||k7  r.|	jI                  d$d$|j                  jK                          g       | _&        | _'         j                  g|	D cg c]  }d%|z  	 c}z   |	D cg c]"  }| jP                  vs|d j                  $ c}z   }d&|v r)d&g|D 
cg c]  }
|
j%                  d&      rd'|
z   c}
z   }t!        t'        t3        |                   _)        d( jR                  v  _*        t!        t'        t3        d) |	D                           _+        t!        t'        t3        d* |	D                           _,        t!        t'        t3        d+ |	D                           _-        y c c}
w c c}w c c}w c c}w c c}w c c}
w ),NrO   zrunme.shscriptr   r   T)remove_blank_lineswin_r   c              3  ,   K   | ]  }|v s|  y wr   rI   )r    r  r   s     r   r#   z-IntegrationTarget.__init__.<locals>.<genexpr>Q  s     #e!XY]dXdA#es   	z	module/%szansible-testzansible-test-
non_moduledestructivenon_destructivezneeds/httptesterzcloud/httptesterr
  r$   r9  connection_
connectionsetup_prepare_hidden)r>  r   c              3  D   K   | ]  }|j                  d       s|  yw)zskip/N)r)   r    gs     r   r#   z-IntegrationTarget.__init__.<locals>.<genexpr>}  s     FW0E1Fs     c              3     K   | ]L  }|j                  d       r9|j                  dz        s%dj                  |j                  d      dd        N yw)zneeds/file/zneeds/file/%s/r$   r"  N)r)   r   r   )r    rL  targets_relative_paths     r   r#   z-IntegrationTarget.__init__.<locals>.<genexpr>  s\      +G!+,<<+Fq||\l  pE  ]E  PF ,/88AGGCL4D+E +Gs   AAr|   r   r   c              3  :   K   | ]  }|j                   v   y wr   	non_posix)r    rL  r   s     r   r#   z-IntegrationTarget.__init__.<locals>.<genexpr>  s     711&7   r:  c              3  :   K   | ]  }|j                   v   y wr   rP  )r    groupr   s     r   r#   z-IntegrationTarget.__init__.<locals>.<genexpr>  s     Gu5DNN2GrR  r*  r  r   z	hidden/%szretry/never/c              3  h   K   | ]*  }|j                  d       s|j                  d      d    , yw)zsetup/once/r$   r"  Nr)   r   rK  s     r   r#   z-IntegrationTarget.__init__.<locals>.<genexpr>  s(     *jqall[hNi1773<?*j   22c              3  h   K   | ]*  }|j                  d       s|j                  d      d    , yw)zsetup/always/r$   r"  NrV  rK  s     r   r#   z-IntegrationTarget.__init__.<locals>.<genexpr>  +     ,nPQP\P\]lPmQWWS\!_,nrW  c              3  h   K   | ]*  }|j                  d       s|j                  d      d    , yw)zneeds/target/r$   r"  NrV  rK  s     r   r#   z-IntegrationTarget.__init__.<locals>.<genexpr>  rY  rW  ).r  r   r+   r,   relpathr   r^   r   relative_pathreplacer   r6   r   r   r   script_pathr.   r
   r)   r/   r   r-  r   r   skipsr&   
needs_filer   network_platform	itertoolsislicer*   r  r   r6  r   extendr,  r4  r2  
categoriesr   retry_neverr   r   r   )r   r,   r   r   r   
runme_pathaliases_pathstatic_aliasesmodule_namegroupsr  mr   rT  rL  networksr  r  r/  r4  r2  r   rN  r  s   ` `                   @r   r   zIntegrationTarget.__init__,  s   WW__T<>3I3I3b3bc&&..rww{{C@		 "^++55d;
WW\\$
3
# DI)DDI#D ww||D)4:%"#>|`d#efN"WN 99))KYY!!&)diimw.F))AB-KKV#e~{m@T/T#eef ))nA0@1AADLL9q;?99>!!,,$))~2MQUQZQZQeQefuQvMM.)||MM,'&MM+,'MM,-%^^- 	!MFE99''6(!5#(&1MM% 	! 99'MM)$99.MM,'99)TYY-A-A*-MMM(#99..MM(# , 6 6 O O FfFF
  s +Gv +G (G !H I .4Pq||J7OAGGCLOPP/7T%%faV= 	7Ee|C(q#e*- 7AMM#((5!9"567	7 777MM'"
 GGG#>tyy$~J^`l#m [zXk.>.>.D.D.F-G#HIJ+%MM:+2B2B2H2H2J1K'LMN&& 99+&,-519-.5;Xq?Wa+XY  kg$eQ\\ZcMd[1_$eeGVCL12 *T\\9s*jF*j'j kl!&,nf,n)n"op!&,nf,n)n"opy B9\ Q> .X %fs<   	[![9[ [7[0[["[":['[')r,   r  r   zfrozenset[str]r   dict[str, str]r  r  )	r  r  r  r  r   rQ  re  r   r  r  s   @r   r   r     sB    "  I
 9y 2 (  JFq Fqr9   r   c                  $     e Zd ZdZd fdZ xZS )rT   z?One or more targets were not matched when a match was required.c                    t        |      | _        t        |      dkD  rddj                  | j                        z  }nd| j                  d   z  }t        |   |       y )Nr   zTarget patterns not matched:
%s
zTarget pattern not matched: %sr   )r/   rU   r*   r   r  r   )r   rU   messager  s      r   r   z!TargetPatternsNotMatched.__init__  sR    x(x=18499T]];SSG6q9IIG!r9   )rU   zset[str]r  r  r  r  s   @r   rT   rT     s    I" "r9   rT   TCompletionTarget)boundTIntegrationTarget)r   z,c.Callable[[], c.Iterable[CompletionTarget]]r   r  r   boolr  	list[str])F)r   zc.Iterable[CompletionTarget]r   r  r   rv  r  ztuple[str, ...])NNN)
r   c.Iterable[TCompletionTarget]r@   t.Optional[list[str]]rA   ry  rB   ry  r  ztuple[TCompletionTarget, ...])TT)
r   rx  rU   rw  r;   rv  r<   rv  r  rx  )r  c.Iterable[TestTarget])T)rk   rv  r  rz  )rx   rv  r  c.Iterable[IntegrationTarget])r  r{  )r  rn  )NNNNNFF)r,   r  r[   r  r\   t.Optional[tuple[str, ...]]r   r  rj   r|  rk   rv  rr   rv  r  rz  )r   zlist[IntegrationTarget]r  zdict[str, set[str]])r6   r  r   rw  r  zlist[tuple[str, str]])r6   r  r   rw  r/  rv  r  z3tuple[IntegrationTargetType, IntegrationTargetType])7r  
__future__r   r   collections.abcabccr  r+   rK   rb  typingtencodingr   r   ior   utilr   r	   r
   r   datar   r   r_   r   r   rG   r?   ra   rg   rn   rp   rs   ry   r}   r   rv   r   r]   r   ABCMetar   r   Enumr  r(  r6  r   rT   TypeVarrs  ru  rI   r9   r   <module>r     s   D "    	 	  
 
 
 " ", '+&*&*	U*U#U $U $	U
 #U2 	06*0606 06 	06
 #06f^
Z
N
H
5Bp
 !#'.2".2"*/,H
,H ,H ,,H 	,H
 ,,H ,H $(,H ,H^^B   F'.! '.TDII 238Tq( Tqn"/ " AII19IJ QYY3;LM r9   