§
    öyIf¬’  ã            	       ó  — d 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Zddlm	Z	 ddl
Z
ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlZddlZddlmZ ddlZddl m!Z! ddl m"Z" ddl m#Z# ddl m$Z$ ddl m%Z% ddl m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl/m1Z1 dd l/m2Z2 dd!l/m3Z3 dd"l/m4Z4 dd#l5m6Z6 dd$l5m7Z7 dd%l8m9Z9 dd&l8m:Z: dd'l;m<Z< erdd(lm=Z= d)e(d*dfd+„Z>d,e?d*e?fd-„Z@d.e!d/ee!d0geeeAe#f                  f         d*eeAe#f         fd1„ZBd.e!d*eeAe#f         fd2„ZCd.e!d3d0d*eeeAe#f                  fd4„ZDdUd5„ZEd3d0d*eFfd6„ZGd,e	d*eFfd7„ZHd8e	d.e!d*eeF         fd9„ZId,e	d:ejJ        d*eejJ                 fd;„ZKd<eejL                 d.e!d*dfd=„ZM G d>„ d?¦  «        ZN G d@„ dAeO¦  «        ZP G dB„ dCeQ¦  «        ZRejS         G dD„ dEee	e?f         ¦  «        ¦   «         ZTe G dF„ dGejU        ¦  «        ¦   «         ZVe G dH„ d0ejJ        ¦  «        ¦   «         ZWdIe?d*ee?         fdJ„ZX ejS        dK¬L¦  «         G dM„ dN¦  «        ¦   «         ZYdOdPœdQe	dRe?dSeFd*eYfdT„ZZdS )VzHCore implementation of the testing process: init, session, runtest loop.é    N)ÚPath)ÚAbstractSet)ÚCallable)ÚDict)Úfinal)Ú	FrozenSet)ÚIterable)ÚIterator)ÚList)ÚLiteral)ÚOptional)Úoverload)ÚSequence)ÚTuple)ÚTYPE_CHECKING)ÚUnion)Únodes)ÚConfig)Údirectory_arg)ÚExitCode)Úhookimpl)ÚPytestPluginManager)Ú
UsageError)ÚParser)ÚPathAwareHookProxy)ÚFixtureManager)Úexit©Úabsolutepath)Úbestrelpath©Ú
fnmatch_ex)Úsafe_exists)Úscandir)ÚCollectReport)Ú
TestReport)Úcollect_one_node)Ú
SetupState)ÚPytestWarning)ÚSelfÚparserÚreturnc           
      óÖ  — |                       dddg d¢¬¦  «         |                       dddg ¬¦  «         |                      dd	¦  «        }|                     d
