§
    øÛgpj  ã                   óD  — 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mZ	 n# e
$ r	 ddlmZ	 Y nw xY wddlmZ ej                             ej        ¦  «                             ¦   «         ZdZdZdZdZd	Zd
Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z" G d„ d¦  «        Z#d„ Z$ G d„ de	¦  «        Z% G d„ de&¦  «        Z' G d„ de'¦  «        Z( G d„ de(¦  «        Z) G d„ d e)¦  «        Z* G d!„ d"e'¦  «        Z+ G d#„ d$e,¦  «        Z- G d%„ d&e.¦  «        Z/ G d'„ d(e)¦  «        Z0dS ))zF core implementation of testing process: init, session, runtest loop. é    N)ÚMutableMapping)Ú	DictMixin)Úcollect_one_nodeé   é   é   é   é   c           	      óv  — |                       dddg d¢¬¦  «         |                       dddg ¬¦  «         |                      dd	¦  «        }|                     d
ddddd¬¦  «        f |                     dddt          ddd¬¦  «         |                     ddd¬¦  «         |                     ddt          dd¬¦  «         |                     d dd!d"d#¬$¦  «         |                      d%d&¦  «        }|                     d'd(dd)¬¦  «        f |                     d*dd+¬¦  «         |                     d,d-d.d/¬0¦  «         |                     d1d2d d3d4¬5¦  «         |                     d6dd7d!d8¬9¦  «         |                     d:d;dd<d!d=¬9¦  «         |                      d>d?¦  «        }|                     d@dAd d3dB¬5¦  «         d S )CNÚnorecursedirsz)directory patterns to avoid for recursionÚargs)z.*ÚbuildÚdistÚCVSÚ_darcsz{arch}z*.egg)ÚtypeÚdefaultÚ	testpathsz[directories to search for tests when no files or directories are given in the command line.Úgeneralzrunning and selection optionsz-xz--exitfirstÚstore_constÚmaxfailr   z-exit instantly on first error or failed test.)ÚactionÚdestÚconstÚhelpz	--maxfailÚnumÚstorer   z(exit after first num failures or errors.)Úmetavarr   r   r   r   r   z--strictÚ
store_truez2run pytest in strict mode, warnings become errors.)r   r   z-cÚfileÚinifilenamezcload configuration from `file` instead of trying to locate one of the implicit configuration files.)r   r   r   r   z--continue-on-collection-errorsFÚcontinue_on_collection_errorsz5Force test execution even if collection errors occur.)r   r   r   r   ÚcollectÚ
collectionz--collectonlyz--collect-onlyz'only collect tests, don't execute them.z--pyargsz2try to interpret all arguments as python packages.z--ignoreÚappendÚpathz.ignore path during collection (multi-allowed).)r   r   r   z--confcutdirÚ
confcutdirÚdirz2only load conftest.py's relative to specified dir.)r   r   r   r   z--noconftestÚ
noconftestz!Don't load any conftest.py files.)r   r   r   r   z--keepduplicatesz--keep-duplicatesÚkeepduplicateszKeep duplicate tests.Údebugconfigz(test session debugging and configurationz
--basetempÚbasetempz+base temporary directory for this test run.)ÚaddiniÚgetgroupÚ
_addoptionÚintÚstrÚ	addoption)ÚparserÚgroups     úB/granary/edev/quantum/lib/python3.11/site-packages/_pytest/main.pyÚpytest_addoptionr6      s­  € Ø
‡M‚M�/Ð#NØÐXÐXÐXð ñ Zô Zð Zà
‡M‚M�+Ð|Ø˜Rð ñ !ô !ð !ð �OŠO˜IÐ'FÑGÔG€EØ	×Ò�T˜=°Ø QØCð ñ Eô Eð Fð Fð 
×Ò�[¨%Ø¥C¨iÀØ>ð ñ @ô @ð @ð 
×Ò�Z¨ØHð ñ Jô Jð Jà	×Ò�T 6µ¸-Øyð ñ {ô {ð {à	×ÒÐ6¸|ØÐ#BØKð ñ Mô Mð Mð �OŠO˜I |Ñ4Ô4€EØ	‡O‚O�OÐ%5¸lØ6ð ñ 8ô 8ð 9ð 9à	‡O‚O�J |ØAð ñ Cô Cð Cà	‡O‚O�J x¸Ø=ð ñ ?ô ?ð ?ð 
‡O‚O�N¨¸tØØAð ñ Cô Cð Cð 
‡O‚O�N¨<Ø 5Ø0ð ñ 2ô 2ð 2ð 
‡O‚OÐ&Ð(;ÀLØ uØ$ð ñ &ô &ð &ð �OŠO˜MØ2ñ4ô 4€Eà	‡O‚O�L z¸4ÈØAð ñ Cô Cð Cð Cð Có    c                  óp   — t          t          t          t          t          ¬¦  «        } t          | ¬¦  «        S )N)ÚItemÚ	CollectorÚFileÚSession©r#   )Údictr9   r:   r;   r<   r=   s    r5   Úpytest_namespacer?   L   s)   € Ý�­	½ÅgÐNÑNÔN€GÝ˜Ð Ñ Ô Ð r7   c                 ó   — | t           _        d S ©N)ÚpytestÚconfig©rC   s    r5   Úpytest_configurerE   Q   s   € Ø…F„M€M€Mr7   c                 óâ  — t          | ¦  «        }t          |_        d}	 	 |                      ¦   «          d}| j                             |¬¦  «         d} || |¦  «        pd|_        �nP# t          j        $ r ‚ t          $ r´ t          j
                             ¦   «         }|dk     rft          |j        t          j        j        ¦  «        rBt           j                             d                     |j        |j        j        ¦  «        ¦  «         | j                             |¬¦  «         t.          |_        Y n„ t          j
                             ¦   «         }|                      || j        ¦  «         t4          |_        |                     t8          ¦  «        rt           j                             d¦  «         Y nxY wd}|j                             ¦   «          |dk    r!| j                             ||j        ¬	¦  «         |                       ¦   «          n[# d}|j                             ¦   «          |dk    r!| j                             ||j        ¬	¦  «         |                       ¦   «          w xY w|j        S )
zSkeleton command line programr   r   ©Úsessionr   z	{0}: {1}
)Úexcinfoz&mainloop: caught Spurious SystemExit!
N)rH   Ú
exitstatus)!r<   ÚEXIT_OKrJ   Ú_do_configureÚhookÚpytest_sessionstartrB   Ú
UsageErrorÚKeyboardInterruptÚ_pytestÚ_codeÚExceptionInfoÚ
isinstanceÚvalueÚexitÚ	ExceptionÚsysÚstderrÚwriteÚformatÚtypenameÚmsgÚpytest_keyboard_interruptÚEXIT_INTERRUPTEDÚnotify_exceptionÚoptionÚEXIT_INTERNALERRORÚerrisinstanceÚ
SystemExitÚstartdirÚchdirÚpytest_sessionfinishÚ_ensure_unconfigure)rC   ÚdoitrH   Ú	initstaterI   s        r5   Úwrap_sessionrk   U   sx  € å�f‰oŒo€GÝ €GÔØ€Ið%ð	LØ× Ò Ñ"Ô"Ð"ØˆIØŒK×+Ò+°GÐ+Ñ<Ô<Ð<ØˆIØ!%  f¨gÑ!6Ô!6Ð!;¸!ˆGÔÑøÝÔ ð 	ð 	ð 	ØÝ ð 	2ð 	2ð 	2Ý”m×1Ò1Ñ3Ô3ˆGØ˜1Š}ˆ}¥Ø”M¥6¤;Ô#8ñ":ô ":ˆ}å”
× Ò  ×!4Ò!4ØÔ$ g¤mÔ&7ñ"9ô "9ñ :ô :ð :àŒK×1Ò1¸'Ð1ÑBÔBÐBÝ!1ˆGÔÐÐð	LÝ”m×1Ò1Ñ3Ô3ˆGØ×#Ò# G¨V¬]Ñ;Ô;Ð;Ý!3ˆGÔØ×$Ò$¥ZÑ0Ô0ð LÝ”
× Ò Ð!JÑKÔKÐKøøøøøð ˆØÔ×ÒÑ Ô Ð Ø˜Š>ˆ>ØŒK×,Ò,ØØ"Ô-ð -ñ /ô /ð /ð 	×"Ò"Ñ$Ô$Ð$Ð$øð ˆØÔ×ÒÑ Ô Ð Ø˜Š>ˆ>ØŒK×,Ò,ØØ"Ô-ð -ñ /ô /ð /ð 	×"Ò"Ñ$Ô$Ð$Ð$øøøØÔÐs-    AA( Á&H Á(C
F5Ä2H Ä4A?F5Æ3H ÈAI'c                 ó,   — t          | t          ¦  «        S rA   )rk   Ú_mainrD   s    r5   Úpytest_cmdline_mainrn   |   s   € Ý˜¥Ñ&Ô&Ð&r7   c                 ó²   — | j                              |¬¦  «         | j                              |¬¦  «         |j        rt          S |j        dk    rt          S dS )z] default command line protocol for initialization, session,
    running tests and reporting. rG   r   N)rM   Úpytest_collectionÚpytest_runtestloopÚtestsfailedÚEXIT_TESTSFAILEDÚtestscollectedÚEXIT_NOTESTSCOLLECTED)rC   rH   s     r5   rm   rm      sc   € ð „K×!Ò!¨'Ð!Ñ2Ô2Ð2Ø
