
    ǆi                         S SK r S SKrS SKrS SKrS SKrS SKrS SKJrJr  S SK	J
r
  S SKJr  S SKJrJrJrJrJrJrJr  SSKJr  S SKJr  S S	KJr  S S
KJr   " S S\5      r " S S5      r " S S\5      rg)    N)DistutilsErrorDistutilsOptionError)log)
TestLoader)resource_listdirresource_existsnormalize_pathworking_setevaluate_markeradd_activation_listenerrequire   )metadata)Command)unique_everseen)	pass_nonec                   $    \ rS rSrS rSS jrSrg)ScanningLoader   c                 N    [         R                  " U 5        [        5       U l        g N)r   __init__set_visitedselfs    g/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/setuptools/command/test.pyr   ScanningLoader.__init__   s    D!    Nc                    XR                   ;   a  gU R                   R                  U5        / nUR                  [        R                  " X5      5        [        US5      (       a  UR                  UR                  5       5        [        US5      (       a  [        UR                  S5       H  nUR                  S5      (       a  US:w  a  UR                  S-   USS -   nO3[        UR                  US	-   5      (       a  UR                  S-   U-   nOMh  UR                  U R                  U5      5        M     [        U5      S
:w  a  U R                  U5      $ US   $ )zReturn a suite of all tests cases contained in the given module

If the module is a package, load tests from all the modules in it.
If the module has an ``additional_tests`` function, call it and add
the return value to the tests.
Nadditional_tests__path__ z.pyz__init__.py.z/__init__.py   r   )r   addappendr   loadTestsFromModulehasattrr!   r   __name__endswithr   loadTestsFromNamelen
suiteClass)r   modulepatterntestsfile	submodules         r   r)   "ScanningLoader.loadTestsFromModule   s    ]]"&!Z33DAB6-..LL00236:&&("===''DM,A &# 5Sb	 AI&v~8MNN$*OOc$9D$@	 T33I>? > u:???5))8Or   )r   r   )r+   
__module____qualname____firstlineno__r   r)   __static_attributes__ r   r   r   r      s    r   r   c                   $    \ rS rSrS rSS jrSrg)NonDataPropertyB   c                     Xl         g r   fget)r   r@   s     r   r   NonDataProperty.__init__C   s    	r   Nc                 .    Uc  U $ U R                  U5      $ r   r?   )r   objobjtypes      r   __get__NonDataProperty.__get__F   s    ;Kyy~r   r?   r   )r+   r6   r7   r8   r   rE   r9   r:   r   r   r<   r<   B   s    r   r<   c                       \ rS rSrSrSr/ SQrS rS r\	S 5       r
S rS	 r\R                  SS
 j5       r\\R                  S 5       5       r\S 5       rS rS r\S 5       r\\S 5       5       rSrg)testL   z.Command to run unit tests after in-place buildz0run unit tests after in-place build (deprecated)))ztest-module=mz$Run 'test_suite' in specified module)ztest-suite=sz9Run single test, case or suite (e.g. 'module.test_suite'))ztest-runner=rzTest runner to usec                 <    S U l         S U l        S U l        S U l        g r   )