ddddd¬¦  «         |                      d¦  «        }|                     dddd¬¦  «         |                       ddd¬¦  «         |                     dddt          ddd¬ ¦  «         |                     d!d"d#¬¦  «         |                     d$d"d%¬¦  «         |                     d&d"d'¬¦  «         |                     d(d)d*t
          d+d,¬-¦  «         |                     d.d"d/d0d1¬2¦  «         |                     d3dd4d5¬6¦  «         |                      d7d8¦  «        }|                     d9d:d;d"d<¬¦  «         |                     d=d"d>¬¦  «         |                     d?dd@dA¬B¦  «         |                     dCdd@dD¬B¦  «         |                     dEddFdG¬B¦  «         |                     dHdId dJt          j        t          dH¬K¦  «        dL¬M¦  «         |                     dNd"dOd/dP¬Q¦  «         |                     dRdSd"dTd/dU¬Q¦  «         |                     dVd"dWd/dX¬Q¦  «         |                     dYdZg d[¢d\d]¬^¦  «         |                       d_d`d/da¬b¦  «         |                      dcdd¦  «        }|                     dedfd t          dJdg¬h¦  «         d S )iNÚnorecursedirsz)Directory patterns to avoid for recursionÚargs)	z*.eggz.*Ú_darcsÚbuildÚCVSÚdistÚnode_modulesÚvenvz{arch})ÚtypeÚdefaultÚ	testpathszZDirectories to search for tests when no files or directories are given on the command lineÚgeneralzRunning and selection optionsz-xz--exitfirstÚstore_constÚmaxfailé   z,Exit instantly on first error or failed test)ÚactionÚdestÚconstÚhelpzpytest-warningsz-Wz--pythonwarningsÚappendz<Set which warnings to report, see -W option of Python itself)r=   r@   ÚfilterwarningsÚlinelistz_Each line specifies a pattern for warnings.filterwarnings. Processed after -W/--pythonwarnings.)r6   r@   z	--maxfailÚnumÚstorer   z'Exit after first num failures or errors)Úmetavarr=   r6   r>   r7   r@   z--strict-configÚ
store_truezbAny warnings encountered while parsing the `pytest` section of the configuration file raise errorsz--strict-markerszVMarkers not registered in the `markers` section of the configuration file raise errorsz--strictz&(Deprecated) alias to --strict-markersz-cz--config-fileÚFILEÚinifilenamezcLoad configuration from `FILE` instead of trying to locate one of the implicit configuration files.)rF   r6   r>   r@   z--continue-on-collection-errorsFÚcontinue_on_collection_errorsz4Force test execution even if collection errors occur)r=   r7   r>   r@   z	--rootdirÚrootdirz¶Define root directory for tests. Can be relative path: 'root_dir', './root_dir', 'root_dir/another_dir/'; absolute path: '/home/user/root_dir'; path with variables: '$HOME/root_dir'.)r=   r>   r@   ÚcollectÚ
collectionz--collectonlyz--collect-onlyz--coz&Only collect tests, don't execute themz--pyargsz1Try to interpret all arguments as Python packagesz--ignoreÚpathz-Ignore path during collection (multi-allowed))r=   rF   r@   z--ignore-globz5Ignore path pattern during collection (multi-allowed)z
--deselectÚnodeid_prefixzDDeselect item (via node id prefix) during collection (multi-allowed)z--confcutdirÚ
confcutdirÚdir)Úoptnamez1Only load conftest.py's relative to specified dir)r>   r7   rF   r6   r@   z--noconftestÚ
noconftestz Don't load any conftest.py files)r=   r>   r7   r@   z--keepduplicatesz--keep-duplicatesÚkeepduplicateszKeep duplicate testsz--collect-in-virtualenvÚcollect_in_virtualenvz2Don't ignore tests in a local virtualenv directoryz--import-modeÚprepend)rV   rA   Ú	importlibÚ
importmodez\Prepend/append to sys.path when importing test modules and conftest files. Default: prepend.)r7   Úchoicesr>   r@   Úconsider_namespace_packagesÚboolzEConsider namespace packages when resolving module names during import)r6   r7   r@   Údebugconfigz(test session debugging and configurationz
--basetempÚbasetempz^Base temporary directory for this test run. (Warning: this directory is removed if it exists.))r>   r7   r6   rF   r@   )
ÚaddiniÚgetgroupÚ
_addoptionÚ	addoptionÚintÚstrÚ	functoolsÚpartialr   Úvalidate_basetemp)r+   Úgroups     ú@/var/www/piapp/venv/lib/python3.11/site-packages/_pytest/main.pyÚpytest_addoptionri   ;   s™  € Ø
‡M‚MØØ3Øð

ð 

ð 

ð	 ñ ô ð ð  ‡M‚MØð	àØð ñ ô ð ð �OŠO˜IÐ'FÑGÔG€EØ	×ÒØØØØØØ;ð ñ ô ð ð �OŠOÐ-Ñ.Ô.€EØ	‡O‚OØØØØKð	 ñ ô ð ð ‡M‚MØØð/ð ñ ô ð ð 
×ÒØØØÝØØØ6ð ñ ô ð ð 
×ÒØØð*ð ñ ô ð ð 
×ÒØØðð ñ ô ð ð 
×ÒØØØ5ð ñ ô ð ð
 
×ÒØØØÝØð(ð ñ ô ð ð 
×ÒØ)ØØØ,ØCð ñ ô ð ð 
×ÒØØØðð	 ñ ô ð ð �OŠO˜I |Ñ4Ô4€EØ	‡O‚OØØØØØ5ð ñ ô ð ð 
‡O‚OØØØ@ð ñ ô ð ð
 
‡O‚OØØØØ<ð	 ñ ô ð ð 
‡O‚OØØØØDð	 ñ ô ð ð 
‡O‚OØØØØSð	 ñ ô ð ð 
‡O‚OØØØØÝÔ�}°nÐEÑEÔEØ@ð ñ ô ð ð 
‡O‚OØØØØØ/ð ñ ô ð ð 
‡O‚OØØØØØØ#ð ñ ô ð ð 
‡O‚OØ!ØØ$ØØAð ñ ô ð ð 
‡O‚OØØØ2Ð2Ð2Øð#ð ñ ô ð ð ‡M‚MØ%ØØØTð	 ñ ô ð ð �OŠO˜MÐ+UÑVÔV€EØ	‡O‚OØØØÝØðAð ñ 
ô 
ð 
ð 
ð 
ó    rN   c                 óÌ  — d}| st          j        |¦  «        ‚dt          dt          dt          fd„} |t          j        ¦   «         t          | ¦  «                             ¦   «         ¦  «        rt          j        |¦  «        ‚ |t          j        ¦   «                              ¦   «         t          | ¦  «                             ¦   «         ¦  «        rt          j        |¦  «        ‚| S )NzWbasetemp must not be empty, the current working directory or any parent directory of itÚbaseÚqueryr,   c                 ó$   — | |k    rdS || j         v S )z,Return whether query is an ancestor of base.T)Úparents)rl   rm   s     rh   Úis_ancestorz&validate_basetemp.<locals>.is_ancestorÿ   s   € à�5Š=ˆ=Ø�4Ø˜œÐ$Ð$rj   )ÚargparseÚArgumentTypeErrorr   r[   ÚcwdÚabsoluteÚresolve)rN   Úmsgrp   s      rh   rf   rf   ÷   sÚ   € à
c€Cð ð .ÝÔ(¨Ñ-Ô-Ð-ð%�$ð %¥tð %µð %ð %ð %ð %ð €{•4”8‘:”:�t D™zœz×2Ò2Ñ4Ô4Ñ5Ô5ð .ÝÔ(¨Ñ-Ô-Ð-ð €{•4”8‘:”:×%Ò%Ñ'Ô'­¨d©¬×);Ò);Ñ)=Ô)=Ñ>Ô>ð .ÝÔ(¨Ñ-Ô-Ð-à€Krj   ÚconfigÚdoitÚSessionc           	      ó$  — t                                | ¦  «        }t          j        |_        d}	 	 |                      ¦   «          d}| j                             |¬¦  «         d} || |¦  «        pd|_        �n# t          $ r t          j	        |_        ‚ t          $ r t          j        |_        Y �nØt          t          j        f$ rÅ t          j        j                             ¦   «         }t          j        }t)          |j        t          j        ¦  «        rR|j        j        �|j        j        }|dk     r4t.          j                             |j        › d|j        j        › d�¦  «         | j                             |¬¦  «         ||_        Y nÿt:          $ ró t          j        |_        t          j        j                             ¦   «         }	 |                      || j         ¦  «         t)          |j        tB          ¦  «        rt.          j                             d	¦  «         nf# t          j        $ rT}|j        �|j        |_        t.          j                             tE          |¦  «        j#        › d|› d�¦  «         Y d}~nd}~ww xY wY nw xY wd}tI          j%        |j&        ¦  «         |dk    r‰	 | j         '                    ||j        ¬
¦  «         nf# t          j        $ rT}|j        �|j        |_        t.          j                             tE          |¦  «        j#        › d|› d�¦  «         Y d}~nd}~ww xY w|  (                    ¦   «          nÃ# d}tI          j%        |j&        ¦  «         |dk    r‰	 | j         '                    ||j        ¬
¦  «         nf# t          j        $ rT}|j        �|j        |_        t.          j                             tE          |¦  «        j#        › d|› d�¦  «         Y d}~nd}~ww xY w|  (                    ¦   «          w xY w|j        S )zSkeleton command line program.r   r<   ©Úsessioné   Nz: ú
)Úexcinfoz(mainloop: caught unexpected SystemExit!
)r|   Ú
exitstatus))ry   Úfrom_configr   ÚOKr€   Ú_do_configureÚhookÚpytest_sessionstartr   ÚUSAGE_ERRORÚFailedÚTESTS_FAILEDÚKeyboardInterruptr   Ú	ExceptionÚ_pytestÚ_codeÚExceptionInfoÚfrom_currentÚINTERRUPTEDÚ
isinstanceÚvalueÚ
returncodeÚsysÚstderrÚwriteÚtypenamerv   Úpytest_keyboard_interruptÚBaseExceptionÚINTERNAL_ERRORÚnotify_exceptionÚoptionÚ
SystemExitr6   Ú__name__ÚosÚchdirÚ	startpathÚpytest_sessionfinishÚ_ensure_unconfigure)rw   rx   r|   Ú	initstater   r€   Úexcs          rh   Úwrap_sessionr¥     sc  € õ ×!Ò! &Ñ)Ô)€GÝ!œ€GÔØ€Ið0%ð 	RØ× Ò Ñ"Ô"Ð"ØˆIØŒK×+Ò+°GÐ+Ñ<Ô<Ð<ØˆIØ!%  f¨gÑ!6Ô!6Ð!;¸!ˆGÔÑøÝð 	ð 	ð 	Ý!)Ô!5ˆGÔØÝð 	7ð 	7ð 	7Ý!)Ô!6ˆGÔÐÑÝ!¥4¤>Ð2ð 		,ð 		,ð 		,Ý”mÔ1×>Ò>Ñ@Ô@ˆGÝ/7Ô/CˆJÝ˜'œ-­¬Ñ8Ô8ð SØ”=Ô+Ð7Ø!(¤Ô!9�JØ˜q’=�=Ý”J×$Ò$¨Ô(8Ð%QÐ%Q¸G¼MÔ<MÐ%QÐ%QÐ%QÑRÔRÐRØŒK×1Ò1¸'Ð1ÑBÔBÐBØ!+ˆGÔÐÐÝð 	Rð 	Rð 	RÝ!)Ô!8ˆGÔÝ”mÔ1×>Ò>Ñ@Ô@ˆGðRØ×'Ò'¨°´Ñ?Ô?Ð?õ ˜gœm­ZÑ8Ô8ð RÝ”J×$Ò$Ð%PÑQÔQÐQøøõ ”>ð Cð Cð CØ”>Ð-Ø),¬�GÔ&Ý”
× Ò ¥D¨¡I¤IÔ$6Ð!AÐ!A¸#Ð!AÐ!AÐ!AÑBÔBÐBÐBÐBÐBÐBÐBøøøøðCøøøøøð	Røøøð ˆÝ
Œ�Ô"Ñ#Ô#Ð#Ø˜Š>ˆ>ðCØ”×0Ò0Ø#°Ô0Bð 1ñ ô ð ð øõ ”>ð Cð Cð CØ”>Ð-Ø),¬�GÔ&Ý”
× Ò ¥D¨¡I¤IÔ$6Ð!AÐ!A¸#Ð!AÐ!AÐ!AÑBÔBÐBÐBÐBÐBÐBÐBøøøøðCøøøð 	×"Ò"Ñ$Ô$Ð$Ð$øð ˆÝ
Œ�Ô"Ñ#Ô#Ð#Ø˜Š>ˆ>ðCØ”×0Ò0Ø#°Ô0Bð 1ñ ô ð ð øõ ”>ð Cð Cð CØ”>Ð-Ø),¬�GÔ&Ý”
× Ò ¥D¨¡I¤IÔ$6Ð!AÐ!A¸#Ð!AÐ!AÐ!AÑBÔBÐBÐBÐBÐBÐBÐBøøøøðCøøøð 	×"Ò"Ñ$Ô$Ð$Ð$øøøØÔÐs²   °AA8 Á6M Á86JÂ.M Â1CJÆM Æ
=JÇHÇ#:JÈJ È,A
I;É6JÉ;J Ê JÊM ÊJÊM Ê+!K ËL0ËA
L+Ì+L0Í"PÍ+!NÎPÎO0ÎA
O+Ï&PÏ+O0Ï0Pc                 ó,   — t          | t          ¦  «        S ©N)r¥   Ú_main©rw   s    rh   Úpytest_cmdline_mainrª   K  s   € Ý˜¥Ñ&Ô&Ð&rj   r|   c                 óÆ   — | j                              |¬¦  «         | j                              |¬¦  «         |j        rt          j        S |j        dk    rt          j        S dS )z[Default command line protocol for initialization, session,
    running tests and reporting.r{   r   N)r„   Úpytest_collectionÚpytest_runtestloopÚtestsfailedr   rˆ   ÚtestscollectedÚNO_TESTS_COLLECTED)rw   r|   s     rh   r¨   r¨   O  sf   € ð „K×!Ò!¨'Ð!Ñ2Ô2Ð2Ø
„K×"Ò"¨7Ð"Ñ3Ô3Ð3àÔð +ÝÔ$Ð$Ø	Ô	 1Ò	$Ð	$ÝÔ*Ð*Øˆ4rj   c                 ó.   — |                       ¦   «          d S r§   )Úperform_collectr{   s    rh   r¬   r¬   \  s   € Ø×ÒÑÔÐÐÐrj   c                 ó  — | j         r=| j        j        j        s,|                      d| j         | j         dk    rdndfz  ¦  «        ‚| j        j        j        rdS t          | j        ¦  «        D ]•\  }}|dz   t          | j        ¦  «        k     r| j        |dz            nd }|j        j	         
                    ||¬¦  «         | j        r|                      | j        ¦  «        ‚| j        r|                      | j        ¦  «        ‚Œ–dS )Nz%d error%s during collectionr<   ÚsÚ T)ÚitemÚnextitem)r®   rw   r›   rJ   ÚInterruptedÚcollectonlyÚ	enumerateÚitemsÚlenr„   Úpytest_runtest_protocolÚ
shouldfailr‡   Ú
shouldstop)r|   Úir¶   r·   s       rh   r­   r­   `  s$  € ØÔð 
 7¤>Ô#8Ô#Vð 