„K×"Ò"¨7Ð"Ñ3Ô3Ð3àÔð %ÝÐØ	Ô	 1Ò	$Ð	$Ý$Ð$ð 
%Ð	$r7   c                 ó*   — |                       ¦   «         S rA   )Úperform_collectrG   s    r5   rp   rp   Š   s   € Ø×"Ò"Ñ$Ô$Ð$r7   c                 ó¨  — | j         r.| j        j        j        s|                      d| j         z  ¦  «        ‚| j        j        j        rdS t          | j        ¦  «        D ]t\  }}|dz   t          | j        ¦  «        k     r| j        |dz            nd }|j        j	         
                    ||¬¦  «         | j        r|                      | j        ¦  «        ‚ŒudS )Nz%d errors during collectionTr   )ÚitemÚnextitem)rr   rC   ra   r"   ÚInterruptedÚcollectonlyÚ	enumerateÚitemsÚlenrM   Úpytest_runtest_protocolÚ
shouldstop)rH   Úiry   rz   s       r5   rq   rq   �   sð   € ØÔð AØ”Ô%ÔCðAà×!Ò!Ø)¨GÔ,?Ñ?ñAô Að 	Að „~ÔÔ(ð Øˆtå˜Wœ]Ñ+Ô+ð :ð :‰ˆˆ4Ø)*¨1©­s°7´=Ñ/AÔ/AÒ)AÐ)A�7”=  1¡Ô%Ð%ÀtˆØŒÔ×0Ò0°dÀXÐ0ÑNÔNÐNØÔð 	:Ø×%Ò% gÔ&8Ñ9Ô9Ð9ð	:àˆ4r7   c                 óX  — |                       ¦   «         }|                     d|¬¦  «        }|pg }|                     d¦  «        }|r|                     d„ |D ¦   «         ¦  «         | |v rdS |                     d¦  «        }|j        j        }|s| |v rdS |                     | ¦  «         dS )NÚcollect_ignore©r&   Úignorec                 óL   — g | ]!}t           j                             |¦  «        ‘Œ"S © )Úpyr&   Úlocal©Ú.0Úxs     r5   ú
<listcomp>z)pytest_ignore_collect.<locals>.<listcomp>£   s&   € ÐBÐBÐB°!�RœWŸ]š]¨1Ñ-Ô-ÐBÐBÐBr7   Tr*   F)ÚdirpathÚ_getconftest_pathlistÚ	getoptionÚextendÚpluginmanagerÚ_duplicatepathsÚadd)r&   rC   ÚpÚignore_pathsÚ
excludeoptr*   Úduplicate_pathss          r5   Úpytest_ignore_collectrš   �   sÓ   € Ø�Š‰Œ€AØ×/Ò/Ð0@ÀqÐ/ÑIÔI€LØÐ% 2€LØ×!Ò! (Ñ+Ô+€JØð DØ×ÒÐBÐB°zÐBÑBÔBÑCÔCÐCàˆ|ÐÐØˆtð ×%Ò%Ð&6Ñ7Ô7€NØÔ*Ô:€OØð &Ø�?Ð"Ð"Ø�4à×Ò Ñ%Ô%Ð%àˆ5r7   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚFSHookProxyc                 ó0   — || _         || _        || _        d S rA   )ÚfspathÚpmÚremove_mods)Úselfrž   rŸ   r    s       r5   Ú__init__zFSHookProxy.__init__µ   s   € ØˆŒØˆŒØ&ˆÔÐÐr7   c                 ó\   — | j                              || j        ¬¦  «        }|| j        |<   |S )N)Úremove_plugins)rŸ   Úsubset_hook_callerr    Ú__dict__)r¡   Únamer�   s      r5   Ú__getattr__zFSHookProxy.__getattr__º   s0   € ØŒG×&Ò& t¸DÔ<LÐ&ÑMÔMˆØˆŒ�dÑØˆr7   N)Ú__name__Ú
__module__Ú__qualname__r¢   r¨   rˆ   r7   r5   rœ   rœ   ´   s2   € € € € € ð'ð 'ð 'ð
ð ð ð ð r7   rœ   c                 ó,   ‡ — ˆ fd„}t          |¦  «        S )Nc                 ó.   •— t          t          ‰¦  «        S rA   )ÚgetattrrB   )r¡   r§   s    €r5   Úfgetzcompatproperty.<locals>.fgetÀ   s   ø€ å•v˜tÑ$Ô$Ð$r7   )Úproperty)r§   r¯   s   ` r5   Úcompatpropertyr±   ¿   s*   ø€ ð%ð %ð %ð %ð %õ �D‰>Œ>Ðr7   c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚNodeKeywordsc                 óH   — || _         |j        | _        |j        di| _        d S ©NT)ÚnodeÚparentr§   Ú_markers)r¡   r¶   s     r5   r¢   zNodeKeywords.__init__Ç   s$   € ØˆŒ	Ø”kˆŒØœ DÐ)ˆŒˆˆr7   c                 ór   — 	 | j         |         S # t          $ r | j        €‚ | j        j        |         cY S w xY wrA   )r¸   ÚKeyErrorr·   Úkeywords©r¡   Úkeys     r5   Ú__getitem__zNodeKeywords.__getitem__Ì   sP   € ð	-Ø”= Ô%Ð%øÝð 	-ð 	-ð 	-ØŒ{Ð"ØØ”;Ô'¨Ô,Ð,Ð,Ð,ð	-øøøs   ‚ �$6µ6c                 ó   — || j         |<   d S rA   )r¸   )r¡   r½   rU   s      r5   Ú__setitem__zNodeKeywords.__setitem__Ô   s   € Ø"ˆŒ�cÑÐÐr7   c                 ó    — t          d¦  «        ‚)Nz"cannot delete key in keywords dict)Ú
ValueErrorr¼   s     r5   Ú__delitem__zNodeKeywords.__delitem__×   s   € ÝÐ=Ñ>Ô>Ð>r7   c                 ó”   — t          | j        ¦  «        }| j        �|                     | j        j        ¦  «         t          |¦  «        S rA   )Úsetr¸   r·   Úupdater»   Úiter)r¡   Úseens     r5   Ú__iter__zNodeKeywords.__iter__Ú   s<   € Ý�4”=Ñ!Ô!ˆØŒ;Ð"Ø�KŠK˜œÔ,Ñ-Ô-Ð-Ý�D‰zŒzÐr7   c                 óD   — t          |                      ¦   «         ¦  «        S rA   )r   rÉ   ©r¡   s    r5   Ú__len__zNodeKeywords.__len__à   s   € Ý�4—=’=‘?”?Ñ#Ô#Ð#r7   c                 ó    — t          | ¦  «        S rA   )ÚlistrË   s    r5   ÚkeyszNodeKeywords.keysã   s   € Ý�D‰zŒzÐr7   c                 ó   — d| j         ›d�S )Nz<NodeKeywords for node ú>)r¶   rË   s    r5   Ú__repr__zNodeKeywords.__repr__æ   s   € € Ø/3¬y¨y¨yÐ;Ð;r7   N)r©   rª   r«   r¢   r¾   rÀ   rÃ   rÉ   rÌ   rÏ   rÒ   rˆ   r7   r5   r³   r³   Æ   sŒ   € € € € € ð*ð *ð *ð
-ð -ð -ð#ð #ð #ð?ð ?ð ?ðð ð ð$ð $ð $ðð ð ð<ð <ð <ð <ð <r7   r³   c                   ó6  — e Zd ZdZdd„Zed„ ¦   «         Z ed¦  «        Z ed¦  «        Z	 ed¦  «        Z
 ed¦  «        Z ed	¦  «        Z ed
¦  «        Zd„ Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„ZeZ dS )ÚNodez~ base class for Collector and Item the test collection tree.
    Collector subclasses have children, Items are terminal nodes.Nc                 óâ   — || _         || _        |p|j        | _        |p|j        | _        t	          |dd ¦  «        | _        t          | ¦  «        | _        t          ¦   «         | _	        i | _
        d S )Nrž   )r§   r·   rC   rH   r®   rž   r³   r»   rÅ   Úextra_keyword_matchesÚ_name2pseudofixturedef)r¡   r§   r·   rC   rH   s        r5   r¢   zNode.__init__î   sv   € àˆŒ	ð ˆŒð Ð- ¤ˆŒð Ð0 &¤.ˆŒõ ˜f h°Ñ5Ô5ˆŒõ % TÑ*Ô*ˆŒõ &)¡U¤UˆÔ"ð ')ˆÔ#Ð#Ð#r7   c                 ó@   — | j                              | j        ¦  «        S )z6 fspath sensitive hook proxy used to call pytest hooks)rH   Úgethookproxyrž   rË   s    r5   Úihookz
Node.ihook  s   € ð Œ|×(Ò(¨¬Ñ5Ô5Ð5r7   ÚModuleÚClassÚInstanceÚFunctionr;   r9   c                 óž   — t          | |¦  «        }|t          t          |¦  «        k    r#t          j                             dd|z  ¦  «         |S )Nz2.0zbuse of node.%s is deprecated, use pytest_pycollect_makeitem(...) to create custom collection nodes)r®   rB   r‰   ÚlogÚ_apiwarn)r¡   r§   Úclss      r5   Ú_getcustomclasszNode._getcustomclass  sT   € Ý�d˜DÑ!Ô!ˆØ•'�& $Ñ'Ô'Ò'Ð'ÝŒF�OŠO˜Eð $#à%)ñ$*ñ +ô +ð +ð ˆ
r7   c                 óF   — d| j         j        ›dt          | dd ¦  «        ›d�S )Nú<ú r§   rÑ   )Ú	__class__r©   r®   rË   s    r5   rÒ   zNode.__repr__  s1   € € Øœ>Ô2Ð2Ð2Ý" 4¨°Ñ6Ô6Ð6Ð6ð8ð 	8r7   c                 ó  — t          |t          ¦  «        sJ ‚t          | dd¦  «        }|€t          | dd¦  «        }n|d         ›d|d         dz   ›�}| j        j                             t          ||| j        |¬¦  «        ¬¦  «         dS )	zK generate a warning with the given code and message for this
        item. ÚlocationNrž   r   ú:r   )ÚcodeÚmessageÚnodeidÚ
fslocation)Úkwargs)rT   r1   r®   rÚ   Úpytest_logwarningÚcall_historicr>   rí   )r¡   rë   rì   rî   s       r5   Úwarnz	Node.warn  s©   € õ ˜$¥Ñ$Ô$Ð$Ð$Ð$Ý˜T :¨tÑ4Ô4ˆ
ØÐÝ   x°Ñ6Ô6ˆJˆJà$.¨q¤M M M°:¸a´=À1Ñ3DÐ3DÐEˆJàŒ
Ô$×2Ò2½$Ø˜wØ”;¨:ð;7ñ ;7ô ;7Ð2ñ 	8ô 	8ð 	8ð 	8ð 	8r7   c                 ól   — 	 | j         S # t          $ r  |                      ¦   «         x| _         }|cY S w xY w)z= a ::-separated string denoting its collection tree address. )Ú_nodeidÚAttributeErrorÚ_makeid)r¡   r�   s     r5   rí   zNode.nodeid.  sG   € ð	Ø”<ÐøÝð 	ð 	ð 	Ø#Ÿ|š|™~œ~Ð-ˆDŒL˜1ØˆHˆHˆHð	øøøs   ‚	 ‰'3²3c                 ó0   — | j         j        dz   | j        z   S )Nú::)r·   rí   r§   rË   s    r5   rö   zNode._makeid7  s   € ØŒ{Ô! DÑ(¨4¬9Ñ4Ð4r7   c                 ó*   — t          | j        ¦  «        S rA   )Úhashrí   rË   s    r5   Ú__hash__zNode.__hash__:  s   € Ý�D”KÑ Ô Ð r7   c                 ó   — d S rA   rˆ   rË   s    r5   Úsetupz
Node.setup=  ó   € Øˆr7   c                 ó   — d S rA   rˆ   rË   s    r5   ÚteardownzNode.teardown@  rþ   r7   c                 ó’  — d|z   }t          | |d ¦  «        }|�3t          j                             |d         |d         |d         ¦  «         t	          | |¦  «        rt          | |¦  «        S 	  |¦   «         }n># t          j        j        $ r ‚  t          j        ¦   «         }t          | ||¦  «         ‚ xY wt          | ||¦  «         |S )NÚ_ex_r   r   r   )	r®   r‰   ÚbuiltinÚ_reraiseÚhasattrÚ_sysexrX   Úexc_infoÚsetattr)r¡   ÚattrnameÚfunctionÚ
exattrnameÚfailureÚress         r5   Ú_memoizedcallzNode._memoizedcallC  s×   € Ø˜hÑ&ˆ
Ý˜$ 
¨DÑ1Ô1ˆØÐÝŒJ×Ò ¨¤
¨G°A¬J¸À¼
ÑCÔCÐCÝ�4˜Ñ"Ô"ð 	+Ý˜4 Ñ*Ô*Ð*ð	Ø�(‘*”*ˆCˆCøÝŒzÔ ð 	ð 	ð 	Øð	Ý”l‘n”nˆGÝ�D˜* gÑ.Ô.Ð.ØøøøÝ��h Ñ$Ô$Ð$Øˆ
s   Á-
A8 Á8;B3c                 óv   — g }| }|�|                      |¦  «         |j        }|­|                     ¦   «          |S )ze return list of all parent collectors up to self,
            starting from root of collection tree. )r%   r·   Úreverse)r¡   Úchainry   s      r5   Ú	listchainzNode.listchainU  sI   € ð ˆØˆØÐØ�LŠL˜ÑÔÐØ”;ˆDð Ðð 	�Š‰ŒˆØˆr7   c                 óÄ   — ddl m} t          |t          j        j        ¦  «        r ||¦  «        }nt          ||¦  «        st          d¦  «        ‚|| j        |j        <   dS )zu dynamically add a marker object to the node.

        ``marker`` can be a string or pytest.mark.* instance.
        r   )ÚMarkDecoratorz'is not a string or pytest.mark.* MarkerN)	Ú_pytest.markr  rT   r‰   r  Ú_basestringrÂ   r»   r§   )r¡   Úmarkerr  s      r5   Ú
add_markerzNode.add_marker`  su   € ð
 	/Ð.Ð.Ð.Ð.Ð.Ý�f�bœjÔ4Ñ5Ô5ð 	HØ"�] 6Ñ*Ô*ˆFˆFÝ˜F MÑ2Ô2ð 	HÝÐFÑGÔGÐGØ%+ˆŒ�f”kÑ"Ð"Ð"r7   c                 ó|   — | j                              |d¦  «        }|�ddlm}m} t          |||f¦  «        r|S dS dS )zf get a marker object from this node or None if
        the node doesn't have a marker with that name. Nr   )ÚMarkInfor  )r»   Úgetr  r  r  rT   )r¡   r§   Úvalr  r  s        r5   Ú
