ó
    EñiÌ@  ã                  óŒ  • S r SSKJr  SSKrSSKJr  SSKrSSKrSSKJ	r	  SSKJ
r
  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK J!r!  SSK J"r"  SSK J#r#  SSK$J%r%  SSK$J&r&  SSK$J'r'  SSK(J)r)  SSK*J+r+  \(       a  SSK,r,\
 " S S5      5       r- " S S5      r.\
\R^                   " S  S!5      5       5       r0 " S" S#5      r1S3S$ jr2S4S% jr3S5S& jr4S6S' jr5S6S( jr6S7S) jr7S8S* jr8S9S+ jr9S:S, jr:S;S- jr;\" S.S/9S<S0 j5       r<\S=S1 j5       r=\S>S2 j5       r>g)?z?Add backward compatibility support for the legacy py path type.é    )ÚannotationsN)ÚPath)ÚFinal)Úfinal)ÚTYPE_CHECKING)ÚSectionWrapper)ÚCache)ÚLEGACY_PATH©Úlegacy_path)ÚConfig)Úhookimpl)ÚPytestPluginManager)Úcheck_ispytest)Úfixture)ÚFixtureRequest)ÚSession)ÚMonkeyPatch)Ú	Collector)ÚItem)ÚNode)ÚHookRecorder)ÚPytester)Ú	RunResult)ÚTerminalReporter)ÚTempPathFactoryc                  ó²  • \ rS rSr% SrSr\R                  rS\S'   \R                  r	S\S'   SS.S;S jjr
\S<S	 j5       r\S<S
 j5       r\S 5       r\S 5       r\R                   S 5       r\S=S j5       rS>S jrS?S jrS?S jrS<S jrS<S jrS<S jrS@S jrS<S jrS<S jrS<S jrSAS?S jjrS<S jrS<S jrSAS<S jjrSBS jr S r!SCS  jr"S! r#S" r$S# r%S$SS%.SDS& jjr&SES' jr'SES( jr(SFS) jr)SFS* jr*SGS+ jr+S, r,SHS- jr-SIS. jr.\/R`                  \/R`                  \4S/ jr1S\S0.SES1 jjr2SES2 jr3S3 r4SS4.SES5 jjr5SJSKS6 jjr6SJSLS7 jjr7SMS8 jr8SMS9 jr9S:r:g)NÚTestdiré)   zÜ
Similar to :class:`Pytester`, but this class works with legacy legacy_path objects instead.