Ø×!Ò!Ø*ØÔ"¨7Ô+>À!Ò+CÐ+C C CÈÐLñMñ
ô 
ð 	
ð
 „~ÔÔ(ð Øˆtå˜Wœ]Ñ+Ô+ð :ð :‰ˆˆ4Ø+,¨q©5µ3°w´}Ñ3EÔ3EÒ+EÐ+E�7”=  Q¡Ô'Ð'È4ˆØŒÔ×0Ò0°dÀXÐ0ÑNÔNÐNØÔð 	5Ø—.’. Ô!3Ñ4Ô4Ð4ØÔð 	:Ø×%Ò% gÔ&8Ñ9Ô9Ð9ð	:àˆ4rj   c                 ó   ‡— |                       t          j                             d¦  «        rdnd¦  «        }	 |                     ¦   «         sdS n# t
          $ r Y dS w xY wdŠt          ˆfd„|                     ¦   «         D ¦   «         ¦  «        S )zˆAttempt to detect if ``path`` is the root of a Virtual Environment by
    checking for the existence of the appropriate activate script.ÚwinÚScriptsÚbinF)Úactivatezactivate.cshzactivate.fishÚActivatezActivate.batzActivate.ps1c              3   ó*   •K  — | ]}|j         ‰v V — Œd S r§   ©Úname)Ú.0ÚfnameÚ	activatess     €rh   ú	<genexpr>z_in_venv.<locals>.<genexpr>…  s*   øè è € ÐEÐE¨5ˆuŒz˜YÐ&ÐEÐEÐEÐEÐEÐErj   )Újoinpathr“   ÚplatformÚ