get_markerzNode.get_markerl  se   € ð Œm×Ò  dÑ+Ô+ˆØˆ?Ø<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ý˜# ¨xÐ8Ñ9Ô9ð Ø�
ð ˆ?ðð r7   c                 óˆ   — t          ¦   «         }| }|                      ¦   «         D ]}|                     |j        ¦  «         Œ|S )z< Return a set of all extra keywords in self and any parents.)rÅ   r  rÆ   rÖ   )r¡   Úextra_keywordsry   s      r5   ÚlistextrakeywordszNode.listextrakeywordsu  sI   € å™œˆØˆØ—N’NÑ$Ô$ð 	>ð 	>ˆDØ×!Ò! $Ô"<Ñ=Ô=Ð=Ð=ØÐr7   c                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 ó   — g | ]	}|j         ‘Œ
S rˆ   ©r§   r‹   s     r5   rŽ   z"Node.listnames.<locals>.<listcomp>~  s   € Ð1Ð1Ð1˜1�”Ð1Ð1Ð1r7   )r  rË   s    r5   Ú	listnameszNode.listnames}  s    € Ø1Ð1 §¢Ñ 0Ô 0Ð1Ñ1Ô1Ð1r7   c                 óF   — | j         j                             || ¦  «         dS )zÃ register a function to be called when this node is finalized.

        This method can only be called when this node is active
        in a setup chain, for example during self.setup().
        N)rH   Ú_setupstateÚaddfinalizer)r¡   Úfins     r5   r'  zNode.addfinalizer€  s%   € ð 	ŒÔ ×-Ò-¨c°4Ñ8Ô8Ð8Ð8Ð8r7   c                 ó`   — | }|r)t          ||¦  «        s|j        }|rt          ||¦  «        ¯|S )z] get the next parent node (including ourself)
        which is an instance of the given class)rT   r·   )r¡   râ   Úcurrents      r5   Ú	getparentzNode.getparentˆ  sI   € ð ˆØð 	%�j¨°#Ñ6Ô6ð 	%Ø”nˆGð ð 	%�j¨°#Ñ6Ô6ð 	%àˆr7   c                 ó   — d S rA   rˆ   )r¡   rI   s     r5   Ú_prunetracebackzNode._prunetraceback�  rþ   r7   c                 óZ  — | j         j        }|                     |j        ¦  «        r|j                             ¦   «         S d}| j        j        j        rd}nit          j
                             |j        d         g¦  «        }|                      |¦  «         t          |j        ¦  «        dk    r||_        d}|dk    rd}|€| j        j        j        dk    rd}nd}	 t!          j        ¦   «          d}n# t$          $ r d}Y nw xY w|                     d|| j        j        j        ||¬¦  «        S )	NTÚlongéÿÿÿÿr   FÚautoÚshort)ÚfuncargsÚabspathÚ