All methods just forward to an internal :class:`Pytester` instance, converting results
to `legacy_path` objects as necessary.
Fr   ÚCLOSE_STDINÚTimeoutExpired©Ú	_ispytestc               ó&   • [        U5        Xl        g ©N)r   Ú	_pytester)ÚselfÚpytesterr#   s      ÚO/home/mande/repo/quber/.venv/lib/python3.13/site-packages/_pytest/legacypath.pyÚ__init__ÚTestdir.__init__7   s   € Ü�yÔ!Ø!�ó    c                ó@   • [        U R                  R                  5      $ )z-Temporary directory where tests are executed.)r   r&   Úpath©r'   s    r)   ÚtmpdirÚTestdir.tmpdir;   s   € ô ˜4Ÿ>™>×.Ñ.Ó/Ð/r,   c                ó@   • [        U R                  R                  5      $ r%   )r   r&   Ú_test_tmprootr/   s    r)   Útest_tmprootÚTestdir.test_tmproot@   s   € ä˜4Ÿ>™>×7Ñ7Ó8Ð8r,   c                ó.   • U R                   R                  $ r%   )r&   Ú_requestr/   s    r)   ÚrequestÚTestdir.requestD   s   € à�~‰~×&Ñ&Ð&r,   c                ó.   • U R                   R                  $ r%   ©r&   Úpluginsr/   s    r)   r<   ÚTestdir.pluginsH   s   € à�~‰~×%Ñ%Ð%r,   c                ó$   • XR                   l        g r%   r;   )r'   r<   s     r)   r<   r=   L   s   € à!(�‰Õr,   c                ó.   • U R                   R                  $ r%   )r&   Ú_monkeypatchr/   s    r)   ÚmonkeypatchÚTestdir.monkeypatchP   s   € à�~‰~×*Ñ*Ð*r,   c                ó8   • U R                   R                  U5      $ )z(See :meth:`Pytester.make_hook_recorder`.)r&   Úmake_hook_recorder)r'   Úpluginmanagers     r)   rD   ÚTestdir.make_hook_recorderT   s   € à�~‰~×0Ñ0°Ó?Ð?r,   c                ó6   • U R                   R                  5       $ )zSee :meth:`Pytester.chdir`.)r&   Úchdirr/   s    r)   rH   ÚTestdir.chdirX   s   € à�~‰~×#Ñ#Ó%Ð%r,   c                ó6   • U R                   R                  5       $ r%   )r&   Ú	_finalizer/   s    r)   ÚfinalizeÚTestdir.finalize\   s   € Ø�~‰~×'Ñ'Ó)Ð)r,   c                ó˜   • U(       a  UR                  S5      (       d  SU-   n[        U R                  R                  " U/UQ70 UD65      $ )zSee :meth:`Pytester.makefile`.Ú.)Ú
startswithr   r&   Úmakefile)r'   ÚextÚargsÚkwargss       r)   rQ   ÚTestdir.makefile_   sB   € æ�s—~‘~ c×*Ñ*ð ˜‘)ˆCÜ˜4Ÿ>™>×2Ò2°3ÐH¸ÒHÀÑHÓIÐIr,   c                óJ   • [        U R                  R                  U5      5      $ )z"See :meth:`Pytester.makeconftest`.)r   r&   Úmakeconftest©r'   Úsources     r)   rW   ÚTestdir.makeconftestk   s   € ä˜4Ÿ>™>×6Ñ6°vÓ>Ó?Ð?r,   c                óJ   • [        U R                  R                  U5      5      $ )zSee :meth:`Pytester.makeini`.)r   r&   ÚmakeinirX   s     r)   r\   ÚTestdir.makeinio   s   € ä˜4Ÿ>™>×1Ñ1°&Ó9Ó:Ð:r,   c                ó8   • U R                   R                  U5      $ )zSee :meth:`Pytester.getinicfg`.)r&   Ú	getinicfgrX   s     r)   r_   ÚTestdir.getinicfgs   ó   € à�~‰~×'Ñ'¨Ó/Ð/r,   c                óJ   • [        U R                  R                  U5      5      $ )z'See :meth:`Pytester.makepyprojecttoml`.)r   r&   ÚmakepyprojecttomlrX   s     r)   rc   ÚTestdir.makepyprojecttomlw   s   € ä˜4Ÿ>™>×;Ñ;¸FÓCÓDÐDr,   c                óL   • [        U R                  R                  " U0 UD65      $ )z See :meth:`Pytester.makepyfile`.)r   r&   Ú
makepyfile©r'   rS   rT   s      r)   rf   ÚTestdir.makepyfile{   s!   € ä˜4Ÿ>™>×4Ò4°dÐE¸fÑEÓFÐFr,   c                óL   • [        U R                  R                  " U0 UD65      $ )z!See :meth:`Pytester.maketxtfile`.)r   r&   Úmaketxtfilerg   s      r)   rj   ÚTestdir.maketxtfile   s!   € ä˜4Ÿ>™>×5Ò5°tÐF¸vÑFÓGÐGr,   Nc                ó8   • U R                   R                  U5      $ )z#See :meth:`Pytester.syspathinsert`.)r&   Úsyspathinsert©r'   r.   s     r)   rm   ÚTestdir.syspathinsertƒ   s   € à�~‰~×+Ñ+¨DÓ1Ð1r,   c                óJ   • [        U R                  R                  U5      5      $ )zSee :meth:`Pytester.mkdir`.)r   r&   Úmkdir©r'   Únames     r)   rq   ÚTestdir.mkdir‡   s   € ä˜4Ÿ>™>×/Ñ/°Ó5Ó6Ð6r,   c                óJ   • [        U R                  R                  U5      5      $ )zSee :meth:`Pytester.mkpydir`.)r   r&   Úmkpydirrr   s     r)   rv   ÚTestdir.mkpydir‹   s   € ä˜4Ÿ>™>×1Ñ1°$Ó7Ó8Ð8r,   c                óJ   • [        U R                  R                  U5      5      $ )z"See :meth:`Pytester.copy_example`.)r   r&   Úcopy_examplerr   s     r)   ry   ÚTestdir.copy_example�   s   € ä˜4Ÿ>™>×6Ñ6°tÓ<Ó=Ð=r,   c                ó8   • U R                   R                  X5      $ )zSee :meth:`Pytester.getnode`.)r&   Úgetnode)r'   ÚconfigÚargs      r)   r|   ÚTestdir.getnode“   s   € à�~‰~×%Ñ% fÓ2Ð2r,   c                ó8   • U R                   R                  U5      $ )z!See :meth:`Pytester.getpathnode`.)r&   Úgetpathnodern   s     r)   r�   ÚTestdir.getpathnode—   s   € à�~‰~×)Ñ)¨$Ó/Ð/r,   c                ó8   • U R                   R                  U5      $ )zSee :meth:`Pytester.genitems`.)r&   Úgenitems)r'   Úcolitemss     r)   r„   ÚTestdir.genitems›   s   € à�~‰~×&Ñ& xÓ0Ð0r,   c                ó8   • U R                   R                  U5      $ )zSee :meth:`Pytester.runitem`.)r&   ÚrunitemrX   s     r)   rˆ   ÚTestdir.runitemŸ   s   € à�~‰~×%Ñ% fÓ-Ð-r,   c                ó<   • U R                   R                  " U/UQ76 $ )z&See :meth:`Pytester.inline_runsource`.)r&   Úinline_runsource)r'   rY   Úcmdlineargss      r)   r‹   ÚTestdir.inline_runsource£   s   € à�~‰~×.Ò.¨vÐD¸ÒDÐDr,   c                ó4   • U R                   R                  " U6 $ )z%See :meth:`Pytester.inline_genitems`.)r&   Úinline_genitems©r'   rS   s     r)   r�   ÚTestdir.inline_genitems§   s   € à�~‰~×-Ò-¨tÐ4Ð4r,   © ©r<   Úno_reraise_ctrlcc               ó:   • U R                   R                  " X1US.6$ )z See :meth:`Pytester.inline_run`.r“   )r&   Ú
inline_run)r'   r<   r”   rS   s       r)   r–   ÚTestdir.inline_run«   s   € à�~‰~×(Ò(ØÐ5Eò
ð 	
r,   c                ó:   • U R                   R                  " U0 UD6$ )z)See :meth:`Pytester.runpytest_inprocess`.)r&   Úrunpytest_inprocessrg   s      r)   r™   ÚTestdir.runpytest_inprocess±   s   € à�~‰~×1Ò1°4ÐB¸6ÑBÐBr,   c                ó:   • U R                   R                  " U0 UD6$ )zSee :meth:`Pytester.runpytest`.)r&   Ú	runpytestrg   s      r)   rœ   ÚTestdir.runpytestµ   s   € à�~‰~×'Ò'¨Ð8°Ñ8Ð8r,   c                ó4   • U R                   R                  " U6 $ )z!See :meth:`Pytester.parseconfig`.)r&   Úparseconfigr�   s     r)   rŸ   ÚTestdir.parseconfig¹   s   € à�~‰~×)Ò)¨4Ð0Ð0r,   c                ó4   • U R                   R                  " U6 $ )z$See :meth:`Pytester.parseconfigure`.)r&   Úparseconfigurer�   s     r)   r¢   ÚTestdir.parseconfigure½   s   € à�~‰~×,Ò,¨dÐ3Ð3r,   c                ó8   • U R                   R                  X5      $ )zSee :meth:`Pytester.getitem`.)r&   Úgetitem)r'   rY   Úfuncnames      r)   r¥   ÚTestdir.getitemÁ   s   € à�~‰~×%Ñ% fÓ7Ð7r,   c                ó8   • U R                   R                  U5      $ )zSee :meth:`Pytester.getitems`.)r&   ÚgetitemsrX   s     r)   r©   ÚTestdir.getitemsÅ   s   € à�~‰~×&Ñ& vÓ.Ð.r,   c                ó6   • U R                   R                  XUS9$ )z"See :meth:`Pytester.getmodulecol`.)Ú
configargsÚwithinit)r&   Úgetmodulecol)r'   rY   r¬   r­   s       r)   r®   ÚTestdir.getmodulecolÉ   s#   € à�~‰~×*Ñ*Ø°Hð +ð 
ð 	
r,   c                ó8   • U R                   R                  X5      $ )z%See :meth:`Pytester.collect_by_name`.)r&   Úcollect_by_name)r'   Úmodcolrs   s      r)   r±   ÚTestdir.collect_by_nameÏ   s   € à�~‰~×-Ñ-¨fÓ;Ð;r,   c                ó>   • U R                   R                  " XX440 UD6$ )zSee :meth:`Pytester.popen`.)r&   Úpopen)r'   ÚcmdargsÚstdoutÚstderrÚstdinÚkws         r)   rµ   ÚTestdir.popenÓ   s    € ð �~‰~×#Ò# G°VÑIÀbÑIÐIr,   ©Útimeoutr¹   c               ó:   • U R                   R                  " X1US.6$ )zSee :meth:`Pytester.run`.r¼   )r&   Úrun)r'   r½   r¹   r¶   s       r)   r¿   ÚTestdir.runÞ   s   € à�~‰~×!Ò! 7À5ÒIÐIr,   c                ó8   • U R                   R                  U5      $ )zSee :meth:`Pytester.runpython`.)r&   Ú	runpython)r'   Úscripts     r)   rÂ   ÚTestdir.runpythonâ   ra   r,   c                ó8   • U R                   R                  U5      $ )z!See :meth:`Pytester.runpython_c`.)r&   Úrunpython_c)r'   Úcommands     r)   rÆ   ÚTestdir.runpython_cæ   s   € à�~‰~×)Ñ)¨'Ó2Ð2r,   )r½   c               ó:   • U R                   R                  " USU06$ )z*See :meth:`Pytester.runpytest_subprocess`.r½   )r&   Úrunpytest_subprocess)r'   r½   rS   s      r)   rÊ   ÚTestdir.runpytest_subprocessê   s   € à�~‰~×2Ò2°DÐJÀ'ÑJÐJr,   c                ó4   • U R                   R                  XS9$ )z"See :meth:`Pytester.spawn_pytest`.©Úexpect_timeout)r&   Úspawn_pytest)r'   ÚstringrÎ   s      r)   rÏ   ÚTestdir.spawn_pytestî   s   € à�~‰~×*Ñ*¨6Ð*ÐQÐQr,   c                ó4   • U R                   R                  XS9$ )zSee :meth:`Pytester.spawn`.rÍ   )r&   Úspawn)r'   ÚcmdrÎ   s      r)   rÓ   ÚTestdir.spawnò   s   € à�~‰~×#Ñ# CÐ#ÐGÐGr,   c                ó$   • SU R                   < S3$ )Nz	<Testdir Ú>)r0   r/   s    r)   Ú__repr__ÚTestdir.__repr__ö   s   € Ø˜4Ÿ;™;™/¨Ð+Ð+r,   c                ó,   • [        U R                  5      $ r%   )Ústrr0   r/   s    r)   Ú__str__ÚTestdir.__str__ù   s   € Ü�4—;‘;ÓÐr,   )r&   )r(   r   r#   ÚboolÚreturnÚNone©rß   r
   )rß   r   )rß   r   )rß   rà   )rY   rÛ   rß   r   r%   )r}   r   rß   úItem | Collector | None)r…   zlist[Item | Collector]rß   z