startswithÚis_dirÚOSErrorÚanyÚiterdir)rN   ÚbindirrÌ   s     @rh   Ú_in_venvrÖ   t  s¦   ø€ ð �]Š]­¬×(?Ò(?ÀÑ(FÔ(FÐQ˜9˜9ÈEÑRÔR€FðØ�}Š}‰Œð 	Ø�5ð	øåð ð ð Øˆuˆuðøøøð€Iõ ÐEÐEÐEÐE°F·N²NÑ4DÔ4DÐEÑEÔEÑEÔEÐEs   ¹A Á
AÁAÚcollection_pathc                 óœ  ‡ — ‰ j         dk    rdS |                     d‰ j        ¬¦  «        }|pg }|                     d¦  «        }|r|                     d„ |D ¦   «         ¦  «         ‰ |v rdS |                     d‰ j        ¬¦  «        }|pg }|                     d¦  «        }|r|                     d	„ |D ¦   «         ¦  «         t          ˆ fd
„|D ¦   «         ¦  «        rdS |                     d¦  «        }|st          ‰ ¦  «        rdS ‰                      ¦   «         r2|                     d¦  «        }t          ˆ fd„|D ¦   «         ¦  «        rdS d S )NÚ__pycache__TÚcollect_ignore©rN   Úignorec              3   ó4   K  — | ]}t          |¦  «        V — Œd S r§   r   ©rÊ   Úxs     rh   rÍ   z(pytest_ignore_collect.<locals>.<genexpr>’  s(   è è € Ð@Ð@°�L¨™OœOÐ@Ð@Ð@Ð@Ð@Ð@rj   Úcollect_ignore_globÚignore_globc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r§   r   rÞ   s     rh   rÍ   z(pytest_ignore_collect.<locals>.<genexpr>�  s(   è è € ÐDÐD°�L¨™OœOÐDÐDÐDÐDÐDÐDrj   c              3   óv   •K  — | ]3}t          j         t          ‰¦  «        t          |¦  «        ¦  «        V — Œ4d S r§   )Úfnmatchrc   )rÊ   Úglobr×   s     €rh   rÍ   z(pytest_ignore_collect.<locals>.<genexpr>Ÿ  s=   øè è € Ð
UÐ
UÀ�7Œ?�3˜Ñ/Ô/µ°T±´Ñ;Ô;Ð
UÐ
UÐ
UÐ
UÐ
UÐ
Urj   rU   r.   c              3   ó8   •K  — | ]}t          |‰¦  «        V — Œd S r§   r!   )rÊ   Úpatr×   s     €rh   rÍ   z(pytest_ignore_collect.<locals>.<genexpr>¨  s-   øè è € ÐMÐM°C�z˜#˜Ñ/Ô/ÐMÐMÐMÐMÐMÐMrj   )	rÉ   Ú_getconftest_pathlistÚparentÚ	getoptionÚextendrÓ   rÖ   rÑ   Úgetini)r×   rw   Úignore_pathsÚ
excludeoptÚignore_globsÚexcludegloboptÚallow_in_venvÚnorecursepatternss   `       rh   Úpytest_ignore_collectró   ˆ  s°  ø€ ØÔ˜}Ò,Ð,Øˆtà×/Ò/Ø˜Ô5ð 0ñ ô €Lð  Ð% 2€LØ×!Ò! (Ñ+Ô+€JØð AØ×ÒÐ@Ð@°ZÐ@Ñ@Ô@Ñ@Ô@Ð@à˜,Ð&Ð&Øˆtà×/Ò/Ø OÔ$:ð 0ñ ô €Lð  Ð% 2€LØ×%Ò% mÑ4Ô4€NØð EØ×ÒÐDÐD°^ÐDÑDÔDÑDÔDÐDå
Ð
UÐ
UÐ
UÐ
UÈÐ
UÑ
UÔ
UÑUÔUð Øˆtà×$Ò$Ð%<Ñ=Ô=€MØð �X oÑ6Ô6ð Øˆtà×ÒÑÔð Ø"ŸMšM¨/Ñ:Ô:ÐÝÐMÐMÐMÐMÐ;LÐMÑMÔMÑMÔMð 	Ø�4àˆ4rj   ré   c                 ó:   — t                                || ¬¦  «        S )NrÛ   )ÚDirÚfrom_parent©rN   ré   s     rh   Úpytest_collect_directoryrø   ®  s   € õ �?Š?˜6¨ˆ?Ñ-Ô-Ð-rj   r»   c                 ó>  — t          |                     d¦  «        pg ¦  «        }|sd S g }g }| D ]G}|j                             |¦  «        r|                     |¦  «         Œ2|                     |¦  «         ŒH|r$|j                             |¬¦  «         || d d …<   d S d S )NÚdeselect)r»   )Útuplerê   ÚnodeidrÐ   rA   r„   Úpytest_deselected)r»   rw   Údeselect_prefixesÚ	remainingÚ
deselectedÚcolitems         rh   Úpytest_collection_modifyitemsr  ´  sÌ   € Ý˜f×.Ò.¨zÑ:Ô:Ð@¸bÑAÔAÐØð Øˆà€IØ€JØð &ð &ˆØŒ>×$Ò$Ð%6Ñ7Ô7ð 	&Ø×Ò˜gÑ&Ô&Ð&Ð&à×Ò˜WÑ%Ô%Ð%Ð%àð ØŒ×%Ò%¨JÐ%Ñ7Ô7Ð7Øˆˆaˆaˆa‰ˆˆðð rj   c                   óH   — e Zd Zdedee         ddfd„Zdedej	        fd„Z
dS )ÚFSHookProxyÚpmÚremove_modsr,   Nc                 ó"   — || _         || _        d S r§   )r  r  )Úselfr  r  s      rh   Ú__init__zFSHookProxy.__init__Ç  s   € ð
 ˆŒØ&ˆÔÐÐrj   rÉ   c                 ó\   — | j                              || j        ¬¦  «        }|| j        |<   |S )N)Úremove_plugins)r  Úsubset_hook_callerr  Ú__dict__)r  rÉ   rß   s      rh   Ú__getattr__zFSHookProxy.__getattr__Ï  s0   € ØŒG×&Ò& t¸DÔ<LÐ&ÑMÔMˆØˆŒ�dÑØˆrj   )r�   Ú
__module__Ú__qualname__r   r   Úobjectr	  rc   ÚpluggyÚ
HookCallerr  © rj   rh   r  r  Æ  sn   € € € € € ð'àð'ð ! Ô(ð'ð 
ð	'ð 'ð 'ð 'ð ð ¨Ô(9ð ð ð ð ð ð rj   r  c                   ó   — e Zd ZdZdZdS )r¸   z*Signals that the test run was interrupted.ÚbuiltinsN©r�   r  r  Ú__doc__r  rj   rh   r¸   r¸   Õ  s   € € € € € Ø4Ð4à€J€J€Jrj   r¸   c                   ó   — e Zd ZdZdS )r‡   z"Signals a stop as failed test run.Nr  r  rj   rh   r‡   r‡   Û  s   € € € € € Ø,Ð,Ð,Ð,rj   r‡   c                   ó.   — e Zd ZU dZeed<   dedefd„ZdS )Ú_bestrelpath_cacherÛ   rN   r,   c                 ó:   — t          | j        |¦  «        }|| |<   |S r§   )r    rN   )r  rN   Úrs      rh   Ú__missing__z_bestrelpath_cache.__missing__å  s!   € Ý˜œ	 4Ñ(Ô(ˆØˆˆT‰
Øˆrj   N)r�   r  r  Ú	__slots__r   Ú__annotations__rc   r  r  rj   rh   r  r  ß  sF   € € € € € € à€Ià
€J€J�Jð ð ¨ð ð ð ð ð ð rj   r  c                   ó†   ‡ — e Zd ZdZedej        deddfˆ fd„¦   «         Zde	e
ej        ej        f                  fd„Zˆ xZS )rõ   a  Collector of files in a file system directory.

    .. versionadded:: 8.0

    .. note::

        Python directories with an `__init__.py` file are instead collected by
        :class:`~pytest.Package` by default. Both are :class:`~pytest.Directory`
        collectors.
    ré   rN   r,   r*   c                óJ   •— t          ¦   «                              ||¬¦  «        S )z…The public constructor.

        :param parent: The parent collector of this Dir.
        :param path: The directory's path.
        )ré   rN   )Úsuperrö   )Úclsré   rN   Ú	__class__s      €rh   rö   zDir.from_parentø  s"   ø€ õ ‰wŒw×"Ò"¨&°tÐ"Ñ<Ô<Ð<rj   c              #   ó:  K  — | j         }| j        }t          | j        ¦  «        D ]õ}|                     ¦   «         rft          |j        ¦  «        }| j                             |d¬¦  «        s|                     ||¬¦  «        rŒ^| 	                    || ¬¦  «        }|�|V — Œ|| 
                    ¦   «         ret          |j        ¦  «        }| j                             |¦  «        s|                     ||¬¦  «        rŒÖ|                     || ¬¦  «        }|E d {V —† Œöd S )NT©Úwith_parents)r×   rw   r÷   ©Ú	file_pathré   )rw   Úihookr$   rN   rÑ   r   r|   Ú
isinitpathró   rø   Úis_fileÚpytest_collect_file)r  rw   r+  ÚdirentryrN   ÚcolÚcolss          rh   rL   zDir.collect  sA  è è € Ø”ˆð ”
ˆÝ ¤	Ñ*Ô*ð 	 ð 	 ˆHØ�ŠÑ Ô ð  Ý˜HœMÑ*Ô*�Ø”|×.Ò.¨tÀ$Ð.ÑGÔGð !Ø×2Ò2À4ÐPVÐ2ÑWÔWð !Ø Ø×4Ò4¸$ÀtÐ4ÑLÔL�Ø�?Ø�I�I�Iøà×!Ò!Ñ#Ô#ð  Ý˜HœMÑ*Ô*�Ø”|×.Ò.¨tÑ4Ô4ð !Ø×2Ò2À4ÐPVÐ2ÑWÔWð !Ø Ø×0Ò0¸4ÈÐ0ÑMÔM�Ø�������øð!	 ð 	 rj   )r�   r  r  r  Úclassmethodr   Ú	Collectorr   rö   r	   r   ÚItemrL   Ú__classcell__©r%  s   @rh   rõ   rõ   ë  sŸ   ø€ € € € € ð	ð 	ð ð=à”ð=ð ð	=ð
 
ð=ð =ð =ð =ð =ñ „[ð=ð ˜ %¨¬
°E´OÐ(CÔ"DÔEð  ð  ð  ð  ð  ð  ð  ð  rj   rõ   c                   ón  ‡ — e Zd ZU dZeZeZeed<   eed<   e	e
ef         ed<   deddfˆ fd„Zededd fd	„¦   «         Zdefd
„Zede	eef         fd„¦   «         Zej        de	eef         ddfd„¦   «         Zede	eef         fd„¦   «         Zej        de	eef         ddfd„¦   «         Zedefd„¦   «         Zdedefd„Z ed¬¦  «        d.d„¦   «         Z ed¬¦  «        de	eef         ddfd„¦   «         ZeZddœde	edf         dedefd„Z ddde!j"        fd„Z#ded e$ee%e&j'                 f         de%e&j'                 fd!„Z(e)	 d/d#e*e%e                  d$d%de%e&j+                 fd&„¦   «         Z,e)	 d/d#e*e%e                  d$ede%e	e&j+        e&j'        f                  fd'„¦   «         Z,	 d0d#e*e%e                  d$ede%e	e&j+        e&j'        f                  fd(„Z,	 d1d)e&j'        d*ede-eef         fd+„Z.de/e	e&j+        e&j'        f                  fd,„Z0d)e	e&j+        e&j'        f         de/e&j+                 fd-„Z1ˆ xZ2S )2ry   zoThe root of the collection tree.

    ``Session`` collects the initial paths given as arguments to pytest.
    Ú_setupstateÚ_fixturemanagerr€   rw   r,   Nc           	      óÚ  •— t          ¦   «                              d|j        d d || d¬¦  «         d| _        d| _        d| _        d| _        |j        j         	                    d¦  «        | _        t          ¦   «         | _        t          ¦   «         | _        g | _        g | _        i | _        g | _        t#          |j        ¦  «        | _        | j        j                             | d¬¦  «         d S )Nrµ   )rÉ   rN   Úfspathré   rw   r|   rü   r   FrM   r|   rÈ   )r#  r	  Úrootpathr®   r¯   Ú_shouldstopÚ_shouldfailÚtraceÚrootÚgetÚ	frozensetÚ_initialpathsÚ_initialpaths_with_parentsÚ	_notfoundÚ_initial_partsÚ_collection_cacher»   r  Ú_bestrelpathcacherw   ÚpluginmanagerÚregister)r  rw   r%  s     €rh   r	  zSession.__init__-  sã   ø€ Ý‰Œ×ÒØØ”ØØØØØð 	ñ 	
ô 	
ð 	
ð ˆÔØˆÔØ-2ˆÔØ-2ˆÔØ”\Ô&×*Ò*¨<Ñ8Ô8ˆŒ
Ý.7©k¬kˆÔÝ;D¹;¼;ˆÔ'ØFHˆŒØ8:ˆÔØGIˆÔØ')ˆŒ
å2DÀVÄ_Ñ2UÔ2UˆÔàŒÔ!×*Ò*¨4°iÐ*Ñ@Ô@Ð@Ð@Ð@rj   c                 ó2   — |                       |¬¦  «        }|S )Nr©   )Ú_create)r$  rw   r|   s      rh   r�   zSession.from_configG  s   € àŸ;š;¨f˜;Ñ5Ô5ˆØˆrj   c                 óf   — d| j         j        | j        t          | dd¦  «        | j        | j        fz  S )Nz6<%s %s exitstatus=%r testsfailed=%d testscollected=%d>r€   z<UNSET>)r%  r�   rÉ   Úgetattrr®   r¯   ©r  s    rh   Ú__repr__zSession.__repr__L  s=   € ØGØŒNÔ#ØŒIÝ�D˜,¨	Ñ2Ô2ØÔØÔðK
ñ 
ð 	
rj   c                 ó   — | j         S r§   )r=  rO  s    rh   r¿   zSession.shouldstopU  ó   € àÔÐrj   r‘   c                 ót   — |du r,| j         r%t          j        t          d¦  «        d¬¦  «         d S || _         d S )NFzCsession.shouldstop cannot be unset after it has been set; ignoring.r}   ©Ú
stacklevel)r=  ÚwarningsÚwarnr)   ©r  r‘   s     rh   r¿   zSession.shouldstopY  óW   € ð �Eˆ>ˆ>˜dÔ.ˆ>ÝŒMÝØYñô ð ð	ñ ô ð ð ˆFØ ˆÔÐÐrj   c                 ó   — | j         S r§   )r>  rO  s    rh   r¾   zSession.shouldfailg  rR  rj   c                 ót   — |du r,| j         r%t          j        t          d¦  «        d¬¦  «         d S || _         d S )NFzCsession.shouldfail cannot be unset after it has been set; ignoring.r}   rT  )r>  rV  rW  r)   rX  s     rh   r¾   zSession.shouldfailk  rY  rj   c                 ó$   — | j         j        j        S )zQThe path from which pytest was invoked.

        .. versionadded:: 7.0.0
        )rw   Úinvocation_paramsrQ   rO  s    rh   r    zSession.startpathy  s   € ð Œ{Ô,Ô0Ð0rj   Ú	node_pathc                 ó   — | j         |         S r§   )rH  )r  r^  s     rh   Ú_node_location_to_relpathz!Session._node_location_to_relpath�  s   € àÔ% iÔ0Ð0rj   T)Útryfirstc                 óŠ   — | j         r|                      | j         ¦  «        ‚| j        r|                      | j        ¦  «        ‚d S r§   )r¾   r‡   r¿   r¸   rO  s    rh   Úpytest_collectstartzSession.pytest_collectstart…  sJ   € àŒ?ð 	/Ø—+’+˜dœoÑ.Ô.Ð.ØŒ?ð 	4Ø×"Ò" 4¤?Ñ3Ô3Ð3ð	4ð 	4rj   Úreportc                 óÐ   — |j         rXt          |d¦  «        sJ| xj        dz  c_        | j                             d¦  «        }|r | j        |k    rd| j        z  | _        d S d S d S d S d S )NÚwasxfailr<   r;   zstopping after %d failures)ÚfailedÚhasattrr®   rw   Úgetvaluer¾   )r  rd  r;   s      rh   Úpytest_runtest_logreportz Session.pytest_runtest_logreportŒ  s�   € ð Œ=ð 	T¥¨°Ñ!<Ô!<ð 	TØÐÔ Ñ!ÐÔØ”k×*Ò*¨9Ñ5Ô5ˆGØð T˜4Ô+¨wÒ6Ð6Ø">À$ÔBRÑ"S�”��ð		Tð 	Tð 	Tð 	TðTð TÐ6Ð6rj   Fr'  rN   zos.PathLike[str]r(  c                óv   — t          |t          ¦  «        r|nt          |¦  «        }|r	|| j        v S || j        v S )a>  Is path an initial path?

        An initial path is a path explicitly given to pytest on the command
        line.

        :param with_parents:
            If set, also return True if the path is a parent of an initial path.

        .. versionchanged:: 8.0
            Added the ``with_parents`` parameter.
        )r�   r   rD  rC  )r  rN   r(  Úpath_s       rh   r,  zSession.isinitpath˜  sF   € õ$ # 4­Ñ.Ô.Ð>��µD¸±J´JˆØð 	/Ø˜DÔ;Ð;Ð;à˜DÔ.Ð.Ð.rj   r;  c                 ó   — t          |t          ¦  «        r|nt          |¦  «        }| j        j        }|                     |¦  «        }|j                             |¦  «        }|rt          t          ||¦  «        ¦  «        }n| j        j	        }|S r§   )
r�   r   rw   rI  Ú_getconftestmodulesÚ_conftest_pluginsÚ
differencer   r  r„   )r  r;  rN   r  Úmy_conftestmodulesr  Úproxys          rh   ÚgethookproxyzSession.gethookproxy°  s‰   € å# F­DÑ1Ô1ÐCˆvˆvµt¸F±|´|ˆØŒ[Ô&ˆð  ×3Ò3°DÑ9Ô9ÐØÔ*×5Ò5Ð6HÑIÔIˆàð 	%å&¥{°2°{Ñ'CÔ'CÑDÔDˆEˆEð ”KÔ$ˆEØˆrj   Ú
path_cachec                 óH  — ||v r||         S |                      ¦   «         r9|                      |j        ¦  «        }|                     || ¬¦  «        }|�|fnd}nC|                     ¦   «         r-|                      |¦  «        }|                     || ¬¦  «        }nd}|||<   |S )z�Create a Collector for the given path.

        `path_cache` makes it so the same Collectors are returned for the same
        path.
        r÷   Nr  r)  )rÑ   rs  ré   rø   r-  r.  )r  rN   rt  r+  r0  r1  s         rh   Ú_collect_pathzSession._collect_pathÁ  sÅ   € ð �:ÐÐØ˜dÔ#Ð#à�;Š;‰=Œ=ð 	Ø×%Ò% d¤kÑ2Ô2ˆEØ-2×-KÒ-KØ $ð .Lñ .ô .ˆCð 9<¸¨s¨f¨fÈRˆDˆDà�\Š\‰^Œ^ð 	Ø×%Ò% dÑ+Ô+ˆEØ×,Ò,°tÀDÐ,ÑIÔIˆDˆDð ˆDàˆ
�4ÑØˆrj   .r/   ÚgenitemszLiteral[True]c                 ó   — d S r§   r  ©r  r/   rw  s      rh   r²   zSession.perform_collectà  s	   € ð  #˜srj   c                 ó   — d S r§   r  ry  s      rh   r²   zSession.perform_collectå  s	   € ð 8;°srj   c                 óž  — |€| j         j        }|                      d| |¦  «         | j        j        xj        dz  c_        | j         j        }g | _        g | _        i | _        g | _	        | j	        }	 g }g }|D ]Ÿ}t          | j         j        j        || j         j        j        ¬¦  «        }| j                             |¦  «         |                     |j        ¦  «         |                     |j        ¦  «         |                     |j        j        ¦  «         Œ t'          |¦  «        | _        t'          |¦  «        | _        t-          | ¦  «        }	| j                             |	¬¦  «         | j        j        xj        dz  c_        | j        rOg }
| j        D ]<\  }}|r|
                     d|› d|›d�¦  «         Œ$|
                     d	|› �¦  «         Œ=t3          |
Ž ‚|s|	j        }n>|	j        r7|	j        D ]/}| j	                             |                      |¦  «        ¦  «         Œ0| j         j                             ¦   «          |                     | | j         |¬
¦  «         g | _        g | _        i | _        |                      | ¬¦  «         n0# g | _        g | _        i | _        |                      | ¬¦  «         w xY w|rtC          |¦  «        | _"        |S )aƒ  Perform the collection phase for this session.

        This is called by the default :hook:`pytest_collection` hook
        implementation; see the documentation of this hook for more details.
        For testing purposes, it may also be called directly on a fresh
        ``Session``.

        This function normally recursively expands any collectors collected
        from the session to their items, and only items are returned. For
        testing purposes, this may be suppressed by passing ``genitems=False``,
        in which case the return value contains these collectors unexpanded,
        and ``session.items`` is empty.
        Nr²   r<   ©Ú	as_pypath©rd  znot found: z
(no match in any of ú)zfound no collectors for )r|   rw   r»   r{   )#rw   r/   r?  r@  Úindentr„   rE  rF  rG  r»   Úresolve_collection_argumentr]  rQ   r›   ÚpyargsrA   rN   rë   ro   rB  rC  rD  r'   r+  Úpytest_collectreportr   ÚresultÚpassedrw  rI  Úcheck_pendingr  Úpytest_collection_finishr¼   r¯   )r  r/   rw  r„   r»   ÚinitialpathsÚinitialpaths_with_parentsÚargÚcollection_argumentÚrepÚerrorsÚ
collectorsÚnodes                rh   r²   zSession.perform_collectê  s%  € ð  ˆ<Ø”;Ô#ˆDà�
Š
Ð$ d¨DÑ1Ô1Ð1ØŒ
ŒÐÔ !Ñ#ÐÔàŒ{ÔˆàˆŒØ ˆÔØ!#ˆÔØˆŒ
Ø>B¼jˆð.	8Ø')ˆLØ46Ð%Øð 	Sð 	S�Ý&AØ”KÔ1Ô5ØØ"œkÔ0Ô7ð'ñ 'ô 'Ð#ð
 Ô#×*Ò*Ð+>Ñ?Ô?Ð?Ø×#Ò#Ð$7Ô$<Ñ=Ô=Ð=Ø)×0Ò0Ð1DÔ1IÑJÔJÐJØ)×0Ò0Ð1DÔ1IÔ1QÑRÔRÐRÐRÝ!*¨<Ñ!8Ô!8ˆDÔÝ.7Ð8QÑ.RÔ.RˆDÔ+å" 4Ñ(Ô(ˆCØŒJ×+Ò+°3Ð+Ñ7Ô7Ð7ØŒJŒOÐ"Ô" aÑ'Ð"Ô"ØŒ~ð 
*Ø�Ø'+¤~ð Hð H‘O�C˜Ø!ð HØŸšØT¨#ÐTÐTÀZÐTÐTÐTñô ð ð ð ŸšÐ&FÀÐ&FÐ&FÑGÔGÐGÐGå  &Ð)Ð)àð ?Øœ
��à”:ð ?Ø #¤
ð ?ð ?˜Øœ
×)Ò)¨$¯-ª-¸Ñ*=Ô*=Ñ>Ô>Ð>Ð>àŒKÔ%×3Ò3Ñ5Ô5Ð5Ø×.Ò.Ø T¤[¸ð /ñ ô ð ð  ˆDŒNØ"$ˆDÔØ%'ˆDÔ"Ø×)Ò)°$Ð)Ñ7Ô7Ð7Ð7øð  ˆDŒNØ"$ˆDÔØ%'ˆDÔ"Ø×)Ò)°$Ð)Ñ7Ô7Ð7Ð7øøøàð 	-Ý"% e¡*¤*ˆDÔàˆs   Á0G+J Ê-J4r�  Úhandle_dupesc                 ót   — || j         v r|r| j         |         }|dfS t          |¦  «        }|| j         |<   |dfS )NTF)rG  r'   )r  r�  r�  rŒ  s       rh   Ú_collect_one_nodezSession._collect_one_node<  sR   € ð
 �4Ô)Ð)Ð)¨lÐ)ØÔ(¨Ô.ˆCØ˜�9Ðå" 4Ñ(Ô(ˆCØ+.ˆDÔ" 4Ñ(Ø˜�:Ðrj   c              #   ó  K  — i }| j         j        }| j        D �]ê}|                      d|¦  «         | j        j        xj        dz  c_        |j        }|j        }|j        }| 	                    ¦   «         r|rJ d||f›�¦   «         ‚|g}|€8|j
        D ]/}|                     |¦  «        s n|                     d|¦  «         Œ0nm|                     d¦  «        }	t          |j
        d¦  «        D ]B\  }
}|
t          |	¦  «        k    s|j        |	|
          k    r n|                     d|¦  «         ŒCd}g }| g |¢|¢fg}|�re|                     ¦   «         \  }}|s|V — d}Œ#t%          |t&          j        ¦  «        sŒ>t%          |t*          ¦  «        r:t%          |d         t,          ¦  «        sJ ‚|                     |d         |¦  «        }n–t          |¦  «        dk    o4t%          |d         t,          ¦  «        o|d                              ¦   «          }|                      ||¦  «        \  }}|s"|j        s|j                             |¬	¦  «         |j        s�Œ|j        }d}t=          |¦  «        D �]}t%          |d         t,          ¦  «        rœ|j        |d         k    }t>          j         d
k    rz|sxtB          j         "                    |j        |d         ¦  «        }|oJtB          j         #                    |j        ¦  «        tB          j         #                    |d         ¦  «        k    }n;|j$        |d         k    p)|j$                             d¦  «        d         |d         k    }|r!| %                    ||dd …         f¦  «         d}�Œ|s| %                    |¦  «         |�°e|sBd &                    tO          |¦  «        g|¢R ¦  «        }| j(         %                    ||f¦  «         | j        j        xj        dz  c_        �Œìd S )Nzprocessing argumentr<   zinvalid arg r   ú.r}   FTr~  Úwin32ú[ú::))rw   rI  rF  r?  r@  r€  rN   ÚpartsÚmodule_namerÑ   ro   Ú_is_in_confcutdirÚinsertÚsplitrº   r¼   ÚstemÚpopr�   r   r3  ry   r   rv  r-  r’  r…  r+  rƒ  r„  Úreversedr“   rÏ   rž   ÚsamefileÚislinkrÉ   rA   Újoinrc   rE  )r  rt  r  r‹  ÚargpathÚnamesr™  ÚpathsrN   Úmodule_name_partsrÀ   Úany_matched_in_initial_partÚnotfound_collectorsÚworkÚ	matchnodeÚ
matchpartsÚsubnodesr�  rŒ  Ú	duplicateÚany_matched_in_collectorr�  Úis_matchÚ	same_fileÚ
report_args                            rh   rL   zSession.collectI  s—  è è € ð =?ˆ
àŒ[Ô&ˆà#'Ô#6ð o	(ñ o	(ÐØ�JŠJÐ,Ð.AÑBÔBÐBØŒJŒOÐ"Ô" aÑ'Ð"Ô"à)Ô.ˆGØ'Ô-ˆEØ-Ô9ˆKð �~Š~ÑÔð FØ ÐEÐEÐ"E°'¸5Ð1AÐ"EÐ"EÑEÔEÐEà�IˆEð Ð"à#œOð *ð *�DØ×/Ò/°Ñ5Ô5ð Ø˜Ø—L’L  DÑ)Ô)Ð)Ð)øð %0×$5Ò$5°cÑ$:Ô$:Ð!Ý(¨¬¸!Ñ<Ô<ð *ð *‘G�A�tØ�3Ð0Ñ1Ô1Ò1Ð1°T´YÐBSÐUVÐTVÔBWÒ5WÐ5WØ˜Ø—L’L  DÑ)Ô)Ð)Ð)ð +0Ð'Ø"$Ðð Ð(˜%Ð( %Ð(Ð)Ð*ð ð ñ D:Ø(,¯ª©
¬
Ñ%�	˜:ð "ð Ø#�O�O�OØ26Ð/Øõ " )­U¬_Ñ=Ô=ð Øõ ˜i­Ñ1Ô1ð *Ý% j°¤mµTÑ:Ô:Ð:Ð:Ð:Ø(×6Ò6°zÀ!´}ÀjÑQÔQ�H�Hõ
 ˜J™œ¨1Ò,ð 4Ý& z°!¤}µdÑ;Ô;ð4à& qœM×1Ò1Ñ3Ô3ð$�Lð
 &*×%;Ò%;¸IÀ|Ñ%TÔ%T‘N�C˜Ø$ð I¨S¬Zð Ið "œ×<Ò<ÀCÐ<ÑHÔHÐHØœ:ð !Ù Ø"œz�Hð ,1Ð(Ý$ XÑ.Ô.ð 8ñ 8�Då! *¨Q¤-µÑ6Ô6ð Ø#'¤9°
¸1´Ò#=˜Ýœ<¨7Ò2Ð2¸8Ð2õ )+¬×(8Ò(8¸¼ÀJÈqÄMÑ(RÔ(R˜Ið (1ð (Ý "¤§¢¨t¬yÑ 9Ô 9Ý#%¤7§>¢>°*¸Q´-Ñ#@Ô#@ò!Að %øð !œI¨°A¬Ò6ð HØ#œyŸš¨sÑ3Ô3°AÔ6¸*ÀQ¼-ÒGð !ð  ð 8ØŸš T¨:°a°b°b¬>Ð$:Ñ;Ô;Ð;Ø37Ð0ùà/ð :Ø'×.Ò.¨yÑ9Ô9Ð9ðI ñ D:ðL /ð IØ!ŸYšY­¨G©¬Ð'=°uÐ'=Ð'=Ñ>Ô>�
Ø”×%Ò% zÐ3FÐ&GÑHÔHÐHàŒJŒOÐ"Ô" aÑ'Ð"Ô"Ñ"ð_o	(ð o	(rj   c              #   ó&  K  — |                       d|¦  «         t          |t          j        ¦  «        r!|j                             |¬¦  «         |V — d S t          |t          j        ¦  «        sJ ‚| j                             d¦  «        }|ot          |t          j	        ¦  «         }|  
                    ||¦  «        \  }}|r|sd S |j        r%|j        D ]}|                      |¦  «        E d {V —† Œ|s|j                             |¬¦  «         d S d S )Nrw  )r¶   rT   r~  )r?  r�   r   r4  r+  Úpytest_itemcollectedr3  rw   rê   ÚFiler’  r…  r„  rw  rƒ  )r  r�  rT   r�  rŒ  r­  Úsubnodes          rh   rw  zSession.genitemsÂ  s=  è è € ð 	�
Š
�:˜tÑ$Ô$Ð$Ý�d�EœJÑ'Ô'ð 	<ØŒJ×+Ò+°Ð+Ñ6Ô6Ð6ØˆJˆJˆJˆJˆJå˜d¥E¤OÑ4Ô4Ð4Ð4Ð4Ø!œ[×2Ò2Ð3CÑDÔDˆNà .Ð Oµ:¸dÅEÄJÑ3OÔ3OÐPˆLØ!×3Ò3°D¸,ÑGÔG‰NˆC�Øð  ð Ø�ØŒzð 6Ø"œzð 6ð 6�GØ#Ÿ}š}¨WÑ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Øð <Ø”
×/Ò/°sÐ/Ñ;Ô;Ð;Ð;Ð;ð<ð <rj   )r,   N)..)NT)T)3r�   r  r  r  r¸   r‡   r(   r   r   r   rb   r   r   r	  r2  r�   rc   rP  Úpropertyr[   r¿   Úsetterr¾   r   r    r`  r   rc  r&   r%   rj  rƒ  r,  r  Ú	HookRelayrs  r   r   r   r3  rv  r   r   r4  r²   r   r’  r
   rL   rw  r5  r6  s   @rh   ry   ry     sø  ø€ € € € € € ðð ð
 €KØ€FàÐÐÑà#Ð#Ð#Ñ#Ø�c˜8�mÔ$Ð$Ð$Ñ$ðA˜vð A¨$ð Að Að Að Að Að Að4 ð ð ¨Ið ð ð ñ „[ðð
˜#ð 
ð 
ð 
ð 
ð ð ˜E $¨ )Ô,ð  ð  ð  ñ „Xð ð Ôð!  d¨C iÔ 0ð !°Tð !ð !ð !ñ Ôð!ð ð ˜E $¨ )Ô,ð  ð  ð  ñ „Xð ð Ôð!  d¨C iÔ 0ð !°Tð !ð !ð !ñ Ôð!ð ð1˜4ð 1ð 1ð 1ñ „Xð1ð1°4ð 1¸Cð 1ð 1ð 1ð 1ð €X�tÐÑÔð4ð 4ð 4ñ Ôð4ð €X�tÐÑÔðTØ˜J¨Ð5Ô6ðTà	ðTð Tð Tñ ÔðTð 4Ðð #ð	/ð /ð /à�CÐ+Ð+Ô,ð/ð ð	/ð
 