showlocalsÚstyleÚtbfilter)rH   Ú_fixturemanagerrc   ÚFixtureLookupErrorrU   Ú
formatreprrC   ra   Ú	fulltracerQ   rR   Ú	TracebackÚ	tracebackr-  r   ÚtbstyleÚosÚgetcwdÚOSErrorÚgetreprr5  )r¡   rI   r6  Úfmr7  Útbr4  s          r5   Ú_repr_failure_pyzNode._repr_failure_py“  sJ  € ØŒ\Ô)ˆØ× Ò  Ô!6Ñ7Ô7ð 	.Ø”=×+Ò+Ñ-Ô-Ð-ØˆØŒ;ÔÔ'ð 		ØˆEˆEå”×(Ò(¨'Ô*;¸BÔ*?Ð)@ÑAÔAˆBØ× Ò  Ñ)Ô)Ð)Ý�7Ô$Ñ%Ô%¨Ò*Ð*Ø$&�Ô!ØˆHØ˜ŠˆØ�àˆ=ØŒ{Ô!Ô)¨WÒ4Ð4Ø��à�ð	ÝŒI‰KŒKˆKØˆGˆGøÝð 	ð 	ð 	ØˆGˆGˆGð	øøøð �Š¨°gØ*.¬+Ô*<Ô*GØ%*°Xð ñ ?ô ?ð 	?s   ÃC2 Ã2DÄ D©NNNrA   )!r©   rª   r«   Ú__doc__r¢   r°   rÚ   r±   rÛ   rÜ   rÝ   rÞ   r;   r9   rã   rÒ   rò   rí   rö   rû   rý   r   r  r  r  r  r   r$  r'  r+  r-  rE  Úrepr_failurerˆ   r7   r5   rÔ   rÔ   ê   sÌ  € € € € € ðEð Eð)ð )ð )ð )ð2 ð6ð 6ñ „Xð6ð ˆ^˜HÑ%Ô%€FØˆN˜7Ñ#Ô#€EØˆ~˜jÑ)Ô)€HØˆ~˜jÑ)Ô)€HØˆ>˜&Ñ!Ô!€DØˆ>˜&Ñ!Ô!€Dðð ð ð8ð 8ð 8ð8ð 8ð 8ð ðð ñ „Xðð5ð 5ð 5ð!ð !ð !ðð ð ðð ð ðð ð ð$	ð 	ð 	ð
,ð 
,ð 
,ðð ð ðð ð ð2ð 2ð 2ð9ð 9ð 9ðð ð ðð ð ð?ð ?ð ?ð ?ð@ $€L€L€Lr7   rÔ   c                   óF   — e Zd ZdZ G d„ de¦  «        Zd„ Zd„ Zd„ Zd„ Z	dS )	r:   zf Collector instances create children through collect()
        and thus iteratively build a tree.
    c                   ó   — e Zd ZdZdS )úCollector.CollectErrorz8 an error during collection, contains a custom message. N©r©   rª   r«   rG  rˆ   r7   r5   ÚCollectErrorrK  º  s   € € € € € ØFÐFÐFÐFr7   rM  c                 ó    — t          d¦  «        ‚)za returns a list of children (items and collectors)
            for this collection node.
        Úabstract)ÚNotImplementedErrorrË   s    r5   r#   zCollector.collect½  s   € õ " *Ñ-Ô-Ð-r7   c                 ó¦   — |                      | j        ¦  «        r!|j        }t          |j        d         ¦  «        S |                      |d¬¦  «        S )z! represent a collection failure. r   r2  )r6  )rc   rM  rU   r1   r   rE  )r¡   rI   Úexcs      r5   rH  zCollector.repr_failureÃ  sO   € à× Ò  Ô!2Ñ3Ô3ð 	$Ø”-ˆCÝ�s”x ”{Ñ#Ô#Ð#Ø×$Ò$ W°GÐ$Ñ<Ô<Ð<r7   c                 ó6   ‡ — ‰                       dˆ fd„¦  «        S )z? internal helper method to cache results of calling collect(). Ú