test_suitetest_moduletest_loadertest_runnerr   s    r   initialize_optionstest.initialize_options[   s!    r   c                    U R                   (       a  U R                  (       a  Sn[        U5      eU R                   c=  U R                  c  U R                  R                   U l         OU R                  S-   U l         U R                  c  [        U R                  SS 5      U l        U R                  c  SU l        U R                  c  [        U R                  SS 5      U l        g g )Nz1You may specify a module or a suite, but not bothz.test_suiterP   z&setuptools.command.test:ScanningLoaderrQ   )rN   rO   r   distributionrP   getattrrQ   )r   msgs     r   finalize_optionstest.finalize_optionsa   s    ??t//EC&s++??"'"&"3"3">">"&"2"2]"B#&t'8'8-ND#GD#&t'8'8-ND $r   c                 4    [        U R                  5       5      $ r   )list
_test_argsr   s    r   	test_argstest.test_argss   s    DOO%&&r   c              #      #    U R                   (       d  Sv   U R                  (       a  Sv   U R                   (       a  U R                   v   g g 7f)Ndiscoverz	--verbose)rN   verboser   s    r   r\   test._test_argsw   s5     <<??//! s   AAc                 f    U R                  5          U" 5         SSS5        g! , (       d  f       g= f)z9
Backward compatibility for project_on_sys_path context.
N)project_on_sys_path)r   funcs     r   with_project_on_sys_pathtest.with_project_on_sys_path   s!     %%'F (''s   "
0c              #     #    U R                  S5        U R                  SSS9  U R                  S5        U R                  S5      n[        R                  S S  n[        R
                  R                  5       n [        UR                  5      n[        R                  R                  SU5        [        R                  " 5         [        S 5        [        UR                  < SUR                  < 35        U R!                  U/5         S v   S S S 5        U[        R                  S S & [        R
                  R#                  5         [        R
                  R%                  U5        [        R                  " 5         g ! , (       d  f       Nt= f! U[        R                  S S & [        R
                  R#                  5         [        R
                  R%                  U5        [        R                  " 5         f = f7f)Negg_info	build_extT)inplacer   c                 "    U R                  5       $ r   )activate)dists    r   <lambda>*test.project_on_sys_path.<locals>.<lambda>   s
    r   z==)run_commandreinitialize_commandget_finalized_commandsyspathmodulescopyr	   egg_baseinsertr
   r   r   r   egg_nameegg_versionpaths_on_pythonpathclearupdate)r   include_distsei_cmdold_pathold_modulesproject_paths         r   rd   test.project_on_sys_path   sQ    $ 	!!+t!<%++J788A;kk&&(	#)&//:LHHOOA|,  "#$@A1C1CDE))<.9 : #CHHQKKKKK{+  " :9 #CHHQKKKKK{+  "s9   A5G48BF
 E9F
 A&G49
FF
 
A'G11G4c              #   p  #    [        5       n[        R                  R                  SU5      n[        R                  R                  SS5      n [        R                  R                  [        U 5      5      n[        SXC/5      n[        R                  R                  U5      nU(       a  U[        R                  S'   Sv   X!L a!  [        R                  R                  SS5        gU[        R                  S'   g! X!L a!  [        R                  R                  SS5        f U[        R                  S'   f = f7f)z
Add the indicated paths to the head of the PYTHONPATH environment
variable so that subprocesses will also see the packages at
these paths.

Do this in a context that restores the value on exit.

PYTHONPATHr#   N)	objectosenvirongetpathsepjoinr   filterpop)pathsnothingorig_pythonpathcurrent_pythonpathprefixto_joinnew_paths          r   r|   test.paths_on_pythonpath   s      (**..w?ZZ^^L"=	;ZZ___U%;<FTF#?@Gzzw/H+3

<()

|T2+:

<( )

|T2+:

<(s   AD6A2C9  9D69:D33D6c                    U R                  U R                  5      nU R                  U R                  =(       d    / 5      nU R                  S U R                  R	                  5        5       5      n[
        R                  " XU5      $ )zn
Install the requirements indicated by self.distribution and
return an iterable of the dists that were built.
c              3      #    U  H6  u  pUR                  S 5      (       d  M  [        USS 5      (       d  M2  Uv   M8     g7f):r&   N)
startswithr   ).0kvs      r   	<genexpr>%test.install_dists.<locals>.<genexpr>   s:      %
3||C  %4QqrU%; A3s   A A 	A )fetch_build_eggsinstall_requirestests_requireextras_requireitems	itertoolschain)rn   ir_dtr_der_ds       r   install_diststest.install_dists   st     $$T%:%:;$$T%7%7%=2>$$ %
++113%
 

 t400r   c                 .   U R                  S[        R                  5        U R                  U R                  5      nSR                  U R                  5      nU R                  (       a  U R                  SU-  5        g U R                  SU-  5        [        [        R                  " S5      U5      nU R                  U5         U R                  5          U R                  5         S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NzWARNING: Testing via this command is deprecated and will be removed in a future version. Users looking for a generic test entry point independent of test runner are encouraged to use tox. zskipping "%s" (dry run)zrunning "%s"location)announcer   WARNr   rU   r   _argvdry_runmapoperator
attrgetterr|   rd   	run_tests)r   installed_distscmdr   s       r   runtest.run   s     HH	
 ,,T->->?hhtzz"<<MM3c9:ns*+H''
3_E%%e,))+  , -,++ -,s$   DC5$D5
D	?D
Dc           	      `   [         R                  " S S U R                  U R                  U R                  5      U R                  U R
                  5      SS9nUR                  R                  5       (       d:  SUR                  -  nU R                  U[        R                  5        [        U5      eg )NF)
testLoader
testRunnerexitzTest failed: %s)unittestmainr   _resolve_as_eprP   rQ   resultwasSuccessfulr   r   ERRORr   )r   rH   rW   s      r   r   test.run_tests   s    }}JJ**4+;+;<**4+;+;<
 {{((**#dkk1CMM#syy) %% +r   c                 "    S/U R                   -   $ )Nr   )r]   r   s    r   r   
test._argv   s    |dnn,,r   c                 T    [         R                  " U SSS9R                  5       " 5       $ )z]
Load the indicated attribute value, called, as a as if it were
specified as an entry point.
N)valuenamegroup)r   
EntryPointload)vals    r   r   test._resolve_as_ep   s%     ""4tDIIKMMr   )rP   rO   rQ   rN   N)r:   )r+   r6   r7   r8   __doc__descriptionuser_optionsrR   rX   r<   r]   r\   rf   
contextlibcontextmanagerrd   staticmethodr|   r   r   r   propertyr   r   r   r9   r:   r   r   rH   rH   L   s    8DKL O$ ' '" # #4 ;  ;0 1 1!.& - - N  Nr   rH   )r   r   rt   r   r   r   distutils.errorsr   r   	distutilsr   r   pkg_resourcesr   r   r	   r
   r   r   r   
_importlibr   
setuptoolsr    setuptools.extern.more_itertoolsr   "setuptools.extern.jaraco.functoolsr   r   r<   rH   r:   r   r   <module>r      sd    	  
    A     "  < 8$Z $P nN7 nNr   