ð/ð /ð /ð /ð0Ð#5ð ¸&Ô:Jð ð ð ð ð"àðð ˜˜x¨¬Ô8Ð8Ô9ðð 
�%”/Ô	"ð	ð ð ð ð> àORð#ð #Ø˜X cœ]Ô+ð#Ø=Lð#à	�%”*Ô	ð#ð #ð #ñ „Xð#ð àDGð;ð ;Ø˜X cœ]Ô+ð;Ø=Að;à	�%˜œ
 E¤OÐ3Ô4Ô	5ð;ð ;ð ;ñ „Xð;ð
 FJðPð PØ˜X cœ]Ô+ðPØ>BðPà	�%˜œ
 E¤OÐ3Ô4Ô	5ðPð Pð Pð Pðj "ðð àŒoðð ðð 
ˆ}˜dÐ"Ô	#ð	ð ð ð ðw(˜ %¨¬
°E´OÐ(CÔ"DÔEð w(ð w(ð w(ð w(ðr<Ø˜%œ* e¤oÐ5Ô6ð<à	�%”*Ô	ð<ð <ð <ð <ð <ð <ð <ð <rj   r™  c                 ó  — 	 t           j                             | ¦  «        }n# t          t          t
          f$ r Y dS w xY w|�|j        �|j        dk    rdS |j        r$t          j	         
                    |j        ¦  «        S |j        S )zaSearch sys.path for the given a dotted module name, and return its file
    system path if found.NÚ	namespace)rW   ÚutilÚ	find_specÚAttributeErrorÚImportErrorÚ