_collectedc                  óF   •— t          ‰                      ¦   «         ¦  «        S rA   )rÎ   r#   rË   s   €r5   ú<lambda>z(Collector._memocollect.<locals>.<lambda>Ì  s   ø€ ½¸T¿\º\¹^¼^Ñ8LÔ8L€ r7   )r  rË   s   `r5   Ú_memocollectzCollector._memocollectÊ  s#   ø€ à×!Ò! ,Ð0LÐ0LÐ0LÐ0LÑMÔMÐMr7   c                 óâ   — t          | d¦  «        r^|j        }|                     | j        ¬¦  «        }||k    r|                     t          ¬¦  «        }|                     ¦   «         |_        d S d S )Nrž   r…   )Úexcludepath)r  r=  Úcutrž   ÚtracebackcutdirÚfilter)r¡   rI   r=  Ú
ntracebacks       r5   r-  zCollector._prunetracebackÎ  ss   € Ý�4˜Ñ"Ô"ð 	4ØÔ)ˆIØ"Ÿš¨D¬K˜Ñ8Ô8ˆJØ˜YÒ&Ð&Ø'Ÿ^š^½˜^ÑHÔH�
Ø *× 1Ò 1Ñ 3Ô 3ˆGÔÐÐð	4ð 	4r7   N)
r©   rª   r«   rG  rW   rM  r#   rH  rW  r-  rˆ   r7   r5   r:   r:   µ  s�   € € € € € ðð ðGð Gð Gð Gð G�yñ Gô Gð Gð.ð .ð .ð=ð =ð =ðNð Nð Nð4ð 4ð 4ð 4ð 4r7   r:   c                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )ÚFSCollectorNc                 ó8  •— t           j                             |¦  «        }|j        }|�>|                     |j        ¦  «        }|r|}|                     t          j        d¦  «        }t          t          | ¦  «                             ||||¦  «         || _        d S ©Nú/)r‰   r&   rŠ   ÚbasenameÚreltorž   Úreplacer?  ÚsepÚsuperr_  r¢   )r¡   rž   r·   rC   rH   r§   Úrelrç   s          €r5   r¢   zFSCollector.__init__×  s‡   ø€ Ý”—’˜vÑ&Ô&ˆØŒˆØÐØ—,’,˜vœ}Ñ-Ô-ˆCØð Ø�Ø—<’<¥¤¨Ñ,Ô,ˆDÝ�k˜4Ñ Ô ×)Ò)¨$°¸ÀÑHÔHÐHØˆŒˆˆr7   c                 ó®   — | j                              | j        j        ¦  «        }t          j        dk    r |                     t          j        d¦  «        }|S ra  )rž   rd  rC   Úrootdirr?  rf  re  )r¡   Úrelpaths     r5   rö   zFSCollector._makeidâ  sA   € Ø”+×#Ò# D¤KÔ$7Ñ8Ô8ˆÝŒ6�SŠ=ˆ=Ø—o’o¥b¤f¨cÑ2Ô2ˆGØˆr7   rF  )r©   rª   r«   r¢   rö   Ú__classcell__©rç   s   @r5   r_  r_  Ö  sL   ø€ € € € € ð	ð 	ð 	ð 	ð 	ð 	ðð ð ð ð ð ð r7   r_  c                   ó   — e Zd ZdZdS )r;   z. base class for collecting tests from a file. NrL  rˆ   r7   r5   r;   r;   è  s   € € € € € Ø8Ð8Ð8Ð8r7   r;   c                   óJ   ‡ — e Zd ZdZdZdˆ fd„	Zd„ Zd„ Zed„ ¦   «         Z	ˆ xZ
S )r9   zv a basic test invocation item. Note that for a single function
    there might be multiple test invocation items.
    Nc                 ól   •— t          t          | ¦  «                             ||||¦  «         g | _        d S rA   )rg  r9   r¢   Ú_report_sections)r¡   r§   r·   rC   rH   rç   s        €r5   r¢   zItem.__init__ñ  s5   ø€ Ý�d�DÑÔ×"Ò" 4¨°¸ÑAÔAÐAØ "ˆÔÐÐr7   c                 óH   — |r| j                              |||f¦  «         d S d S rA   )rq  r%   )r¡   Úwhenr½   Úcontents       r5   Úadd_report_sectionzItem.add_report_sectionõ  s8   € Øð 	?ØÔ!×(Ò(¨$°°WÐ)=Ñ>Ô>Ð>Ð>Ð>ð	?ð 	?r7   c                 ó   — | j         d dfS ©NÚ )rž   rË   s    r5   Ú