list[Item])r”   rÞ   )rß   r   )rß   r   )Ú	test_func)r’   F)r²   r   rs   rÛ   rß   râ   )g      $@)rÐ   rÛ   rÎ   Úfloatrß   úpexpect.spawn)rÔ   rÛ   rÎ   rä   rß   rå   )rß   rÛ   );Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__test__r   r    Ú__annotations__r!   r*   Úpropertyr0   r4   r8   r<   ÚsetterrA   rD   rH   rL   rQ   rW   r\   r_   rc   rf   rj   rm   rq   rv   ry   r|   r�   r„   rˆ   r‹   r�   r–   r™   rœ   rŸ   r¢   r¥   r©   r®   r±   Ú
subprocessÚPIPErµ   r¿   rÂ   rÆ   rÊ   rÏ   rÓ   rØ   rÜ   Ú__static_attributes__r’   r,   r)   r   r   )   s£  ‡ ñð €Hà!×-Ñ-€K�Ó-Ø$×3Ñ3€N�EÓ3à@E÷ "ð ó0ó ð0ð ó9ó ð9ð ñ'ó ð'ð ñ&ó ð&ð ‡^�^ñ)ó ð)ð ó+ó ð+ô@ô&ô*ô
Jô@ô;ô0ôEôGôHö2ô7ô9ö>ô3ò0ô1ò.òEò5ð )+ÀU÷ 
ôCô9ô1ô4ô8ò/ô
ô<ð �‰Ø�‰Øô	Jð %)°÷ Jô0ò3ð 37÷ KöRöHô,÷ r,   r   c                  ó2   • \ rS rSr\\SS j5       5       rSrg)ÚLegacyTestdirPluginéý   c                ó   • [        U SS9$ )zÚ
Identical to :fixture:`pytester`, and provides an instance whose methods return
legacy ``LEGACY_PATH`` objects instead when applicable.