ValueErrorÚoriginÚsubmodule_search_locationsrž   rN   Údirname)r™  Úspecs     rh   Úsearch_pypathrÄ  Ø  s�   € ðÝŒ~×'Ò'¨Ñ4Ô4ˆˆøõ �K­Ð4ð ð ð Øˆtˆtðøøøà€|�t”{Ð*¨d¬k¸[Ò.HÐ.HØˆtØ	Ô	(ð ÝŒw�Š˜tœ{Ñ+Ô+Ð+àŒ{Ðs   ‚" ¢=¼=T)Úfrozenc                   óJ   — e Zd ZU dZeed<   ee         ed<   ee         ed<   dS )ÚCollectionArgumentzA resolved collection argument.rN   r˜  r™  N)	r�   r  r  r  r   r   r   rc   r   r  rj   rh   rÇ  rÇ  ê  sA   € € € € € € à)Ð)à
€J€J�JØ�CŒ=ÐÐÑØ˜#”ÐÐÑÐÐrj   rÇ  Fr|  Úinvocation_pathrŠ  r}  c                ó  — t          |¦  «                             d¦  «        \  }}}|                     d¦  «        ^}}|r|d         › |› |› �|d<   d}|rt          |¦  «        }	|	�|}|	}| |z  }
t	          |
¦  «        }
t          |
¦  «        s)|rdnd}t          |                     |¬¦  «        ¦  «        ‚|r=|
                     ¦   «         r)|rdnd	}t          |                     |¬¦  «        ¦  «        ‚t          |