reportinfozItem.reportinfoù  s   € ØŒ{˜D "Ð$Ð$r7   c                 óˆ  — 	 | j         S # t          $ r® |                      ¦   «         }| j        j                             di ¦  «        }	 ||d                  }n@# t          $ r3 | j        j         	                    |d         ¦  «        }|||d         <   Y nw xY w||d         t          |d         ¦  «        f}|| _         |cY S w xY w)NÚ_bestrelpathcacher   r   r   )Ú	_locationrõ   ry  rC   r¦   Ú
setdefaultrº   rH   rž   Úbestrelpathr1   )r¡   ré   Úcacherž   s       r5   ré   zItem.locationü  sâ   € ð	Ø”>Ð!øÝð 	ð 	ð 	Ø—’Ñ(Ô(ˆHà”KÔ(×3Ò3Ð4GÈÑLÔLˆEð,Ø˜x¨œ{Ô+��øÝð ,ð ,ð ,ØœÔ,×8Ò8¸À!¼ÑEÔE�Ø%+��h˜q”kÑ"Ð"Ð"ð,øøøð  ¨¤­S°¸!´Ñ-=Ô-=Ð>ˆHØ%ˆDŒNØˆOˆOˆOð	øøøs3   ‚	 ‰>CÁAÁCÁ:BÂCÂBÂ*CÃ CrF  )r©   rª   r«   rG  rz   r¢   ru  ry  r°   ré   rl  rm  s   @r5   r9   r9   ë  s‡   ø€ € € € € ðð ð €Hð#ð #ð #ð #ð #ð #ð?ð ?ð ?ð%ð %ð %ð ðð ñ „Xðð ð ð ð r7   r9   c                   ó   — e Zd ZdZdS )ÚNoMatchz4 raised if matching cannot locate a matching names. NrL  rˆ   r7   r5   r�  r�    s   € € € € € Ø>Ð>Ð>Ð>r7   r�  c                   ó   — e Zd ZdZdZdS )r{   z" signals an interrupted test run. ÚbuiltinsNrL  rˆ   r7   r5   r{   r{     s   € € € € € Ø,Ð,Ø€J€J€Jr7   r{   c                   óÚ   — e Zd ZeZd„ Zd„ Z ej        d¬¦  «        d„ ¦   «         Z ej        d¬¦  «        d„ ¦   «         Z	e	Z
d„ Zd„ Zdd
„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd	S )r<   c                 óŠ  — t                                | |j        d || ¬¦  «         i | _        d| _        d| _        d| _        |j        j         	                    d¦  «        | _        | 
                    d¦  «        | _        t          j                             ¦   «         | _        | j        j                             | d¬¦  «         d S )N)r·   rC   rH   r   Fr$   r   rH   r#  )r_  r¢   rj  Ú_fs2hookproxyrr   rt   r�   ÚtraceÚrootr  ÚgetiniÚ_norecursepatternsr‰   r&   rŠ   re   rC   r“   Úregister)r¡   rC   s     r5   r¢   zSession.__init__  s®   € Ý×Ò˜T 6¤>¸$Ø$*°Dð 	ñ 	:ô 	:ð 	:àˆÔØˆÔØˆÔØˆŒØ”\Ô&×*Ò*¨<Ñ8Ô8ˆŒ
Ø"(§-¢-°Ñ"@Ô"@ˆÔÝœŸš™œˆŒØŒÔ!×*Ò*¨4°iÐ*Ñ@Ô@Ð@Ð@Ð@r7   c                 ó   — dS rw  rˆ   rË   s    r5   rö   zSession._makeid#  s   € Øˆrr7   T)Útryfirstc                 óH   — | j         r|                      | j         ¦  «        ‚d S rA   )r�   r{   rË   s    r5   Úpytest_collectstartzSession.pytest_collectstart&  s,   € àŒ?ð 	4Ø×"Ò" 4¤?Ñ3Ô3Ð3ð	4ð 	4r7   c                 óÐ   — |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)Úfailedr  rr   rC   Úgetvaluer�   )r¡   Úreportr   s      r5   Úpytest_runtest_logreportz Session.pytest_runtest_logreport+  s•   € àŒ=ð 	&¥¨°Ñ!<Ô!<ð 	&ØÐÔ Ñ!ÐÔØ”k×*Ò*¨9Ñ5Ô5ˆGØð &˜4Ô+¨wÒ6Ð6Ø">ØÔ$ñ#&�”��ð		&ð 	&ð 	&ð 	&ð&ð &Ð6Ð6r7   c                 ó   — || j         v S rA   )Ú_initialpaths)r¡   r&   s     r5   Ú
isinitpathzSession.isinitpath5  s   € Ø�tÔ)Ð)Ð)r7   c                 ó  — 	 | j         |         S # t          $ rj | j        j        }|                     |¦  «        }|j                             |¦  «        }|rt          |||¦  «        }n| j        j        }|| j         |<   |cY S w xY wrA   )	r†  rº   rC   r“   Ú_getconftestmodulesÚ_conftest_pluginsÚ
differencerœ   rM   )r¡   rž   rŸ   Úmy_conftestmodulesr    Úproxys         r5   rÙ   zSession.gethookproxy8  s¤   € ð	ØÔ% fÔ-Ð-øÝð 	ð 	ð 	ð ”Ô*ˆBØ!#×!7Ò!7¸Ñ!?Ô!?ÐØÔ.×9Ò9Ð:LÑMÔMˆKØð )å# F¨B°Ñ<Ô<��ð œÔ(�à).ˆDÔ˜vÑ&ØˆLˆLˆLð	øøøs   ‚ �A1BÂBNc                 ó  — | j         j        }	 |                      ||¦  «        }|                     | | j         |¬¦  «         |                     | ¬¦  «         n# |                     | ¬¦  «         w xY wt          |¦  «        | _        |S )N)rH   rC   r~   rG   )rC   rM   Ú_perform_collectÚpytest_collection_modifyitemsÚpytest_collection_finishr   rt   )r¡   r   ÚgenitemsrM   r~   s        r5   rw   zSession.perform_collectK  s˜   € ØŒ{Ôˆð	8Ø×)Ò)¨$°Ñ9Ô9ˆEØ×.Ò.°tØ”{¨%ð /ñ 1ô 1ð 1ð ×)Ò)°$Ð)Ñ7Ô7Ð7Ð7øˆD×)Ò)°$Ð)Ñ7Ô7Ð7Ð7øøøÝ! %™jœjˆÔØˆs   Ž3A ÁA0c                 ó<  — |€| j         j        }|                      d| |¦  «         | j        j        xj        dz  c_        g | _        t          ¦   «         | _        g | _        g x| _	        }|D ]Q}|  
                    |¦  «        }| j                             |¦  «         | j                             |d         ¦  «         ŒRt          | ¦  «        }| j                             |¬¦  «         | j        j        xj        dz  c_        | j        rLg }| j        D ]4\  }}d|›d|j        d         ›d�}	|                     d|›d	|	›�¦  «         Œ5t!          j        |Ž ‚|s|j        S |j        r7|j        D ]/}