New code should avoid using :fixture:`testdir` in favor of :fixture:`pytester`.
Tr"   )r   )r(   s    r)   ÚtestdirÚLegacyTestdirPlugin.testdirþ   s   € ô �x¨4Ñ0Ð0r,   r’   N)r(   r   rß   r   )ræ   rç   rè   ré   Ústaticmethodr   rö   rñ   r’   r,   r)   ró   ró   ý   s   † ØØó1ó ó ó1r,   ró   c                  óX   • \ rS rSr% SrS\S'   SS.     SS jjrSSS jjrSS	 jrS
r	g)ÚTempdirFactoryi
  zýBackward compatibility wrapper that implements ``py.path.local``
for :class:`TempPathFactory`.

.. note::
    These days, it is preferred to use ``tmp_path_factory``.

    :ref:`About the tmpdir and tmpdir_factory fixtures<tmpdir and tmpdir_factory>`.

r   Ú_tmppath_factoryFr"   c               ó&   • [        U5        Xl        g r%   )r   rû   )r'   Útmppath_factoryr#   s      r)   r*   ÚTempdirFactory.__init__  s   € ô 	�yÔ!Ø /Õr,   c                óf   • [        U R                  R                  X5      R                  5       5      $ )zOSame as :meth:`TempPathFactory.mktemp`, but returns a ``py.path.local`` object.)r   rû   ÚmktempÚresolve)r'   ÚbasenameÚnumbereds      r)   r   ÚTempdirFactory.mktemp  s'   € ä˜4×0Ñ0×7Ñ7¸ÓK×SÑSÓUÓVÐVr,   c                ód   • [        U R                  R                  5       R                  5       5      $ )zTSame as :meth:`TempPathFactory.getbasetemp`, but returns a ``py.path.local`` object.)r   rû   Úgetbasetempr  r/   s    r)   r  ÚTempdirFactory.getbasetemp#  s%   € ä˜4×0Ñ0×<Ñ<Ó>×FÑFÓHÓIÐIr,   )rû   N)rý   r   r#   rÞ   rß   rà   )T)r  rÛ   r  rÞ   rß   r
   rá   )