||¬
¦  «        S )aÃ  Parse path arguments optionally containing selection parts and return (fspath, names).

    Command-line arguments can point to files and/or directories, and optionally contain
    parts for specific tests selection, for example:

        "pkg/tests/test_foo.py::TestClass::test_foo"

    This function ensures the path exists, and returns a resolved `CollectionArgument`:

        CollectionArgument(
            path=Path("/full/path/to/pkg/tests/test_foo.py"),
            parts=["TestClass", "test_foo"],
            module_name=None,
        )

    When as_pypath is True, expects that the command-line argument actually contains
    module paths instead of file-system paths:

        "pkg.tests.test_foo::TestClass::test_foo"

    In which case we search sys.path for a matching module, and then return the *path* to the
    found module, which may look like this:

        CollectionArgument(
            path=Path("/home/u/myvenv/lib/site-packages/pkg/tests/test_foo.py"),
            parts=["TestClass", "test_foo"],
            module_name="pkg.tests.test_foo",
        )

    If the path doesn't exist, raise UsageError.
    If the path is a directory and selection parts are present, raise UsageError.
    r–  r—  éÿÿÿÿNz9module or package not found: {arg} (missing __init__.py?)z"file or directory not found: {arg})rŠ  z9package argument cannot contain :: selection parts: {arg}z;directory argument cannot contain :: selection parts: {arg})rN   r˜  r™  )
