§ |<ˆj�Sãó—dZddlZddlZddlZddlmZddlmZddlmZddlm Z ddlm Z ddlm Z dd lm Z dd lm Z d d lmZd d lmZd dlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddl m!Z!ddl m"Z"ddl#m$Z$ddl%m&Z&ddl'm(Z(ddl)m*Z*dZ+dZ,eej-Gd„d ¦«¦«¦«Z.Gd!„d"¦«Z/Gd#„d$¦«Z0Gd%„d&¦«Z1Gd'„d(¦«Z2d)ed*dfd+„Z3d,ed*e e e4effd-„Z5ed.¬/¦«d,ed*dfd0„¦«Z6e!d1e"d*e.fd2„¦«Z7d,ed*e e8fd3„Z9d,ed4e$d*e4fd5„Z:dS)6z%Implementation of the cache provider.éN)ÚPath)ÚDict)Ú Generator)ÚIterable)ÚList)ÚOptional)ÚSet)ÚUnioné)Úresolve_from_str)Úrm_rf)Ú CollectReport)Únodes)ÚTerminalWriter)Úfinal)ÚConfig)ÚExitCode)Úhookimpl)ÚParser)Úcheck_ispytest)Úfixture)ÚFixtureRequest)ÚSession)ÚFile)ÚPackage)Ú TestReporta.# pytest cache directory # This directory contains data from the pytest's cache plugin, which provides the `--lf` and `--ff` options, as well as the `cache` fixture. **Do not** commit this to version control. See [the docs](https://docs.pytest.org/en/stable/how-to/cache.html) for more information. s¿Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by pytest. # For information about cache directory tags, see: # https://bford.info/cachedir/spec.html c ór—eZdZUdZejd¬¦«Zeed<ejd¬¦«Z e ed<dZ dZ ddœd ed e d e d d fd„Zeddœd e d e d dfd„¦«Zedd ed e d d fd„¦«Zeddœd e d e d efd„¦«Zddœded e ded d fd„Zded efd„Zded efd„Zdefd„Zdeded d fd„Zdd„Zd S)ÚCachez Instance of the `cache` fixture.F)ÚreprÚ _cachedirÚ_configÚdÚv©Ú _ispytestÚcachedirÚconfigr%ÚreturnNcó@—t|¦«||_||_dS©N)rr r!)Úselfr&r'r%s úg/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/_pytest/cacheprovider.pyÚ__init__zCache.__init__Cs$€õ �yÑ!Ô!Ð!Ø!ˆŒØˆŒ ˆ ˆ ócóê—t|¦«| |d¬¦«}| d¦«r+| ¦«r| |d¬¦«|||d¬¦«S)zHCreate the Cache instance for a Config. :meta private: Tr$Ú cacheclear)rÚcache_dir_from_configÚ getoptionÚis_dirÚ clear_cache)Úclsr'r%r&s r,Ú for_configzCache.for_configJs~€õ �yÑ!Ô!Ð!Ø×,Ò,¨V¸tÐ,ÑDÔDˆØ × Ò ˜LÑ )Ô )ð 6¨h¯oªoÑ.?Ô.?ð 6Ø �OŠO˜H°ˆOÑ 5Ô 5Ð 5؈s�8˜V¨tÐ4Ñ4Ô4Ð4r.có–—t|¦«|j|jfD]*}||z }| ¦«rt |¦«Œ+dS)zfClear the sub-directories used to hold cached directories and values. :meta private: N)rÚ_CACHE_PREFIX_DIRSÚ_CACHE_PREFIX_VALUESr3r )r5r&r%Úprefixr"s r,r4zCache.clear_cacheVs\€õ �yÑ!Ô!Ð!ØÔ-¨sÔ/GÐHð ð ˆFؘ6Ñ!ˆAØ�xŠx‰zŒzð Ý�a‘”�øð ð r.cóp—t|¦«t| d¦«|j¦«S)zRGet the path to the cache directory for a Config. :meta private: Ú cache_dir)rr ÚgetiniÚrootpath)r'r%s r,r1zCache.cache_dir_from_configbs0€õ �yÑ!Ô!Ð!Ý § ¢ ¨kÑ :Ô :¸F¼OÑLÔLÐLr.ÚfmtÚargsc ó¬—t|¦«ddl}ddlm}| ||r |jdi|¤Žn|¦«|jjd¬¦«dS)z7Issue a cache warning. :meta private: rN)ÚPytestCacheWarningé)Ú stacklevel©)rÚwarningsÚ_pytest.warning_typesrBÚwarnÚformatr!Úhook)r+r?r%r@rFrBs r,rHz Cache.warnks‡€õ �yÑ!Ô!Ð!؈ˆˆØ<Ð<Ð<Ð<Ð<Ð<à� Š Ø Ð °TÐB˜z˜sœzÐ1Ð1¨DÐ1Ð1Ð1¸sÑ CÔ CØ ŒLÔ Øð ñ ô ð ð ð r.Únamecóà—t|¦«}t|j¦«dkrtd¦«‚|j |j|¦«}| dd¬¦«|S)aãReturn a directory path object with the given name. If the directory does not yet exist, it will be created. You can use it to manage files to e.g. store/retrieve database dumps across test sessions. .. versionadded:: 7.0 :param name: Must be a string not containing a ``/`` separator. Make sure the name contains your plugin or application identifiers to prevent clashes with other cache users. r z.name is not allowed to contain path separatorsT©Úexist_okÚparents)rÚlenÚpartsÚ ValueErrorr Újoinpathr8Úmkdir)r+rKÚpathÚress r,rTz Cache.mkdirzsf€õ�D‰zŒzˆÝ ˆtŒz‰?Œ?˜QÒ Ð ÝÐMÑNÔNÐ NØŒn×%Ò% dÔ&=¸tÑDÔDˆØ � Š ˜4¨ˆ Ñ.Ô.Ð.؈ r.Úkeycó\—|j |jt|¦«¦«Sr*)r rSr9r)r+rWs r,Ú _getvaluepathzCache._getvaluepath�s#€ØŒ~×&Ò& tÔ'@Å$ÀsÁ)Ä)ÑLÔLÐLr.cóê—| |¦«} | dd¬¦«5}tj|¦«cddd¦«S#1swxYwYdS#tt f$r|cYSwxYw)aœReturn the cached value for the given key. If no value was yet cached or the value cannot be read, the specified default is returned. :param key: Must be a ``/`` separated value. Usually the first name is the name of your plugin or your application. :param default: The value to return in case of a cache-miss or invalid cache value. ÚrúUTF-8©ÚencodingN)rYÚopenÚjsonÚloadrRÚOSError)r+rWÚdefaultrUÚfs r,Úgetz Cache.get’sÇ€ð×!Ò! #Ñ&Ô&ˆð Ø—’˜3¨�Ñ1Ô1ð $°QÝ”y ‘|”|ð $ð $ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $øå�GÐ$ð ð ð ØˆNˆNˆNð øøøs4—A®AÁ AÁAÁAÁAÁAÁA2Á1A2Úvaluecó”—| |¦«} |j ¦«rd}n5|j ¦«}|j dd¬¦«n5#t $r(}| d|›d|›�d¬¦«Yd}~dSd}~wwxYw|s| ¦«tj |dd¬ ¦«} |  d d ¬ ¦«}|5|  |¦«ddd¦«dS#1swxYwYdS#t $r(}| d |›d|›�d¬¦«Yd}~dSd}~wwxYw)aNSave value for the given key. :param key: Must be a ``/`` separated value. Usually the first name is the name of your plugin or your application. :param value: Must be of any combination of basic python types, including nested types like lists of dictionaries. TrMzcould not create cache path z: r$NFé)Ú ensure_asciiÚindentÚwr\r]zcache could not write path ) rYÚparentr3r ÚexistsrTrbrHÚ_ensure_supporting_filesr`Údumpsr_Úwrite)r+rWrfrUÚcache_dir_exists_alreadyÚexcÚdatards r,Úsetz Cache.set¥s€ð×!Ò! #Ñ&Ô&ˆð ØŒ{×!Ò!Ñ#Ô#ð ?Ø+/Ð(Ð(à+/¬>×+@Ò+@Ñ+BÔ+BÐ(Ø” ×!Ò!¨4¸Ð!Ñ>Ô>Ð>øøÝð ð ð Ø �IŠIØ<¨tÐ<Ð<°sÐ<Ð<Øð ñ ô ð ð ˆFˆFˆFˆFˆFøøøøð  øøøð (ð ,Ø × )Ò )Ñ +Ô +Ð +ÝŒz˜%¨e¸AÐ>Ñ>Ô>ˆð Ø— ’ ˜#¨� Ñ0Ô0ˆAðð ð Ø—’˜‘ ” � ð ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð øõ ð ð ð Ø �IŠIØ;¨dÐ;Ð;°cÐ;Ð;Øð ñ ô ð ð ð ð ð ð ð øøøøð øøøsB—AA)Á) BÁ3BÂBà DÃ%DÄD ÄD Ä EÄEÅEcó —|jdz }| td¬¦«|j d¦«}d}| |d¬¦«|j d¦«}| t ¦«dS)zOCreate supporting files in the cache dir that are not really part of the cache.z README.mdr\r]z .gitignorez%# Created by pytest automatically. * z CACHEDIR.TAGN)r Ú write_textÚREADME_CONTENTrSÚ write_bytesÚCACHEDIR_TAG_CONTENT)r+Ú readme_pathÚgitignore_pathÚmsgÚcachedir_tag_paths r,rnzCache._ensure_supporting_filesÊs‹€à”n {Ñ2ˆ Ø×Ò�~¸ÐÑ@Ô@Ð@àœ×0Ò0°Ñ>Ô>ˆØ7ˆØ×!Ò! #°Ð!Ñ8Ô8Ð8à œN×3Ò3°NÑCÔCÐØ×%Ò%Õ&:Ñ;Ô;Ð;Ð;Ð;r.)F©r(N)Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú dataclassesÚfieldr rÚ__annotations__r!rr8r9Úboolr-Ú classmethodr6r4Ú staticmethodr1ÚstrÚobjectrHrTrYrertrnrEr.r,rr5s\€€€€€€ð+Ð*à'�kÔ'¨UÐ3Ñ3Ô3€IˆtÐ3Ð3Ñ3Ø'�kÔ'¨UÐ3Ñ3Ô3€GˆVÐ3Ð3Ñ3ðÐðÐðDIðððØðØ&,ðØ<@ðà ðððððØ=Bð 5ð 5ð 5 ð 5°dð 5Àwð 5ð 5ð 5ñ„[ð 5ðð ð  4ð °Dð ÀTð ð ð ñ„[ð ðØCHðMðMðM fðM¸DðMÈTðMðMðMñ„\ðMð38ð  ð  ð  ˜ð  ¨4ð  Àð  ÈDð  ð  ð  ð  ð˜#ð $ððððð*M ðM¨ðMðMðMðMð�sððððð&#�sð# 6ð#¨dð#ð#ð#ð#ðJ <ð <ð <ð <ð <ð .sort_keyæs3ø€å˜d¥GÑ,Ô,ð%Øœ9Ô+�D�Dàœ9�DؘxÐ'Ð'r.T©rWÚreversec3ó*•K—|] }|j‰vV—ŒdSr*©Únodeid)Ú.0ÚxÚ lastfaileds €r,ú zALFPluginCollWrapper.pytest_make_collect_report..þs*øèè€ÐFÐF¸!˜qœx¨:Ð5ÐFÐFÐFÐFÐFÐFr.zlfplugin-collskipcóŽ•—g|]A}|j‰vs4‰ |j¦«st|tj¦«¯?|‘ŒBSrE)ržÚ isinitpathrUr—rÚ Collector)rŸr r¡Úsessions €€r,ú zBLFPluginCollWrapper.pytest_make_collect_report..s^ø€ðððàØ”x :Ð-Ð-à×)Ò)¨!¬&Ñ1Ô1ð.õ" !¥U¤_Ñ5Ô5ð .ðà-Ð-Ð-r.)r—rrÚ get_resultr�Ú_last_failed_pathsr rÚItemr¥r†ÚsortedÚresultrrUr¡r�Úanyr'Ú pluginmanagerÚregisterÚLFPluginCollSkipfilesr¦) r+r“ÚoutrVr™r¬r¡r˜r¦s @@@r,Úpytest_make_collect_reportz.LFPluginCollWrapper.pytest_make_collect_reportÜs¹øøøèè€å �i¥'­7Ð!3Ñ 4Ô 4ð1 Ø�%�%ˆCØ!$§¢Ñ!1Ô!1ˆCð”}Ô7ˆHð (�u¥U¤Zµ´Ð%@ÔAð (Ådð (ð (ð (ð (ð (ð (õ Ø” ØØðñôˆCŒJð ˆFå ˜ ¥4Ñ (Ô (ð ØŒ~ ¤Ô!AÐAÐAØ�e�e�Ø—n’nÑ&Ô&�Øœ�Ø!œ]Ô5� ðÔ;ð@ÝÐFÐFÐFÐF¸vÐFÑFÔFÑFÔFðØ˜Ø”MÔ(Ô6×?Ò?Ý-¨d¬mÑ<Ô<Ð>Qñôðð<@�DÔ8à#Ô+�ðððððà#ðñô��q�q�q‘ ð�Ø ˆˆˆˆˆr.©r�rŽr(N)rr€r�r-rrr¥r²rEr.r,rŒrŒ×s_€€€€€ð5ð5ð5ð5ð€X˜$ÐÑÔð3°E´Oð3ð3ð3ñ Ôð3ð3ð3r.rŒcóL—eZdZdd„Zedejdeefd„¦«Z dS) r°r�rŽr(Ncó—||_dSr*)r�r‘s r,r-zLFPluginCollSkipfiles.__init__s €Ø ˆŒ ˆ ˆ r.r“cóÚ—t|t¦«rUt|t¦«s@|j|jjvr-|jxjdz c_t|jddg¬¦«SdS)Nr Úpassed)Úlongreprr¬) r—rrrUr�r©Ú_skipped_filesrrž)r+r“s r,r²z0LFPluginCollSkipfiles.pytest_make_collect_reportsy€õ �i¥Ñ &Ô &ð ­z¸)ÅWÑ/MÔ/Mð ØŒ~ T¤]Ô%EÐEÐEØ” Ð,Ô,°Ñ1Ð,Ô,å$ØÔ$ h¸Àbðñôððˆtr.r³) rr€r�r-rrr¥rrr²rEr.r,r°r°s_€€€€€ð!ð!ð!ð!ðð Øœð à �-Ô ð ð ð ñ„Xð ð ð r.r°cóÞ—eZdZdZdeddfd„Zdeefd„Zde e fd„Z de ddfd „Z deddfd „Zed d ¬ ¦«ded eejdedfd„¦«Zdeddfd„ZdS)rŽz;Plugin which implements the --lf (run last-failing) option.r'r(Nc󆇗‰|_d}tˆfd„|D¦«¦«|_‰jsJ‚‰j di¦«|_d|_d|_d|_‰  d¦«rC|  ¦«|_ ‰j   t|¦«d¦«dSdS)N)ÚlfÚ failedfirstc3óB•K—|]}‰ |¦«V—ŒdSr*)r2)rŸrWr's €r,r¢z$LFPlugin.__init__..-s1øèè€ÐGÐG°C˜&×*Ò*¨3Ñ/Ô/ÐGÐGÐGÐGÐGÐGr.úcache/lastfailedrr¼zlfplugin-collwrapper)r'r­ÚactiveÚcacherer¡Ú_previously_failed_countÚ_report_statusr¹r2Úget_last_failed_pathsr©r®r¯rŒ)r+r'Ú active_keyss ` r,r-zLFPlugin.__init__*sÚø€ØˆŒ Ø)ˆ ÝÐGÐGÐGÐG¸;ÐGÑGÔGÑGÔGˆŒ ØŒ|ÐЈ|Ø+1¬<×+;Ò+;Ðz1LFPlugin.get_last_failed_paths..Cs%€Ð0Ð0Ð0�a Q§X¢X¡Z¤ZÐ0�Ð0Ð0Ð0r.)r'r>rtr¡ÚsplitÚaddÚupdaterO)r+r>r¬ržrUs r,rÄzLFPlugin.get_last_failed_paths:s€€ð”;Ô'ˆÝ‘”ˆØ”oð (ð (ˆFؘfŸlšl¨4Ñ0Ô0°Ô3Ñ3ˆDØ �JŠJ�tÑ Ô Ð Ø �MŠM˜$œ,Ñ 'Ô 'Ð 'Ð 'Ø0Ð0˜6Ð0Ñ0Ô0Ð0r.cód—|jr(|j d¦«dkr d|jzSdS)NÚverboserzrun-last-failure: %s)rÀr'r2rÃ)r+s r,Úpytest_report_collectionfinishz'LFPlugin.pytest_report_collectionfinishEs:€Ø Œ;ð @˜4œ;×0Ò0°Ñ;Ô;¸qÒ@Ð@Ø)¨DÔ,?Ñ?Ð ?؈tr.Úreportcó¬—|jdkr|js|jr"|j |jd¦«dS|jrd|j|j<dSdS)NÚcallT)Úwhenr·Úskippedr¡ÚpopržÚfailed)r+rÐs r,Úpytest_runtest_logreportz!LFPlugin.pytest_runtest_logreportJse€Ø ŒK˜6Ò !Ð ! f¤mÐ !¸¼Ð !Ø ŒO× Ò  ¤ ¨tÑ 4Ô 4Ð 4Ð 4Ð 4Ø Œ]ð 2Ø-1ˆDŒO˜FœMÑ *Ð *Ð *ð 2ð 2r.cóî—|jdv}|rZ|j|jvrJ|j |j¦«|j d„|jD¦«¦«dSdSd|j|j<dS)N)r·rÔc3ó(K—|] }|jdfV—ŒdS)TNr�©rŸÚitems r,r¢z0LFPlugin.pytest_collectreport..Us)èè€Ð&UÐ&U¸t¨¬ °TÐ':Ð&UÐ&UÐ&UÐ&UÐ&UÐ&Ur.T)Úoutcomeržr¡rÕrÌr¬)r+rÐr·s r,Úpytest_collectreportzLFPlugin.pytest_collectreportPs‰€Ø”Ð#8Ð8ˆØ ð 2ØŒ} ¤Ð/Ð/Ø”×#Ò# F¤MÑ2Ô2Ð2Ø”×&Ò&Ð&UÐ&UÀvÄ}Ð&UÑ&UÔ&UÑUÔUÐUÐUÐUð0Ð/ð.2ˆDŒO˜FœMÑ *Ð *Ð *r.T©r’ÚtryfirstÚitems©NNNc#ó¾K—dV—|jsdS|j�rTg}g}|D];}|j|jvr| |¦«Œ&| |¦«ŒÑ?Ô?À6ÒIÐIØÐ#Ô#Ð'?Ñ?Ð#Ô#Ø” ×-Ò-°E¸!¸!¸!´HÐ-Ñ=Ô=Ð=Ø��a�a�a‘��àÐ#Ô#Ð'?Ñ?Ð#Ô#Ð#Ð#r.r¦có—|j}| d¦«st|d¦«rdS|j€J‚|j di¦«}||jkr"|j d|j¦«dSdS)NÚ cacheshowÚ workerinputr¿)r'r2ÚhasattrrÁrer¡rt)r+r¦r'Úsaved_lastfaileds r,Úpytest_sessionfinishzLFPlugin.pytest_sessionfinish�s’€Ø”ˆØ × Ò ˜KÑ (Ô (ð ­G°F¸MÑ,JÔ,Jð Ø ˆFàŒ|Ð'Ð'Ð'Ø!œ<×+Ò+Ð,>ÀÑCÔCÐØ ˜tœÒ .Ð .Ø ŒL× Ò Ð/°´Ñ AÔ AÐ AÐ AÐ Að /Ð .r.)rr€r�r‚rr-r rrÄrr‰rÏrr×rrÝrrrrªrròrrørEr.r,rŽrŽ'sE€€€€€ØEÐEð˜vð¨$ððððð 1 s¨4¤yð 1ð 1ð 1ð 1ð°¸´ ððððð 2¨zð2¸dð2ð2ð2ð2ð 2¨=ð2¸Tð2ð2ð2ð2ð€X˜$¨Ð.Ñ.Ô.ð1@Øð1@Ø%)¨%¬*Ô%5ð1@à Ð#Ô $ð1@ð1@ð1@ñ/Ô.ð1@ðfB¨GðB¸ðBðBðBðBðBðBr.rŽcó¾—eZdZdZdeddfd„Zedd¬¦«deej de d fd „¦«Z de ej deej fd „Z d d „ZdS)ÚNFPluginz8Plugin which implements the --nf (run new-first) option.r'r(Ncó¢—||_|jj|_|j€J‚t |j dg¦«¦«|_dS)Nú cache/nodeids)r'ÚoptionÚnewfirstrÀrÁrtreÚcached_nodeids©r+r's r,r-zNFPlugin.__init__›sK€ØˆŒ Ø”mÔ,ˆŒ ØŒ|Ð'Ð'Ð'Ý! &¤,×"2Ò"2°?ÀBÑ"GÔ"GÑHÔHˆÔÐÐr.TrÞràrác#ó K—dV—|jrœi}i}|D]%}|j|jvr |||j<Œ|||j<Œ&| | ¦«¦«| | ¦«¦«z|dd…<|j |¦«dS|j d„|D¦«¦«dS)Nc3ó$K—|] }|jV—Œ dSr*r�rÚs r,r¢z9NFPlugin.pytest_collection_modifyitems..µs$èè€Ð&EÐ&E°t t¤{Ð&EÐ&EÐ&EÐ&EÐ&EÐ&Er.)rÀržrÿÚ_get_increasing_orderÚvaluesrÌ)r+ràÚ new_itemsÚ other_itemsrÛs r,ròz&NFPlugin.pytest_collection_modifyitems¡sýèè€ð ˆˆˆà Œ;ð FØ/1ˆIØ13ˆKØð 4ð 4�Ø”; dÔ&9Ð9Ð9Ø-1�I˜dœkÑ*Ð*à/3�K ¤ Ñ,Ð,à×1Ò1Ø× Ò Ñ"Ô"ñôà×*Ò*¨;×+=Ò+=Ñ+?Ô+?Ñ@Ô@ñAˆE�!�!�!‰Hð Ô × &Ò & yÑ 1Ô 1Ð 1Ð 1Ð 1à Ô × &Ò &Ð&EÐ&E¸uÐ&EÑ&EÔ&EÑ EÔ EÐ EÐ EÐ Er.có(—t|d„d¬¦«S)Ncó>—|j ¦«jSr*)rUÚstatÚst_mtime)rÛs r,úz0NFPlugin._get_increasing_order..¸s€¨d¬i¯nªnÑ.>Ô.>Ô.G€r.Trš)r«)r+ràs r,rzNFPlugin._get_increasing_order·s€Ý�eÐ!GÐ!GÐQUÐVÑVÔVÐVr.cóü—|j}| d¦«st|d¦«rdS| d¦«rdS|j€J‚|j dt |j¦«¦«dS)NrôrõÚ collectonlyrü)r'r2rörÁrtr«rÿrs r,røzNFPlugin.pytest_sessionfinishºs‡€Ø”ˆØ × Ò ˜KÑ (Ô (ð ­G°F¸MÑ,JÔ,Jð Ø ˆFà × Ò ˜MÑ *Ô *ð Ø ˆFàŒ|Ð'Ð'Ð'ØŒ ×Ò˜­&°Ô1DÑ*EÔ*EÑFÔFÐFÐFÐFr.r~)rr€r�r‚rr-rrrrªrròrrrørEr.r,rúrú˜s倀€€€ØBÐBðI˜vðI¨$ðIðIðIðIð €X˜$¨Ð.Ñ.Ô.ðFؘ%œ*Ô%ðFà Ð#Ô $ðFðFðFñ/Ô.ðFð*W¨8°E´JÔ+?ðWÀDÈÌÔDTðWðWðWðWð Gð Gð Gð Gð Gð Gr.rúÚparserr(c ó—| d¦«}| ddddd¬¦«| dd dd d ¬¦«| d d ddd¬¦«| ddddd¬¦«| dddd¬¦«d}dtjvr0tj tjd|¦«}| d|d¬¦«| ddd d!d"d#d$¬%¦«dS)&NÚgeneralz--lfz --last-failedÚ store_truer¼zHRerun only the tests that failed at the last run (or all if none failed))ÚactionÚdestÚhelpz--ffz--failed-firstr½zyRun all tests, but run the last failures first. This may re-order tests and thus lead to repeated fixture setup/teardown.z--nfz --new-firstrþzORun tests from new files first, then the rest of the tests sorted by file mtimez --cache-showrîú?rôz_Show cache contents, don't perform collection or tests. Optional argument: glob (default: '*').)rÚnargsrrz --cache-clearr0z.Remove all cache contents at start of test runú .pytest_cacheÚ TOX_ENV_DIRr<zCache directory path)rcrz--lfnfz--last-failed-no-failuresÚstorerì)Úallrírz6Which tests to run with no previously (known) failures)rrÚchoicesrcr)ÚgetgroupÚ addoptionÚosÚenvironrUÚjoinÚaddini)rÚgroupÚcache_dir_defaults r,Úpytest_addoptionr$Æsy€Ø �OŠO˜IÑ &Ô &€EØ ‡O‚OØØØØ ð2ð ñôðð ‡O‚OØØØØ ð+ð ñôðð ‡O‚OØØØØ ðð ñôðð ‡O‚OØØØØ ð 6ð ñ ô ð ð ‡O‚OØØØ Ø =ð ñôðð (ÐØ�œ Ð"Ð"ÝœGŸLšL­¬°MÔ)BÐDUÑVÔVÐØ ‡M‚M�+Ð'8Ð?U€MÑVÔVÐVØ ‡O‚OØØ#ØØ &ØØØ Eðñôðððr.r'cód—|jjr#|jjsddlm}||t¦«SdS)Nr)Ú wrap_session)rýrôrÚ _pytest.mainr&)r'r&s r,Úpytest_cmdline_mainr(sD€Ø „}Ôð/ v¤}Ô'9ð/Ø-Ð-Ð-Ð-Ð-Ð-àˆ|˜F¥IÑ.Ô.Ð.Ø ˆ4r.T)rßcóè—t |d¬¦«|_|j t |¦«d¦«|j t |¦«d¦«dS)NTr$r�Únfplugin)rr6rÁr®r¯rŽrú)r's r,Úpytest_configurer+sd€å×#Ò# F°dÐ#Ñ;Ô;€F„LØ Ô×!Ò!¥(¨6Ñ"2Ô"2°JÑ?Ô?Ð?Ø Ô×!Ò!¥(¨6Ñ"2Ô"2°JÑ?Ô?Ð?Ð?Ð?r.Úrequestcó6—|jj€J‚|jjS)abReturn a cache object that can persist state between testing sessions. cache.get(key, default) cache.set(key, value) Keys must be ``/`` separated strings, where the first part is usually the name of your plugin or application to avoid clashes with other cache users. Values can be any object handled by the json stdlib module. )r'rÁ)r,s r,rÁrÁs €ð Œ>Ô Ð +Ð +Ð +Ø Œ>Ô Ðr.cóè—|jjdks| d¦«dkrH|j€J‚|jj} | |j¦«}n#t$r|}YnwxYwd|›�SdS)z6Display cachedir with --cache-show and if non-default.rr<rNú cachedir: )rýrÎr=rÁr Ú relative_tor>rR)r'r&Ú displaypaths r,Úpytest_report_headerr2s“€à „}Ô˜qÒ Ð  F§M¢M°+Ñ$>Ô$>À/Ò$QÐ$QØŒ|Ð'Ð'Ð'Ø”<Ô)ˆð #Ø"×.Ò.¨v¬Ñ?Ô?ˆKˆKøÝð #ð #ð #Ø"ˆKˆKˆKð #øøøà)˜KÐ)Ð)Ð)Ø ˆ4sÁAÁ A*Á)A*r¦có—ddlm}|j€J‚t¦«}| dt |jj¦«z¦«|jj ¦«s| d¦«dS|jj d}|€d}t¦«}|jj}|tj z }|  dd|z¦«td„| |¦«D¦«¦«D]¬}t | |¦«¦«} |j | |¦«} | |ur| d | z¦«Œ\| d | z¦«|| ¦« ¦«D]} | d | z¦«ŒŒ­|tjz } |  ¦«r¨t|  |¦«¦«} |  dd |z¦«| D]j}| ¦«rTt | |¦«¦«} | | ›d | ¦«jd›�¦«ŒkdS)Nr)Úpformatr/zcache is emptyÚ*ú-zcache values for %rc3óBK—|]}| ¦«¯|V—ŒdSr*)Úis_filerÈs r,r¢zcacheshow..Bs/èè€ÐEÐE ¸¿º¹¼ÐE˜!ÐEÐEÐEÐEÐEÐEr.z/%s contains unreadable content, will be ignoredz %s contains:z zcache directories for %rz is a file of length r")Úpprintr4rÁrÚliner‰r r3rýrôrŠrr9Úsepr«Úrglobr0reÚ splitlinesr8r8r Úst_size)r'r¦r4ÚtwÚglobÚdummyÚbasedirÚvdirÚvalpathrWÚvalr:ÚddirÚcontentsÚps r,rôrô/sy€ØÐÐÐÐÐà Œ<Ð #Ð #Ð #å Ñ Ô €B؇G‚GˆL�3˜vœ|Ô5Ñ6Ô6Ñ 6Ñ7Ô7Ð7Ø Œ<Ô !× (Ò (Ñ *Ô *ðØ �ŠÐ Ñ!Ô!Ð!؈qà Œ=Ô " 1Ô %€DØ €|Øˆå ‰HŒH€EØŒlÔ$€GØ •UÔ/Ñ /€D؇F‚Fˆ3Ð%¨Ñ,Ñ-Ô-Ð-ÝÐEÐE T§Z¢Z°Ñ%5Ô%5ÐEÑEÔEÑEÔEð%ð%ˆÝ�'×%Ò% dÑ+Ô+Ñ,Ô,ˆØŒl×Ò˜s EÑ*Ô*ˆØ �%ˆ<ˆ<Ø �GŠGÐEÈÑKÑ LÔ LÐ LÐ Là �GŠG�N SÑ(Ñ )Ô )Ð )ؘ ™ œ ×/Ò/Ñ1Ô1ð %ð %�Ø—’˜˜t™ Ñ$Ô$Ð$Ð$ð %ð •UÔ-Ñ -€DØ ‡{‚{�}„}ðKݘ$Ÿ*š* TÑ*Ô*Ñ+Ô+ˆØ �ŠˆsÐ.°Ñ5Ñ6Ô6Ð6Øð Kð KˆAð�yŠy‰{Œ{ð Kݘ!Ÿ-š-¨Ñ0Ô0Ñ1Ô1�Ø—’˜3ÐIÐI°Q·V²V±X´XÔ5EÐIÐIÐIÑJÔJÐJøØ ˆ1r.);r‚rƒr`rÚpathlibrÚtypingrrrrrr r r r ÚreportsrÚ_pytestrÚ _pytest._iorÚ_pytest.compatrÚ_pytest.configrrrÚ_pytest.config.argparsingrÚ_pytest.deprecatedrÚ_pytest.fixturesrrr'rÚ _pytest.nodesrÚ_pytest.pythonrÚ_pytest.reportsrrwryÚ dataclassrrŒr°rŽrúr$Úintr(r+rÁr‰r2rôrEr.r,úrXsðØ+Ð+ðÐÐÐØ € € € Ø € € € ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐà%Ð%Ð%Ð%Ð%Ð%ØÐÐÐÐÐØ"Ð"Ð"Ð"Ð"Ð"ØÐÐÐÐÐØ&Ð&Ð&Ð&Ð&Ð&Ø Ð Ð Ð Ð Ð Ø!Ð!Ð!Ð!Ð!Ð!Ø#Ð#Ð#Ð#Ð#Ð#Ø#Ð#Ð#Ð#Ð#Ð#Ø,Ð,Ð,Ð,Ð,Ð,Ø-Ð-Ð-Ð-Ð-Ð-Ø$Ð$Ð$Ð$Ð$Ð$Ø+Ð+Ð+Ð+Ð+Ð+Ø Ð Ð Ð Ð Ð ØÐÐÐÐÐØ"Ð"Ð"Ð"Ð"Ð"Ø&Ð&Ð&Ð&Ð&Ð&ð €ðÐðØ Ôð]<ð]<ð]<ð]<ð]<ñ]<ô]<ñÔñ„ð]<ð@9ð9ð9ð9ð9ñ9ô9ð9ðxððððñôðð(nBðnBðnBðnBðnBñnBônBðnBðb+Gð+Gð+Gð+Gð+Gñ+Gô+Gð+Gð\7˜Vð7¨ð7ð7ð7ð7ðt ð¨8°E¸#¸x¸-Ô4HÔ+Iððððð €�4ÐÑÔð@˜Vð@¨ð@ð@ð@ñÔð@ð  ð  �>ð   eð  ð  ð  ñ „ð  ð  ð ¨H°S¬Mð ð ð ð ð ' �fð'  wð' °3ð' ð' ð' ð' ð' ð' r.