ræ   rç   rè   ré   rê   rì   r*   r   r  rñ   r’   r,   r)   rú   rú   
  s?   ‡ ñð &Ó%ð FKñ0Ø.ð0Ø>Bð0à	õ0öW÷Jr,   rú   c                  óX   • \ rS rSr\\" SS9SS j5       5       r\\S	S j5       5       rSrg)
ÚLegacyTmpdirPlugini(  Úsession)Úscopec                ó.   • U R                   R                  $ )zFReturn a :class:`pytest.TempdirFactory` instance for the test session.)r}   Ú_tmpdirhandler)r8   s    r)   Útmpdir_factoryÚ!LegacyTmpdirPlugin.tmpdir_factory)  s   € ð
 �~‰~×,Ñ,Ð,r,   c                ó   • [        U 5      $ )aõ  Return a temporary directory (as `legacy_path`_ object)
which is unique to each test function invocation.
The temporary directory is created as a subdirectory
of the base temporary directory, with configurable retention,
as discussed in :ref:`temporary directory location and retention`.

.. note::
    These days, it is preferred to use ``tmp_path``.

    :ref:`About the tmpdir and tmpdir_factory fixtures<tmpdir and tmpdir_factory>`.

.. _legacy_path: https://py.readthedocs.io/en/latest/path.html
r   )Útmp_paths    r)   r0   ÚLegacyTmpdirPlugin.tmpdir0  s   € ô  ˜8Ó$Ð$r,   r’   N)r8   r   rß   rú   )r  r   rß   r
   )	ræ   rç   rè   ré   rø   r   r  r0   rñ   r’   r,   r)   r	  r	  (  s=   † ØÙ�9Ñó-ó ó ð-ð
 Øó%ó ó ó%r,   r	  c                ó6   • [        U R                  U5      5      $ )zsReturn a directory path object with the given name.

Same as :func:`mkdir`, but returns a legacy py path instance.
)r   rq   rr   s     r)   ÚCache_makedirr  C  s   € ô
 �t—z‘z $Ó'Ó(Ð(r,   c                ó,   • [        U R                  5      $ )zO(deprecated) The file system path of the test module which collected this test.©r   r.   r/   s    r)   ÚFixtureRequest_fspathr  K  ó   € ä�t—y‘yÓ!Ð!r,   c                ó,   • [        U R                  5      $ )z€The directory from which pytest was invoked.