rc   Ú	partitionrœ  rÄ  r   r#   r   ÚformatrÑ   rÇ  )rÈ  rŠ  r}  rl   ÚsquacketÚrestÚstrpathr˜  r™  Úpyarg_strpathr;  rv   s               rh   r�  r�  ó  sT  € õF ˜s™8œ8×-Ò-¨cÑ2Ô2Ñ€Dˆ(�DØ—j’j Ñ&Ô&€O€GˆeØð 3Ø˜R”yÐ2 (Ð2¨DÐ2Ð2ˆˆb‰	Ø€KØð $Ý% gÑ.Ô.ˆØÐ$Ø!ˆKØ#ˆGØ˜wÑ&€FÝ˜&Ñ!Ô!€FÝ�vÑÔð .ð ð6ÐGÐGà5ð 	õ
 ˜Ÿš¨˜Ñ,Ô,Ñ-Ô-Ð-Øð .�—’‘”ð .ð ðOÐGÐGàNð 	õ
 ˜Ÿš¨˜Ñ,Ô,Ñ-Ô-Ð-ÝØØØðñ ô ð rj   )r|   ry   r,   N)[r  rq   Údataclassesrä   rd   rW   Úimportlib.utilrž   Úpathlibr   r“   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   rV  r  r‹   r   Ú_pytest._codeÚ_pytest.configr   r   r   r   r   r   Ú_pytest.config.argparsingr   Ú_pytest.config.compatr   Ú_pytest.fixturesr   Ú_pytest.outcomesr   Ú_pytest.pathlibr   r    r"   r#   r$   Ú_pytest.reportsr%   r&   Ú_pytest.runnerr'   r(   Ú_pytest.warning_typesr)   r*   ri   rc   rf   rb   r¥   rª   r¨   r¬   r[   r­   rÖ   ró   r3  rø   r4  r  r  r‰   r¸   rŠ   r‡   Ú	dataclassr  Ú	Directoryrõ   ry   rÄ  rÇ  r�  r  rj   rh   ú<module>rá     s"  ðØ NÐ Nà €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø €€€à €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø (Ð (Ð (Ð (Ð (Ð (Ø #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø .Ð .Ð .Ð .Ð .Ð .Ø %Ð %Ð %Ð %Ð %Ð %Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø +Ð +Ð +Ð +Ð +Ð +Ø !Ð !Ð !Ð !Ð !Ð !Ø (Ð (Ð (Ð (Ð (Ð (Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø &Ð &Ð &Ð &Ð &Ð &Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø #Ð #Ð #Ð #Ð #Ð #Ø )Ð )Ð )Ð )Ð )Ð )Ø &Ð &Ð &Ð &Ð &Ð &Ø +Ð +Ð +Ð +Ð +Ð +Ø %Ð %Ð %Ð %Ð %Ð %Ø /Ð /Ð /Ð /Ð /Ð /ð ð ØÐÐÐÐÐðy˜Vð y¨ð yð yð yð yðx˜Cð  Cð ð ð ð ð28Øð8Ø" F¨IÐ#6¸ÀÀsÈHÀ}ÔAUÔ8VÐ#VÔWð8à
ˆ3�ˆ=Ôð8ð 8ð 8ð 8ðv' ð '¨5°°h°Ô+?ð 'ð 'ð 'ð 'ð
�&ð 
 9ð 
°¸%ÀÀXÀÔ:NÔ1Oð 
ð 
ð 
ð 
ðð ð ð ð 	ð ¨dð ð ð ð ð(F�4ð F˜Dð Fð Fð Fð Fð(#¨4ð #¸ð #ÀHÈTÄNð #ð #ð #ð #ðL.Ø
ð.Øœð.àˆeŒoÔð.ð .ð .ð .ð¨¨e¬jÔ)9ð À6ð Èdð ð ð ð ð$ð ð ð ð ñ ô ð ðð ð ð ð Ð#ñ ô ð ð-ð -ð -ð -ð -ˆYñ -ô -ð -ð Ôðð ð ð ð ˜˜d C˜iœñ ô ñ Ôðð ð/ ð / ð / ð / ð / ˆ%Œ/ñ / ô / ñ „ð/ ðd ðv<ð v<ð v<ð v<ð v<ˆeŒoñ v<ô v<ñ „ðv<ðr˜sð  x°¤}ð ð ð ð ð$ €Ô˜dÐ#Ñ#Ô#ðð ð ð ð ñ ô ñ $Ô#ðð ;@ðAð Að AØðAØ #ðAØ37ðAàðAð Að Að Að Að Arj   