| j	                             |                      |
¦  «        ¦  «         Œ0|S )
Nrw   r   r   ©r”  z	(no name z in any of ú)znot found: ú
)rC   r   r‡  rˆ  ÚindentÚ	_notfoundrÅ   r—  Ú_initialpartsr~   Ú	_parseargr%   r•   r   rÚ   Úpytest_collectreportrB   rO   ÚresultÚpassedr’   r£  )r¡   r   r£  r~   ÚargÚpartsÚrepÚerrorsrR  Úliner¶   s              r5   r   zSession._perform_collectV  s¿  € Øˆ<Ø”;Ô#ˆDØ�
Š
Ð$ d¨DÑ1Ô1Ð1ØŒ
ŒÐÔ !Ñ#ÐÔØˆŒÝ ™UœUˆÔØˆÔØÐˆŒ
�UØð 	-ð 	-ˆCØ—N’N 3Ñ'Ô'ˆEØÔ×%Ò% eÑ,Ô,Ð,ØÔ×"Ò" 5¨¤8Ñ,Ô,Ð,Ð,Ý˜tÑ$Ô$ˆØŒ
×'Ò'¨sÐ'Ñ3Ô3Ð3ØŒ
ŒÐÔ !Ñ#ÐÔØŒ>ð 	-ØˆFØ œNð Að A‘��S�SØ69°c°c¸3¼8ÀA¼;¸;¸;ÐG�Ø—’�°S°S°S¸$¸$Ð?Ñ@Ô@Ð@Ð@åÔ# VÐ,Ð,Øð 	Ø”:ÐàŒzð ;ØœJð ;ð ;�DØ”J×%Ò% d§m¢m°DÑ&9Ô&9Ñ:Ô:Ð:Ð:ØˆLr7   c              #   óÄ  K  — | j         D ]Õ}d                     t          t          |¦  «        ¦  «        }|                      d|¦  «         | j        j        xj        dz  c_        	 |                      |¦  «        D ]}|V — ŒnC# t          $ r6 | j	         
                    |t          j        ¦   «         d         f¦  «         Y nw xY w| j        j        xj        dz  c_        ŒÖd S )Nrø   zprocessing argumentr   )rª  ÚjoinÚmapr1   r‡  rˆ  r¨  Ú_collectr�  r©  r%   rX   r  )r¡   r°  r¯  r�   s       r5   r#   zSession.collectu  s  è è € ØÔ'ð 	(ð 	(ˆEØ—)’)�C¥ U™OœOÑ,Ô,ˆCØ�JŠJÐ,¨cÑ2Ô2Ð2ØŒJŒOÐ"Ô" aÑ'Ð"Ô"ð@ØŸš sÑ+Ô+ð ð �AØ�G�G�G�Gðøåð @ð @ð @ð ”×%Ò% s­C¬L©N¬N¸1Ô,=Ð&>Ñ?Ô?Ð?Ð?Ð?ð@øøøð
 ŒJŒOÐ"Ô" aÑ'Ð"Ô"Ð"ð	(ð 	(s   Á%BÂ=CÃCc              #   ó¸  K  — |                       |¦  «        }|                     d¦  «        }|                     d¬¦  «        rO|rJ d|›�¦   «         ‚|                     d„ | j        dd¬¦  «        D ]}|                      |¦  «        D ]}|V — ŒŒd S |                     d¬¦  «        sJ ‚|                      |                      |¦  «        |¦  «        D ]}|V — Œd S )	Nr   r   )r(   zinvalid arg c                 ó.   — |                       d¬¦  «        S )Nr   ©r    )Úcheck)r�   s    r5   rV  z"Session._collect.<locals>.<lambda>‰  s   € °·²¸a°±´€ r7   T)ÚfilÚrecÚbfÚsortrº  )r«  Úpopr»  ÚvisitÚ_recurseÚ_collectfileÚ
matchnodes)r¡   r¯  Únamesr&   r�   s        r5   r·  zSession._collect„  s  è è € Ø—’˜sÑ#Ô#ˆØ�yŠy˜‰|Œ|ˆØ�:Š:˜!ˆ:ÑÔð 		ØÐ6Ð6Ð6°°Ð6Ñ6Ô6Ð6ØŸ
š
Ð'@Ð'@Ø'+¤}¸ÀDð #ñ Jô Jð ð �à×*Ò*¨4Ñ0Ô0ð ð �AØ�G�G�G�Gððð ð
 —:’: 1�:Ñ%Ô%Ð%Ð%Ð%Ø—_’_ T×%6Ò%6°tÑ%<Ô%<¸eÑDÔDð ð �Ø����ðð r7   c                 óÀ   — |                       |¦  «        }|                      |¦  «        s|                     || j        ¬¦  «        rdS |                     || ¬¦  «        S )N©r&   rC   rˆ   ©r&   r·   )rÙ   r˜  rš   rC   Úpytest_collect_file)r¡   r&   rÚ   s      r5   rÃ  zSession._collectfile’  sd   € Ø×!Ò! $Ñ'Ô'ˆØ�Š˜tÑ$Ô$ð 	Ø×*Ò*°¸T¼[Ð*ÑIÔIð Ø�rØ×(Ò(¨d¸4Ð(Ñ@Ô@Ð@r7   c                 ó.  — |                       |                     ¦   «         ¦  «        }|                     || j        ¬¦  «        rd S | j        D ]}|                     |¬¦  «        r dS Œ|                       |¦  «        }|                     || ¬¦  «         dS )NrÇ  )ÚfnmatchFrÈ  T)rÙ   r�   rš   rC   rŠ  r»  Úpytest_collect_directory)r¡   r&   rÚ   Úpats       r5   rÂ  zSession._recurse™  s¤   € Ø×!Ò! $§,¢,¡.¤.Ñ1Ô1ˆØ×&Ò&¨D¸¼Ð&ÑEÔEð 	ØˆFØÔ*ð 	ð 	ˆCØ�zŠz #ˆzÑ&Ô&ð Ø�u�uðà×!Ò! $Ñ'Ô'ˆØ×&Ò&¨D¸Ð&Ñ>Ô>Ð>Øˆtr7   c                 óN  — ddl }	 |                     |¦  «        }n# t          $ r |cY S w xY w|€|S 	 |                     |¦  «        }n(# t          $ r |j        |         d         j        }Y nw xY w|                     |¦  «        rt          j	         
                    |¦  «        }|S )z/Convert a dotted module name to path.

        r   N)ÚpkgutilÚfind_loaderÚImportErrorÚget_filenamerõ   ÚmodulesÚco_filenameÚ