Prefer to use ``startpath`` which is a :class:`pathlib.Path`.

:type: LEGACY_PATH
©r   Ú	startpathr/   s    r)   ÚTerminalReporter_startdirr  P  ó   € ô �t—~‘~Ó&Ð&r,   c                óR   • [        [        U R                  R                  5      5      $ )z¨The directory from which pytest was invoked.

Prefer to use :attr:`invocation_params.dir <InvocationParams.dir>`,
which is a :class:`pathlib.Path`.

:type: LEGACY_PATH
)r   rÛ   Úinvocation_paramsÚdirr/   s    r)   ÚConfig_invocation_dirr!  Z  s    € ô ”s˜4×1Ñ1×5Ñ5Ó6Ó7Ð7r,   c                ó>   • [        [        U R                  5      5      $ )z�The path to the :ref:`rootdir <rootdir>`.

Prefer to use :attr:`rootpath`, which is a :class:`pathlib.Path`.

:type: LEGACY_PATH
)r   rÛ   Úrootpathr/   s    r)   ÚConfig_rootdirr$  e  s   € ô ”s˜4Ÿ=™=Ó)Ó*Ð*r,   c                ód   • U R                   (       a  [        [        U R                   5      5      $ S$ )z‘The path to the :ref:`configfile <configfiles>`.

Prefer to use :attr:`inipath`, which is a :class:`pathlib.Path`.

:type: Optional[LEGACY_PATH]
N)Úinipathr   rÛ   r/   s    r)   ÚConfig_inifiler'  o  s#   € ð .2¯\¯\Œ;”s˜4Ÿ<™<Ó(Ó)ÐC¸tÐCr,   c                ó,   • [        U R                  5      $ )z{The path from which pytest was invoked.

Prefer to use ``startpath`` which is a :class:`pathlib.Path`.