is_packager?  r&   Údirname)r¡   r�   rÏ  Úloaderr&   s        r5   Ú_tryconvertpyargzSession._tryconvertpyarg¤  sÒ   € ð 	ˆˆˆð	Ø×(Ò(¨Ñ+Ô+ˆFˆFøÝð 	ð 	ð 	ØˆHˆHˆHð	øøøàˆ>ØˆHð	4Ø×&Ò& qÑ)Ô)ˆDˆDøÝð 	4ð 	4ð 	4à”> !Ô$ QÔ'Ô3ˆDˆDˆDð	4øøøð ×Ò˜QÑÔð 	)Ý”7—?’? 4Ñ(Ô(ˆDØˆs   † œ+ª+³A	 Á	"A.Á-A.c                 óÂ  — t          |¦  «                             d¦  «        }| j        j        j        r|                      |d         ¦  «        |d<   |d                              dt          j        ¦  «        }| j        j	         
                    |d¬¦  «        }|                     ¦   «         s-| j        j        j        rd}nd}t          j        ||z   ¦  «        ‚||d<   |S )z> return (fspath, names) tuple after checking the file exists. rø   r   rb  T)Úabszfile or package not found: zfile not found: )r1   ÚsplitrC   ra   ÚpyargsrØ  re  r?  rf  Úinvocation_dirrµ  r»  rB   rO   )r¡   r¯  r°  rk  r&   r]   s         r5   r«  zSession._parseargº  sË   € å�C‘”—’˜tÑ$Ô$ˆØŒ;ÔÔ$ð 	7Ø×,Ò,¨U°1¬XÑ6Ô6ˆE�!‰HØ˜”(×"Ò" 3­¬Ñ/Ô/ˆØŒ{Ô)×.Ò.¨w¸DÐ.ÑAÔAˆØ�zŠz‰|Œ|ð 	/ØŒ{Ô!Ô(ð )Ø3��à(�ÝÔ# C¨#¡IÑ.Ô.Ð.Øˆˆa‰Øˆr7   c                 óP  — |                       d||¦  «         | j         j        xj        dz  c_        |                      ||¦  «        }t	          |¦  «        }|                       d|d¦  «         | j         j        xj        dz  c_        |dk    rt          ||d d…         ¦  «        ‚|S )NrÄ  r   zmatchnodes finished -> Únodesr   )r‡  rˆ  r¨  Ú_matchnodesr   r�  )r¡   ÚmatchingrÅ  rß  r   s        r5   rÄ  zSession.matchnodesÊ  s¥   € Ø�
Š
�< ¨5Ñ1Ô1Ð1ØŒ
ŒÐÔ !Ñ#ÐÔØ× Ò  ¨5Ñ1Ô1ˆÝ�%‰jŒjˆØ�
Š
Ð,¨c°7Ñ;Ô;Ð;ØŒ
ŒÐÔ !Ñ#ÐÔØ�!Š8ˆ8Ý˜( E¨"¨1¨"¤IÑ.Ô.Ð.Øˆr7   c                 óæ  — |r|s|S |d         }|sJ ‚|dd …         }g }|D �]N}t          |t          j        ¦  «        r|s|                     |¦  «         Œ5t          |t          j        ¦  «        sJ ‚t          |¦  «        }|j        rÌd}|j        D ]]}	|	j        |k    s$|	j         	                    d¦  «        d         |k    r,| 
                    |                      |	g|¦  «        ¦  «         d}Œ^|sct          |j        ¦  «        dk    rK|	j        dk    r@|                     d|¦  «         | 
                    |                      |	g|¦  «        ¦  «         |j                             |¬¦  «         �ŒP|S )Nr   r   Fú[Tz()r¥  )rT   rB   r9   r%   r:   r   r®  r­  r§   rÛ  r’   rÄ  r   ÚinsertrÚ   r¬  )
r¡   rá  rÅ  r§   Ú	nextnamesÚresultnodesr¶   r±  Úhas_matchedr�   s
             r5   rà  zSession._matchnodesÕ  s–  € Øð 	˜uð 	ØˆOØ�QŒxˆØˆˆˆØ˜!˜"˜"”Iˆ	ØˆØð 	8ñ 	8ˆDÝ˜$¥¤Ñ,Ô,ð Øð -Ø×&Ò& tÑ,Ô,Ð,ØÝ˜d¥FÔ$4Ñ5Ô5Ð5Ð5Ð5Ý" 4Ñ(Ô(ˆCØŒzð 
HØ#�Øœð +ð +�Aà”v ’~�~¨¬¯ª°cÑ):Ô):¸1Ô)=ÀÒ)EÐ)EØ#×*Ò*¨4¯?ª?¸A¸3À	Ñ+JÔ+JÑKÔKÐKØ&*˜øà"ð H¥s¨3¬:¡¤¸!Ò';Ð';ÀÄÈ$ÂÀØ×$Ò$ Q¨Ñ-Ô-Ð-Ø×&Ò& t§¢¸°s¸IÑ'FÔ'FÑGÔGÐGØŒJ×+Ò+°3Ð+Ñ7Ô7Ð7Ñ7ØÐr7   c              #   ó’  K  — |                       d|¦  «         t          |t          j        ¦  «        r!|j                             |¬¦  «         |V — d S t          |t          j        ¦  «        sJ ‚t          |¦  «        }|j        r&|j	        D ]}|  
                    |¦  «        D ]}|V — ŒŒ|j                             |¬¦  «         d S )Nr£  )ry   r¥  )r‡  rT   rB   r9   rÚ   Úpytest_itemcollectedr:   r   r®  r­  r£  r¬  )r¡   r¶   r±  Úsubnoder�   s        r5   r£  zSession.genitemsñ  sß   è è € Ø�
Š
�:˜tÑ$Ô$Ð$Ý�d�FœKÑ(Ô(ð 
	8ØŒJ×+Ò+°Ð+Ñ6Ô6Ð6ØˆJˆJˆJˆJˆJå˜d¥FÔ$4Ñ5Ô5Ð5Ð5Ð5Ý" 4Ñ(Ô(ˆCØŒzð  Ø"œzð  ð  �GØ!Ÿ]š]¨7Ñ3Ô3ð  ð  ˜Ø˜˜˜˜ð àŒJ×+Ò+°3Ð+Ñ7Ô7Ð7Ð7Ð7r7   rµ   )r©   rª   r«   r{   r¢   rö   rB   Úhookimplr�  r•  r¬  r˜  rÙ   rw   r   r#   r·  rÃ  rÂ  rØ  r«  rÄ  rà  r£  rˆ   r7   r5   r<   r<     sc  € € € € € Ø€Kð
Að 
Að 
Aðð ð ð €V„_˜dÐ#Ñ#Ô#ð4ð 4ñ $Ô#ð4ð €V„_˜dÐ#Ñ#Ô#ð&ð &ñ $Ô#ð&ð 4Ðð*ð *ð *ðð ð ð&	ð 	ð 	ð 	ðð ð ð>(ð (ð (ðð ð ðAð Að Að	ð 	ð 	ðð ð ð,ð ð ð 	ð 	ð 	ðð ð ð88ð 8ð 8ð 8ð 8r7   r<   )1rG  r?  rX   rQ   Ú_pytest._coder‰   rB   Úcollectionsr   ÚMappingMixinrÑ  ÚUserDictr   Ú_pytest.runnerr   r&   rŠ   Ú__file__r�   r[  rK   rs   r_   rb   ÚEXIT_USAGEERRORru   r6   r?   rE   rk   rn   rm   rp   rq   rš   rœ   r±   r³   ÚobjectrÔ   r:   r_  r;   r9   rW   r�  rP   r{   r<   rˆ   r7   r5   ú<module>rô     sI  ðØ LÐ LØ 	€	€	€	Ø 
€
€
€
à €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€ð3Ø:Ð:Ð:Ð:Ð:Ð:Ð:øØð 3ð 3ð 3Ø2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ð3øøøð ,Ð +Ð +Ð +Ð +Ð +à”'—-’- Ô 0Ñ1Ô1×9Ò9Ñ;Ô;€ð €ØÐ ØÐ ØÐ Ø€ØÐ ð/Cð /Cð /Cðd!ð !ð !ð
ð ð ð%ð %ð %ðN'ð 'ð 'ð	%ð 	%ð 	%ð%ð %ð %ðð ð ð ð ð ð.	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ðð ð ð!<ð !<ð !<ð !<ð !<�<ñ !<ô !<ð !<ðHI$ð I$ð I$ð I$ð I$ˆ6ñ I$ô I$ð I$ðV4ð 4ð 4ð 4ð 4�ñ 4ô 4ð 4ðBð ð ð ð �)ñ ô ð ð$9ð 9ð 9ð 9ð 9ˆ;ñ 9ô 9ð 9ð ð  ð  ð  ð  ˆ4ñ  ô  ð  ðD?ð ?ð ?ð ?ð ?ˆiñ ?ô ?ð ?ðð ð ð ð Ð#ñ ô ð ði8ð i8ð i8ð i8ð i8ˆkñ i8ô i8ð i8ð i8ð i8s   œ# £1°1