:type: LEGACY_PATH
r  r/   s    r)   ÚSession_startdirr)  y  r  r,   c           	     ó(  • US:X  ay  U R                   c   eU R                   R                  n[        U[        5      (       a  [        R
                  " U5      OUnU Vs/ s H  n[        [        XF-  5      5      PM     sn$ [        SU 3U5      es  snf )NÚpathlistzunknown configuration type: )r&  ÚparentÚ
isinstancerÛ   ÚshlexÚsplitr   Ú
ValueError)r'   rs   ÚtypeÚvalueÚdpÚinput_valuesÚxs          r)   ÚConfig__getini_unknown_typer6  ƒ  s€   € ØˆzÓà�|‰|Ñ'Ð'Ð'Ø�\‰\× Ñ ˆÜ-7¸¼s×-CÑ-C”u—{’{ 5Ô)ÈˆÙ2>Ó?²,¨Q”œC ¡›KÖ(±,Ñ?Ð?äÐ7¸°vÐ>ÀÓFÐFùò @s   Á Bc                ó,   • [        U R                  5      $ )z4(deprecated) returns a legacy_path copy of self.pathr  r/   s    r)   ÚNode_fspathr8  Ž  r  r,   c                ó$   • [        U5      U l        g r%   )r   r.   )r'   r2  s     r)   ÚNode_fspath_setr:  “  s   € Ü�U“€D…Ir,   T)Útryfirstc                ó¬  • [        5       nU R                  UR                  5        UR                  [        S[
        SS9  UR                  [        S[        [        5      SS9  UR                  [        S[        [        5      SS9  UR                  [        S[        [        5      SS9  UR                  [        S[        [        5      SS9  UR                  [        S[        [        5      SS9  UR                  [        S[        [         5      SS9  UR                  [        S	["        5        UR                  [$        S[        [&        [(        5      SS9  g
)zLMonkeypatch legacy path attributes in several classes, as early as possible.ÚmakedirF©ÚraisingÚfspathÚstartdirÚinvocation_dirÚrootdirÚinifileÚ_getini_unknown_typeN)r   Úadd_cleanupÚundoÚsetattrr	   r  r   rí   r  r   r  r   r!  r$  r'  r   r)  r6  r   r8  r:  )Úearly_configÚmps     r)   Úpytest_load_initial_conftestsrK  —  s  € ô 
‹€BØ×Ñ˜RŸW™WÔ%ð ‡J�JŒu�i¤¸€JÑ>ð ‡J�JŒ~˜x¬Ô2GÓ)HÐRW€JÑXð ‡J�JÜ˜*¤hÔ/HÓ&IÐSXð ñ ð
 ‡J�JŒvÐ'¬Ô2GÓ)HÐRW€JÑXØ‡J�JŒv�y¤(¬>Ó":ÀE€JÑJØ‡J�JŒv�y¤(¬>Ó":ÀE€JÑJð ‡J�JŒw˜
¤HÔ-=Ó$>È€JÑNð ‡J�JŒvÐ-Ô/JÔKð ‡J�JŒt�Xœx¬´_ÓEÈu€JÒUr,   c                óB  • U R                   R                  S5      (       ao  [        5       nU R                  UR                  5         U R
                  n[        USS9nUR                  U SUSS9  U R                   R                  [        S5        gg! [         a     N.f = f)	zKInstalls the LegacyTmpdirPlugin if the ``tmpdir`` plugin is also installed.r0   Tr"   r  Fr>  zlegacypath-tmpdirN)rE   Ú
has_pluginr   rF  rG  Ú_tmp_path_factoryrú   rH  ÚAttributeErrorÚregisterr	  )r}   rJ  Útmp_path_factoryr  s       r)   Úpytest_configurerR  ·  s›   € ð ×Ñ×&Ñ& x×0Ñ0Ü‹]ˆØ×Ñ˜2Ÿ7™7Ô#ð	PØ%×7Ñ7Ðô
 ,Ð,<ÈÑMˆNØ�J‰J�vÐ/°ÈˆJÑOà×Ñ×%Ñ%Ô&8Ð:MÕNð# 1øô ó 	áð	ús   ÁB Â
BÂBc                óš   • XR                  S5      L nU(       a2  UR                  [        5      (       d  UR                  [        S5        g g g )Nr(   zlegacypath-pytester)Ú
get_pluginÚis_registeredró   rP  )ÚpluginÚmanagerÚis_pytesters      r)   Úpytest_plugin_registeredrY  Î  sE   € ð ×.Ñ.¨zÓ:Ð:€KÞ˜7×0Ñ0Ô1D×EÑEØ×ÑÔ,Ð.CÕDð F€{r,   )r'   r	   rs   rÛ   rß   r
   )r'   r   rß   r
   )r'   r   rß   r
   )r'   r   rß   r
   )r'   r   rß   zLEGACY_PATH | None)r'   r   rß   r
   )rs   rÛ   r1  rÛ   r2  zstr | list[str])r'   r   rß   r
   )r'   r   r2  r
   rß   rà   )rI  r   rß   rà   )r}   r   rß   rà   )rV  ÚobjectrW  r   rß   rà   )?rê   Ú
__future__r   ÚdataclassesÚpathlibr   r.  rï   Útypingr   r   r   Ú	iniconfigr   Ú_pytest.cacheproviderr	   Ú_pytest.compatr
   r   Ú_pytest.configr   r   r   Ú_pytest.deprecatedr   Ú_pytest.fixturesr   r   Ú_pytest.mainr   Ú_pytest.monkeypatchr   Ú_pytest.nodesr   r   r   Ú_pytest.pytesterr   r   r   Ú_pytest.terminalr   Ú_pytest.tmpdirr   Úpexpectr   ró   Ú	dataclassrú   r	  r  r  r  r!  r$  r'  r)  r6  r8  r:  rK  rR  rY  r’   r,   r)   Ú<module>rm     s:  ðá Eå "ã Ý Û Û Ý Ý Ý  å $å 'Ý &Ý &Ý !Ý #Ý .Ý -Ý $Ý +Ý  Ý +Ý #Ý Ý Ý )Ý %Ý &Ý -Ý *ö Ûð ÷P ð P ó ðP ÷f
1ñ 
1ð Ø×Ñ÷Jð Jó ó ðJ÷8%ñ %ô6)ô"ô
'ô8ô+ôDô'ôGô"ô
ñ 
�4ÑóVó ðVð> 
óOó 
ðOð, 
óEó 
ñEr,   