+
    }¯³j�r  ã                  óF  € ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIHt ^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIHt ^ RIt^ RIt ]'       g   ^ RItR tR R	 ltR
s]P0                  ! RR7      R 4       tR tR tR tR tR t ! R R4      tR t R t!R t"R'R lt#R t$Rs%Rs&R t']PP                  ! RR7      R 4       t)R t*Rs+R t,]P0                  ! RR 7      R! 4       t-]P0                  ! R"R 7      R# 4       t.R$ t/ ! R% R&]P`                  4      t1R#   ] d
    ^RIHt  LÑi ; i)(é    )ÚannotationsN)Úupdate_wrapper)Úwraps)ÚTYPE_CHECKING)Úplugin_basec                ób   a€ V P                  R 4      oV3R lp\        P                  ! V4       R# )Ú
sqlalchemyc                ó  <aa€ VP                  R R4      oS'       d!    ! V3R lR\        P                  4      pW!R&   VP                  RR4      oS'       d!    ! V3R lR\        P                  4      pW!R&   SP                  ! V 3/ VB  R# )ÚcallbackNc                  ó(   <€ ] tR t^*tRV 3R lltRtR# )Ú=pytest_addoption.<locals>.make_option.<locals>.CallableActionNc                	ó   <€ S! WCV4       R # ©N© )ÚselfÚparserÚ	namespaceÚvaluesÚoption_stringÚ	callback_s   &&&&&€Úg/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyÚ__call__ÚFpytest_addoption.<locals>.make_option.<locals>.CallableAction.__call__+   s   ø€ ñ ˜m°VÖ<ó    r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__static_attributes__)r   s   €r   ÚCallableActionr   *   s   ø† ÷=ó =r   r    ÚactionÚzeroarg_callbackc                  ó>   <a € ] tR t^5tRV 3R lltRV3R lltRtV ;t# )r   c           
     	ó4   <€ \         SV `  VV^ RVVVR7       R# )r   T)Úoption_stringsÚdestÚnargsÚconstÚdefaultÚrequiredÚhelpN)ÚsuperÚ__init__)r   r%   r&   r)   r*   r+   Ú	__class__s   &&&&&&€r   r-   ÚFpytest_addoption.<locals>.make_option.<locals>.CallableAction.__init__6   s,   ø€ ô ‘GÑ$Ø'5Ø!ØØ"Ø 'Ø!)Ø!ð %ö r   c                	ó   <€ S! WCV4       R # r   r   )r   r   r   r   r   r"   s   &&&&&€r   r   r   H   s   ø€ ñ % ]¸FÖCr   r   )FFNr   )r   r   r   r   r-   r   r   Ú__classcell__)r.   r"   s   @€r   r    r   5   s   ù† ÷÷$Dõ Dr   )ÚpopÚargparseÚActionÚ	addoption)ÚnameÚkwr    r   r"   Úgroups   &, @@€r   Úmake_optionÚ%pytest_addoption.<locals>.make_option&   sp   ú€ Ø—F‘F˜: tÓ,ˆ	ß÷=¤§¡ô =ð *ˆx‰LàŸ6™6Ð"4°dÓ;Ðß÷D¤§¡ô Dð0 *ˆx‰Là�Š˜Ñ# Ô#r   N)Úgetgroupr   Úsetup_options)r   r9   r8   s   & @r   Úpytest_addoptionr=   #   s'   ø€ Ø�O‰O˜LÓ)€Eõ)$ôV ×Ò˜kÖ*r   c               ó   € V ^8„  d   QhRR/# )é   Úconfigzpytest.Configr   )Úformats   "r   Ú__annotate__rB   T   s   € ÷ #ñ #˜]ñ #r   c           	     óD  € \         P                  ! V P                  4       \         P                  '       g   \         P                  '       d¤   R P                  \        \         P                  4      \         P                   Uu. uF  pRV 2NK
  	  up,           4      pV P                  P                  '       d(   V P                  ;P                  R V 2,          un        MW P                  n        V P                  P                  R4      '       d$   V P                  P                  \        4       4       \        V R4      '       dI   \         P                  ! V P                  4       \         P                   ! V P                  R,          4       MV P                  P"                  '       dd   \$        P&                  P)                  V P                  P"                  4      '       d+   \$        P*                  ! V P                  P"                  4       \         P,                  ! V P                  4       \         P.                  ! \1        \3        V P                  RR4      4      4       \         P4                  ! \6        4       V P                  P8                  '       d   RsR# R# u upi )	z and znot ÚxdistÚworkerinputÚfollower_identÚ
cov_sourceFTN)r   Úread_configÚrootpathÚexclude_tagsÚinclude_tagsÚjoinÚlistÚoptionÚmarkexprÚpluginmanagerÚ	haspluginÚregisterÚ
XDistHooksÚhasattrÚ!restore_important_follower_configrE   Úconfigure_followerÚwrite_identsÚosÚpathÚexistsÚremoveÚ	pre_beginÚset_coverage_flagÚboolÚgetattrÚset_fixture_functionsÚPytestFixtureFunctionsÚdump_pyannotateÚDUMP_PYANNOTATE)r@   ÚtagÚnew_exprs   &  r   Úpytest_configurerf   T   s¼  € Ü×Ò˜FŸO™OÔ,Ü××Ð¤;×#;×#;Ð#;Ø—<‘<Ü”×)Ñ)Ó*Ü'2×'?Ò'?Ó@Ñ'? ��c�U‹|Ñ'?Ñ@õAó
ˆð
 �=‰=×!×!Ð!Ø�M‰M×"Ò"¨¨h¨ZÐ&8Õ8Ö"à%-�M‰MÔ"à×Ñ×%Ñ% g×.Ò.Ø×Ñ×%Ñ%¤j£lÔ3äˆv�}×%Ò%Ü×5Ò5°f×6HÑ6HÔIÜ×&Ò& v×'9Ñ'9Ð:JÕ'KÕLà�=‰=×%×%Ð%¬"¯'©'¯.©.Ø�M‰M×&Ñ&÷+
ò +
ô �IŠI�f—m‘m×0Ñ0Ô1ä×Ò˜&Ÿ-™-Ô(ä×!Ò!ÜŒW�V—]‘] L°%Ó8Ó9ôô ×%Ò%Ô&<Ô=à‡}�}×$×$Ð$àŠñ %ùò9 As   ÂJ
FT)Úautousec               #  ó–   "  € \         '       d   ^ RIHp  V P                  4        Rx € \         '       d   X P	                  4        R# R# 5i)r   ©Úcollect_typesN)rc   Úpyannotate_runtimerj   ÚstartÚstopri   s    r   Úcollect_types_fixturern   }   s2   é € çƒÝ4à×ÑÔÛ	ßƒØ×ÑÖñ ùs
   ‚2A	µA	c                ó4  € ^ RI p^ RI Hp ^ RIHp ^ RIHp Rp\        P                  P                  '       d   RMRpRV R	V R
2RVP                   2.pV! 4       '       d'   ^ RI
Hp VP                  RVP                   R24       MVP                  RV 24       V P                  P                  P                  R4      p	V	'       d/   V	P!                  RV4       V F  p
V	P#                  V
4       K  	  R# \%        RVR4       V F  p
\%        V
4       K  	  R# )r   N)Ú__version__)Úhas_compiled_ext)Ú_CYEXTENSION_MSGzsqlalchemy installationzno user sitezuser site loadedzSQLAlchemy z (Ú)zPath: )Úutilz!compiled extension enabled, e.g. Ú z compiled extension not enabled; ÚterminalreporterÚ=z=========================)r	   rp   Úsqlalchemy.utilrq   Úsqlalchemy.util._has_cyrr   ÚsysÚflagsÚno_user_siteÚ__file__Úsqlalchemy.cyextensionrt   Úappendr@   rP   Ú
get_pluginÚ	write_sepÚ
write_lineÚprint)Úsessionr	   rp   rq   rr   ÚgreetÚsiteÚmsgsrt   ÚpmÚms   &          r   Ú_log_sqlalchemy_inforŠ   ˆ   só   € ÛÝ&Ý0Ý8à%€EÜ ŸY™Y×3×3Ð3‰>Ð9K€Dà
�k�] " T F¨!Ð,Ø
�×$Ñ$Ð%Ð&ð€Dñ
 ×ÒÝ/à�‰Ð7¸¿¹°ÀaÐHÕIà�‰Ð6Ð7GÐ6HÐIÔJà	�‰×	%Ñ	%×	0Ñ	0Ð1CÓ	D€Bß	Ø
�‰�S˜%Ô ÛˆAØ�M‰M˜!Öó ô 	ˆh˜˜xÔ(ÛˆAÜ�!ŽHó r   c                óf   € ^ RI Hp \        V 4       VP                  \        P
                  4       R# ©r   ©ÚasyncioN)Úsqlalchemy.testingrŽ   rŠ   Ú_assume_asyncr   Ú
post_begin)r„   rŽ   s   & r   Úpytest_sessionstartr’   ¨   s!   € Ý*ä˜Ô!Ø×Ñœ+×0Ñ0Ö1r   c                ó
  € ^ RI Hp VP                  \        P                  4       V P
                  P                  P                  '       d8   ^ RIH	p VP                  V P
                  P                  P                  4       R# R# )r   r�   ri   N)r�   rŽ   Ú_maybe_async_provisioningr   Úfinal_process_cleanupr@   rN   rb   rk   rj   Ú
dump_stats)r„   rŽ   rj   s   &  r   Úpytest_sessionfinishr—   ¯   sU   € Ý*à×%Ñ%¤k×&GÑ&GÔHà‡~�~×Ñ×,×,Ð,Ý4à× Ñ  §¡×!6Ñ!6×!FÑ!FÖGñ -r   c                ó2   € ^ RI Hp VP                  4        R# rŒ   )r�   rŽ   Ú	_shutdown)r@   rŽ   s   & r   Úpytest_unconfigurerš   º   s   € Ý*à×ÑÖr   c                óÒ   a€ V P                   P                  P                  '       d@   ^ RIHp \
        P                  P                  R4      oV3R lpVP                  VR7       R# R# )r   ri   úlib/sqlalchemyc                óâ   <€ \         P                  P                  \         P                  P                  V 4      4      p R \         P                  P	                  V S.4      9  d   R# RV 9   d   R# V # )rœ   NÚtesting)rX   rY   ÚnormpathÚabspathÚ
commonpath)ÚfilenameÚlib_sqlalchemys   &€r   Ú_filterÚ)pytest_collection_finish.<locals>._filterÆ   sZ   ø€ Ü—w‘w×'Ñ'¬¯©¯©¸Ó(AÓBˆHØ¤r§w¡w×'9Ñ'9Ø˜>Ð*ó(ô ñ Ø˜HÔ$ÙàˆOr   )Úfilter_filenameN)	r@   rN   rb   rk   rj   rX   rY   r    Úinit_types_collection)r„   rj   r¤   r£   s   &  @r   Úpytest_collection_finishr¨   À   sL   ø€ Ø‡~�~×Ñ×,×,Ð,Ý4äŸ™Ÿ™Ð)9Ó:ˆõ		ð 	×+Ñ+¸GÐ+ÖDñ! -r   c                  ó"   € ] tR t^ÔtR tR tRtR# )rS   c                	ó,  € ^ RI Hp ^ RI Hp \        P                  ! VP
                  4       R\        P                  ! 4       P                  R,          ,          VP
                  R&   VP                  VP                  VP
                  R,          4       R# )r   ©Ú	provisionr�   ztest_%s:r   é   NrF   N)r�   r¬   rŽ   r   Ú!memoize_important_follower_configrE   ÚuuidÚuuid4Úhexr”   Úcreate_follower_db)r   Únoder¬   rŽ   s   &&  r   Úpytest_configure_nodeÚ XDistHooks.pytest_configure_nodeÕ   sj   € Ý0Ý.ô
 	×5Ò5°d×6FÑ6FÔGà-6¼¿º»×9IÑ9IÈ$Õ9OÕ-Oˆ×ÑÐ)Ñ*à×)Ñ)Ø×(Ñ(¨$×*:Ñ*:Ð;KÕ*Lö	
r   c                	óx   € ^ RI Hp ^ RI Hp VP                  VP                  VP
                  R,          4       R# )r   r«   r�   rF   N)r�   r¬   rŽ   r”   Údrop_follower_dbrE   )r   r³   Úerrorr¬   rŽ   s   &&&  r   Úpytest_testnodedownÚXDistHooks.pytest_testnodedownä   s-   € Ý0Ý.à×)Ñ)Ø×&Ñ&¨×(8Ñ(8Ð9IÕ(Jö	
r   r   N)r   r   r   r   r´   r¹   r   r   r   r   rS   rS   Ô   s   † ò
ö
r   rS   c                óº  aa	a
€ ^ RI Hp \        P                  ! R 4      o	V Uu. uFh  pVP	                  \
        P                  4      f   K&  VP	                  \
        P                  4      P                  P                  R4      '       d   Kf  VNKj  	  upVR&   V Uu0 uF!  qDP	                  \
        P                  4      kK#  	  upo
V3R loVV	V
3R lpVP                  V4       . pV FR  pVP                  pVS	9   d,   VP                  S	V,          VP                  ,          4       KA  VP                  V4       KT  	  \        VR R	7      VR&   R# u upi u upi )
r   r�   c                 ó6   € \         P                  ! \        4      # r   )ÚcollectionsÚdefaultdictrM   r   r   r   Ú<lambda>Ú/pytest_collection_modifyitems.<locals>.<lambda>û   s   € ”×'Ò'¬Ô-r   NÚ_:NNNc              3  ó®   <"  € V P                  4        F9  p\        V\        P                  4      '       d   S! V4       R j  x€L
  K5  Vx € K;  	  R #  L5ir   )ÚcollectÚ
isinstanceÚpytestÚ	Collector)ÚelementÚ
inst_or_fnrÃ   s   & €r   rÃ   Ú.pytest_collection_modifyitems.<locals>.collect  sA   øé € Ø!Ÿ/™/Ö+ˆJÜ˜*¤f×&6Ñ&6×7Ò7Ù" :Ó.×.Ò.à Ô ó	 ,á.ùs   ƒ?AÁAÁAc                 ó  <€ S EFü  p \        V P                  R R4      '       g   \        V P                  RR4      '       d   R0pMN\        V P                  RR4      '       d   RR0pM,\        V P                  RR4      '       d   RR0pM
\        4       pV P                  4        Uu0 uF  q"P                  kK  	  ppW,
          pVP                  V4      pV F  pV P                  V4       K  	  \        \        P                  ! V P                  V P                  V4      4      pV'       g   SV P                  ,           V F»  pWpP                  Jg   K  SV P                  ,          pV P                  \        P                  4      p	\        P                  P                  VP                   V	R7      p
V F  pV
P                  V4       K  	  S! V
4       F$  pW‹P                  ,          P#                  V4       K&  	  K½  	  EKÿ  	  R	# u upi )
Ú__backend__FÚ__only_on__ÚbackendÚ__sparse_backend__Úsparse_backendÚ__sparse_driver_backend__Úsparse_driver_backend©r6   ÚparentN)r_   ÚclsÚ	frozensetÚiter_markersr6   ÚunionÚ
add_markerrM   r   Úgenerate_sub_testsÚmoduleÚ	getparentrÅ   ÚModuleÚClassÚfrom_parentr   r   )Ú
test_classÚadd_markersÚmarkÚexisting_markersÚall_markersÚmarkerÚ	sub_testsÚsub_clsÚper_cls_dictrÚ   Únew_clsÚfnrÃ   Úrebuilt_itemsÚtest_classess               €€€r   Úsetup_test_classesÚ9pytest_collection_modifyitems.<locals>.setup_test_classes  s¾  ø€ Ü&ˆJô �z—~‘~ }°e×<Ò<ÄØ—‘ ¨u÷Aò Að  )˜k‘Ü˜Ÿ™Ð)=¸u×EÒEØ/°Ð;‘Ü˜Ÿ™Ð)DÀe×LÒLØ6¸	ÐB‘ä'›k�ð '1×&=Ñ&=Ô&?ó Ù&?˜d—	”	Ñ&?ð ð  ð &Õ8ˆKØ*×0Ñ0°Ó=ˆKã%�Ø×%Ñ% fÖ-ñ &ô Ü×.Ò.Ø—N‘N J×$5Ñ$5°{óóˆI÷
 Ø˜jŸn™nÖ-ã$�Ø§.¡.Õ0Ø#0°·±Õ#@�Là'×1Ñ1´&·-±-Ó@�Fä$Ÿl™l×6Ñ6Ø$×-Ñ-°fð 7ó �Gó #.˜Ø×*Ñ*¨6Ö2ñ #.ñ & gÖ.˜Ø$§W¡WÕ-×4Ñ4°RÖ8ó /ô %ó? 'ùò s   Â&Hc                ó¼   € V P                  \        P                  4      P                  V P                  \        P                  4      P                  V P                  3# r   )rÛ   rÅ   rÜ   r6   rÝ   )Úitems   &r   r¿   rÀ   M  s:   € Ø�N‰Nœ6Ÿ=™=Ó)×.Ñ.Ø�N‰Nœ6Ÿ<™<Ó(×-Ñ-Ø�I‰Iñ
r   )Úkey)r�   rŽ   r½   r¾   rÛ   rÅ   rÝ   r6   Ú
startswithr”   rÔ   Úextendr   Úsorted)r„   r@   ÚitemsrŽ   rï   rì   ÚnewitemsÚcls_rÃ   rê   rë   s   &&&     @@@r   Úpytest_collection_modifyitemsr÷   í   s   ú€ õ +ä×+Ò+Ù-ó€Mñ óáˆDØ�>‰>œ&Ÿ,™,Ó'ô 	ð —‘œvŸ|™|Ó,×1Ñ1×<Ñ<¸S×A÷ 	ˆÙñ€Eˆ!�Hñ >CÓC¹U°T—N‘N¤6§<¡<Ö0¹UÑC€Lõ!÷-9ðb ×%Ñ%Ð&8Ô9à€HÛˆØ�x‰xˆØ�=Ô Ø�O‰O˜M¨$Õ/°·	±	Õ:Ö;à�O‰O˜DÖ!ñ ô Øñ
ô€Eˆ!ƒHùò[ùò Ds   ¥#EÁ;EÂEÂ'Ec                ó
  € \         P                  ! V4      '       d�   \        P                  ! W4      '       ds   ^ RIHp VP                  '       d   \        V4      p\        V P                  V4       Uu. uF.  p\        P                  P                  VP                  V R7      NK0  	  up# \         P                  ! V4      '       d8   V P                  e*   \        P                   ! V P                  V4      '       d   R# . # u upi )r   ©r@   rÒ   N)ÚinspectÚisclassr   Ú
want_classr�   r@   Ú	any_asyncÚ_apply_maybe_asyncÚ_parametrize_clsrÚ   rÅ   rÝ   rÞ   r   Ú
isfunctionrÔ   Úwant_method)Ú	collectorr6   Úobjr@   Úparametrize_clss   &&&  r   Úpytest_pycollect_makeitemr  U  sÓ   € Ü‡‚�s×Ò¤× 6Ò 6°t× AÒ AÝ-à××ÐÜ$ SÓ)ˆCô $4°I×4DÑ4DÀcÔ#Jó	
ñ $K�ô �L‰L×$Ñ$Ø$×-Ñ-°ið %ö ñ $Kñ	
ð 	
ô 	×Ò˜3×ÒØ�M‰MÒ%Ü×#Ò# I§M¡M°3×7Ò7ñ ð ˆ	ùò!
s   Á44D c                ón   € \        V R 4      '       d   V P                  p K   \        P                  ! V 4      # )Ú__wrapped__)rT   r  rú   Úiscoroutinefunction)ré   s   &r   Ú_is_wrapped_coroutine_functionr	  o  s)   € Ü
�"�m×
$Ò
$Ø�^‰^Šä×&Ò& rÓ*Ð*r   c                óp  a€ ^ RI Ho \        V 4      P                  4        FÒ  w  r#\	        V4      '       g   \        V\        4      '       g   K.  \        VRR4      '       d   KC  VP                  R4      '       g   K\  \        V4      '       d   Ko  Rp\        V\        4      '       d   VP                  pRp\        V3R l4       pV! V4      pV'       d   \        V4      pRVn        \        WV4       KÔ  	  V'       d8   V P                  4       R,           F  pV\        8w  g   K  \!        VR4       K  	  V # )r   r�   Ú_maybe_async_appliedFÚtest_Tc                ó0   <€ SP                   ! V .VO5/ VB # r   )Ú_maybe_async©ré   ÚargsÚkwargsrŽ   s   &*,€r   Ú
make_asyncÚ&_apply_maybe_async.<locals>.make_async…  s   ø€ à×+Ò+¨BÐ@°Ò@¸Ñ@Ð@r   ºé   NN)r�   rŽ   Úvarsrô   ÚcallablerÄ   Úclassmethodr_   rñ   r	  Ú__func__Ú_pytest_fn_decoratorr  ÚsetattrÚmroÚobjectrþ   )	r  Úrecurser6   ÚvalueÚis_classmethodr  Údo_asyncrÔ   rŽ   s	   &&      @r   rþ   rþ   v  sî   ø€ Ý*ä˜C“y—‘Ö(‰ˆä�e�_Š_¤
¨5´+× >Ô >Ü˜EÐ#9¸5×AÔAØ—‘ ×)Ô)Ü2°5×9Ô9à"ˆNÜ˜%¤×-Ò-ØŸ™�Ø!%�ä!ôAó "ðAñ " %Ó(ˆHßÜ& xÓ0�Ø,0ˆHÔ)ä�C˜xÖ(ñ+ )÷, Ø—7‘7“9˜R—=�=ˆCØ”fŽ}Ü" 3¨Ö.ñ !ð €Jr   c                óx  € RVP                   9  d   V.# VP                  p. p\        P                  ! V UUu. uF  w  rEVNK	  	  upp!   Fà  p/ p\	        V Uu. uF  qˆ^ ,          NK  	  upV4       FQ  w  rIV'       g   \        R4      h\        P                  ! RV4      p
\	        W©P                  4       F	  w  r¼WÇV&   K  	  KS  	  RP                  R V 4       4      pVP                  : RV: 2p\        P                  \        Wá3V4      p\        WV4       VP                  V4       Kâ  	  V# u uppi u upi )z6implement a class-based version of pytest parametrize.Ú_sa_parametrizez*need argnames for class-based combinationsz,\s*rÁ   c              3  ó–   "  € T F?  pVP                   P                  R 4       F  p\        P                  ! RRV4      x € K  	  KA  	  R# 5i)Ú-z\WÚ N)ÚidÚsplitÚreÚsub)Ú.0ÚparamÚtokens   &  r   Ú	<genexpr>Ú#_parametrize_cls.<locals>.<genexpr>«  sA   é € ð %
á'�ØŸ™Ÿ™¨Ö,�ô �FŠF�5˜"˜e×$Ð$á,ñ %Û'ùs   ‚AA	)Ú__dict__r#  Ú	itertoolsÚproductÚzipÚ	TypeErrorr)  r(  r   rL   r   ÚtypeÚ__new__r  r   )rÚ   rÔ   r#  ÚclassesÚargnameÚparamsÚfull_param_setÚcls_variablesÚ	_sa_paramr,  Úargname_splitÚargÚvalÚparametrized_namer6   Únewclss   &&              r   rÿ   rÿ   –  s(  € ð  §¡Ô,Øˆuˆà×)Ñ)€OØ€GÜ#×+Ò+Ù(7Ô	8©‘_�W‹&©Ò	8ôˆð ˆä!Ù+:Ó;©?˜i�q�\ˆ\©?Ñ;¸^ö
‰NˆG÷ ÜÐ LÓMÐMÜŸHšH W¨gÓ6ˆMÜ ¯|©|Ö<‘�Ø%(˜cÓ"ó =ñ
ð  ŸH™Hñ %
á'ó%
ó 
Ðð
 Ÿ,œ,Ò(9Ð:ˆÜ—‘œd D¨&°-Ó@ˆÜ�˜fÔ%Ø�‰�vÖñ+ð, €Nùó+ 
9ùò
 <s   ¸D1
ÁD7
c                óö  € ^ RI Hp \        V \        P                  4      '       dÓ   \
        fÉ   VP                  \        P                  V P                  4       V P                  \        P                  4      s\        \
        P                  R4      '       d^   ^ RIpVP                  4       s\        P!                  4        \
        P                  P"                   F  pVP%                  RV4       K  	  R# R# R# R# )r   r�   NÚ__warnings__Úignore)r�   rŽ   rÄ   rÅ   ÚFunctionÚ_current_classr”   r   Ú!start_test_class_outside_fixturesrÔ   rÛ   rÝ   rT   ÚwarningsÚcatch_warningsÚ_current_warning_contextÚ	__enter__rC  Úfilterwarnings)rï   rŽ   rH  Úwarning_messages   &   r   Úpytest_runtest_setuprN  ¼  sµ   € Ý*ô �$œŸ™×(Ò(¬^Ò-CØ×)Ñ)Ü×9Ñ9Ø�H‰Hô	
ð Ÿ™¬¯©Ó5ˆä”>×%Ñ% ~×6Ò6Ûà'/×'>Ñ'>Ó'@Ð$Ü$×.Ñ.Ô0Ü#1×#5Ñ#5×#BÔ#B�Ø×'Ñ'¨°/ÖBó $Cñ 7ñ .DÑ(r   )Úhookwrapperc              #  ó¨  "  € ^ RI Hp VP                  \        P                  V 4       Rx € \
        e�   Ve(   VP                  \        P                  4      \
        JdT   \        e   \        P                  RRR4       Rs	Rs VP                  \        P                  V P                  4        RsR# R# R#   \         Ed   p\        P                   '       dê   TP"                  '       g   R\        P$                  ,           3Tn        h TP"                  R,          '       dx   \'        TP"                  R,          \(        4      '       dQ   \+        TP"                  4      pTR;;,          R\        P$                  ,           ,          uu&   \-        T4      Tn        h T;P"                  R\        P$                  3,          un        h Rp?ii ; i  Rsi ; i5i)r   r�   Nz__Original test failure__:
z
__Original test failure__:
z__Original test failure__éÿÿÿÿ)r�   rŽ   r  r   Ú
after_testrF  rÛ   rÅ   rÝ   rJ  Ú__exit__r”   Ú stop_test_class_outside_fixturesrÔ   Ú	ExceptionÚ_current_reportÚfailedr  ÚlongreprtextrÄ   ÚstrrM   Útuple)rï   ÚnextitemrŽ   Úer  s   &&   r   Úpytest_runtest_teardownr]  ×  sx  é € õ
 +à×Ñœ×/Ñ/°Ô6ã	ô Ò!àÒØ×ÑœfŸl™lÓ+´>ÓAô $Ò/Ü$×-Ñ-¨d°D¸$Ô?Ø'+Ð$àˆð	#Ø×-Ñ-Ü×<Ñ<¸d¿h¹hõð4 #ŠOñI Bñ "øô  õ 	ô ×%×%Ð%Ø—v—v�và6Ü)×6Ñ6õ7ð�A”Fð  ð —V‘V˜B—Z”Z¤J¨q¯v©v°b­z¼3×$?Ò$?Ü §¡›<�DØ˜—HØ8Ü)×6Ñ6õ7õ“Hô # 4›[�A”Fð ð	 —F’FØ3Ü'×4Ñ4ðõ •Fð ûð+	ûð. #‰Oüs=   ‚BGÂ*B7 Â/GÂ7GÃ'GÃ+CGÇGÇG ÇGÇGc                ó¨   € ^ RI Hp VP                  \        P                  V V P
                  P                  V P                  V P                  4       R# rŒ   )	r�   rŽ   r  r   Úbefore_testrÚ   r   rÔ   r6   )rï   rŽ   s   & r   Úpytest_runtest_callr`    s<   € õ +à×ÑÜ×ÑØØ�‰×ÑØ�‰Ø�	‰	ör   c                ó0   € V P                   R 8X  d   V sR# R# )ÚcallN)ÚwhenrV  )Úreports   &r   Úpytest_runtest_logreportre  %  s   € à‡{�{�fÔØ Šñ r   Úclass)Úscopec              #  ó.  "  € ^ RI Hp V P                  p\        VR4      '       d   VP	                  VP
                  4       Rx € \        VR4      '       d   VP	                  VP                  4       VP	                  \        P                  V4       R# 5i)r   r�   Úsetup_test_classNÚteardown_test_class)	r�   rŽ   rÔ   rT   r  ri  rj  r   Ústop_test_class)ÚrequestrŽ   rÔ   s   &  r   Úsetup_class_methodsrm  +  sn   é € å*à
�+‰+€CäˆsÐ&×'Ò'Ø×Ñ˜S×1Ñ1Ô2ã	äˆsÐ)×*Ò*Ø×Ñ˜S×4Ñ4Ô5à×Ñœ×4Ñ4°cÖ:ùs   ‚BBÚfunctionc              #  óæ  "  € ^ RI Hp V P                  p\        VR4      '       d   VP	                  VP
                  4       \        VR4      '       d   VP	                  VP                  4       Rx € VP	                  \        P                  V4       \        VR4      '       d   VP	                  VP                  4       \        VR4      '       d   VP	                  VP                  4       R# R# 5i)r   r�   Ú
setup_testÚsetUpNÚtearDownÚteardown_test)r�   rŽ   ÚinstancerT   r  rp  rq  r   Úafter_test_fixturesrr  rs  )rl  rŽ   r   s   &  r   Úsetup_test_methodsrv  <  s»   é € å*ð ×Ñ€Dô ˆt�\×"Ò"Ø×Ñ˜TŸ_™_Ô-ô
 ˆt�W×ÒØ×Ñ˜TŸZ™ZÔ(ó 
ð ×Ñœ×8Ñ8¸$Ô?ô ˆt�Z× Ò Ø×Ñ˜TŸ]™]Ô+äˆt�_×%Ò%Ø×Ñ˜T×/Ñ/Ö0ñ &ùs   ‚C/C1c                óB   a aaa€ ^ RI Ho ^ RIHo R oRVVVV 3R llpV# )z:Port of langhelpers.decorator with pytest-specific tricks.)Úformat_argspec_plus)Úinspect_getfullargspecc                ó(   € \        W4       W,          # r   )Úexec)ÚcodeÚenvÚfn_names   &&&r   Ú_exec_code_in_envÚ/_pytest_fn_decorator.<locals>._exec_code_in_env�  s   € ô
 	ˆTŒØ�|Ðr   c                óö  <€ S! V 4      pV'       d   VP                   P                  V4       \        R RV P                  R7      pVP	                  S! VRR7      4       RV,          pS! VR S	RV /V P                  4      pV'       g.   \        V RV 4      P                  Vn        Wn        \        WP4      # V P                  Vn	        V P                  Vn        \        V R4      '       d   V P                  Vn        V# )Ú__target_fnÚ	__orig_fn)r‚  rƒ  r6   F)ÚgroupedzVdef %(name)s%(grouped_args)s:
    return %(__target_fn)s(%(__orig_fn)s, %(apply_kw)s)
r  Ú
pytestmark)r  rò   Údictr   Úupdater_   Ú__defaults__r  r   r   rT   r…  )
ré   Úadd_positional_parametersÚspecÚmetadatar|  Ú	decoratedr  rx  ry  Útargets
   &&    €€€€r   ÚdecorateÚ&_pytest_fn_decorator.<locals>.decorate‰  så   ø€ Ù% bÓ)ˆß$Ø�I‰I×ÑÐ6Ô7äØ%°À2Ç;Á;ô
ˆð 	�‰Ñ+¨D¸%Ô@ÔAðð õˆñ &Ø�= &¨+°rÐ:¸B¿K¹Kó
ˆ	÷ )Ü%,¨R°¸RÓ%@×%MÑ%MˆIÔ"Ø$&Ô!Ü! )Ó0Ð0ð
 $&§=¡=ˆIÔ Ø!#§¡ˆIÔÜ�r˜<×(Ò(Ø')§}¡}�	Ô$ØÐr   )r   )Úsqlalchemy.util.langhelpersrx  Úsqlalchemy.util.compatry  )r�  rŽ  r  rx  ry  s   f @@@r   r  r  {  s"   û€ õ @Ý=ò÷ò ð< €Or   c                  ón   € ] tR tRtR tR t]R 4       tR tRR R]	R	]
R
R /tR tR tR tR tR tRtR# )ra   iª  c                óÔ   a€ \         P                  R8¼  d   \        S4      # \        P                  ! S4      '       d   \        S4      V3R l4       pV# \        S4      V3R l4       pV# )zqa conditional `@classmethod` decorator that we use only on py3.10
on forward, for compatibility with pytest 9.1+.c              ?  óP   <"  € S! V P                   .VO5/ VB  R j  x€L
  R #  L5ir   ©r.   ©r   r  r7   ré   s   &*,€r   ÚwrapÚ8PytestFixtureFunctions.fixture_classmethod.<locals>.wrapµ  s"   øé € á! $§.¡.Ð>°4Ò>¸2Ñ>×>Ô>ùs   ƒ&�$ž&c                ó0   <€ S! V P                   .VO5/ VB # r   r•  r–  s   &*,€r   r—  r˜  »  s   ø€ á˜dŸn™nÐ:¨tÒ:°rÑ:Ð:r   )é	   r  )rÅ   Úversion_tupler  rú   Úisgeneratorfunctionr   )r   ré   r—  s   &f r   Úfixture_classmethodÚ*PytestFixtureFunctions.fixture_classmethod¬  sj   ø€ ô ×Ñ 6Ô)Ü˜r“?Ð"ä×*Ò*¨2×.Ò.ä�r“ô?ó ð?ð ˆKô	 �r“ô;ó ð;ð ˆKr   c                	óB   € \         P                  P                  ! V/ VB # r   )rÅ   ÚskiprU  )r   r>  r7   s   &*,r   Úskip_test_exceptionÚ*PytestFixtureFunctions.skip_test_exceptionÁ  s   € Ü�{‰{×$Ò$ cÐ0¨RÑ0Ð0r   c                	ó"   € \         P                  # r   )rÅ   rá   ©r   s   &r   Úadd_to_markerÚ$PytestFixtureFunctions.add_to_markerÄ  s   € ä�{‰{Ðr   c                	óB   € \         P                  P                  R R4      # )rm  rv  )rÅ   rá   Úusefixturesr¤  s   &r   Úmark_base_test_classÚ+PytestFixtureFunctions.mark_base_test_classÈ  s   € Ü�{‰{×&Ñ&Ø!Ø ó
ð 	
r   Úic                	ó   € V # r   r   ©r  s   &r   r¿   ÚPytestFixtureFunctions.<lambda>Ï  s   € ™r   ÚrÚsÚnc                	óh   € \        V R 4      '       d   V P                  # \        V 4      P                  # )r   )rT   r   r5  r­  s   &r   r¿   r®  Ò  s'   € Ü# C¨×4Ò4ˆC�L‰LÐL¼$¸s»)×:LÑ:LÐLr   c           	     óF  aaaaa€ ^ RI Ho \        V4      ^8X  d,   \        V^ ,          R4      '       d   \	        V^ ,          4      pVP                  RR4      oV3R lpVP                  RR4      p. pRoV'       Ed    V P                  p\        P                  ! ^ .\        V4       UUu. uF  w  rxVR9   g   K  VNK  	  uppO5!  p	\        V4       UUu. uF+  w  rxW†9   g   K  \        P                  ! V4      Wh,          3NK-  	  p
ppV Fl  o\        S\        4      '       g   S3oV! S4      w  r¼V	! V4      R,          pV'       d   R	oVP                  VVR
P                  V3R lV
 4       4      34       Kn  	  MIV FC  o\        S\        4      '       g   S3oV! S4      w  r¼V'       d   R	oVP                  W¼R34       KE  	  . oV F>  w  rÜpS'       d
   WÜ3,          p\        P                  ! VRV/ pSP                  V4       K@  	  VVVV3R lpV# u uppi u uppi )zèFacade for pytest.mark.parametrize.

Automatically derives argument names from the callable which in our
case is always a method on a class with positional arguments.

ids for parameter sets are derived using an optional template.

)Ú
exclusionsÚ__next__ÚargnamesNc                ó¤   <€ . p. pV  FC  p\        VSP                  4      '       d   VP                  V4       K2  VP                  V4       KE  	  W3# r   )rÄ   Úcompoundr   )r  ÚresultÚgathered_exclusionsÚar´  s   &   €r   Ú_filter_exclusionsÚ?PytestFixtureFunctions.combinations.<locals>._filter_exclusionsç  sP   ø€ ØˆFØ"$ÐÛ�Ü˜a ×!4Ñ!4×5Ò5Ø'×.Ñ.¨qÖ1à—M‘M !Ö$ñ	 ð Ð.Ð.r   Úid_Fr  Tr%  c              3  óD   <"  € T F  w  rV! V! S4      4      x € K  	  R # 5ir   r   )r+  ÚgetterÚcomb_fnr>  s   &  €r   r.  Ú6PytestFixtureFunctions.combinations.<locals>.<genexpr>  s"   øé € ð !ÙHK±_°V™G¡F¨3£K×0Ð0Ëùs   ƒ r'  c                ó(  <€ \         P                  ! V 4      '       dK   S'       d   \        R 4      hRV P                  9  d   . V n        V P                  P                  SS	34       V # \         P                  ! V 4      P                  R,          pSf   TpM\        P                  ! RS4      pS'       d:   \        R V 4       4      pRV 2pW$.,          p\        V3R l4       pV! W3R7      p \        P                  P                  VS	4      ! V 4      # )z5exclusions not supported for class level combinationsr#  r  z, *c              3  óV   "  € T F  qP                  R 4      '       g   K  ^x € K!  	  R# 5i)Ú_exclusionsN)rñ   )r+  r±  s   & r   r.  ÚHPytestFixtureFunctions.combinations.<locals>.decorate.<locals>.<genexpr>G  s   é € ð 'Ù#/˜a·<±<À×3NŸš£<ùs   ‚)Ÿ
)Ú_exclusions_c                óˆ   <€ VR,          pV'       d'   SP                  4       P                  ! V!  pV! V 4      p V ! VRR / VB # )r  NrQ  )r¸  Úadd)ré   r  r7   rÅ  Úexlur´  s   &*,  €r   Úcheck_exclusionsÚOPytestFixtureFunctions.combinations.<locals>.decorate.<locals>.check_exclusionsM  sG   ø€ à&*¨2¥h˜ß&Ø#-×#6Ñ#6Ó#8×#<Ò#<¸kÑ#J˜DÙ!% b£˜BÙ! 4¨¨ 9Ð3°Ñ3Ð3r   )r‰  )rú   rû   ÚNotImplementedErrorr0  r#  r   Úgetfullargspecr  r)  r(  Úsumr  rÅ   rá   Úparametrize)
ré   Ú_fn_argnamesÚ	_argnamesÚexisting_exlÚcurrent_exclusion_namerË  r¶  r´  Úhas_exclusionsÚpytest_paramss
   &     €€€€r   rŽ  Ú5PytestFixtureFunctions.combinations.<locals>.decorate5  s  ø€ Ü�Š˜r×"Ò"ß!Ü-ØOóð ð %¨B¯K©KÔ7Ø)+�BÔ&Ø×"Ñ"×)Ñ)¨8°]Ð*CÔDØ�	ä&×5Ò5°bÓ9×>Ñ>¸rÕB�ØÒ#Ø ,‘Iä "§¢¨°Ó :�Iç!Ü#&ñ 'Ù#/ó'ó $�Lð 0<¸L¸>Ð-JÐ*ØÐ!9Õ9�Iä)ô4ó *ð4ñ *ØÐ6Oô�Bô —{‘{×.Ñ.¨y¸-ÔHÈÓLÐLr   )r±  r¯  r°  r»  )r�   r´  ÚlenrT   rM   r2   Ú_combination_id_fnsÚoperatorÚ
itemgetterÚ	enumeraterÄ   rZ  r   rL   rÅ   r,  )r   Úarg_setsr7   r¼  r¾  Útobuild_pytest_paramsrÙ  ÚidxÚcharÚ_arg_getterÚfnsÚ	fn_paramsÚparam_exclusionsÚ
parametersr,  rŽ  r>  r¶  r´  rÕ  rÖ  s   &*,             @@@@@r   ÚcombinationsÚ#PytestFixtureFunctions.combinations×  s(  ü€ õ 	2äˆx‹=˜AÔ¤'¨(°1­+°z×"BÒ"BÜ˜H Q�KÓ(ˆHà—6‘6˜* dÓ+ˆõ		/ð �f‰f�U˜DÓ!ˆà "ÐØˆßˆ3Ø"&×":Ñ":Ðô
 #×-Ò-Øðô &/¨s¤^ôá%3™	˜ØÐ3Ñ3÷ �CÙ%3òóˆKô "+¨3¤ôá!/‘I�CØÑ.ô F”×$Ò$ SÓ)Ð+>Õ+DÓEÙ!/ð ñ ó  �Ü! #¤u×-Ò-Ø˜&�Cá.@ÀÓ.EÑ+�	á(¨Ó3°BÕ7�
ç#Ø%)�Nà%×,Ñ,à"Ø(ØŸ™ô !ÙHKó!ó ðöò  ó,  �Ü! #¤u×-Ò-Ø˜&�Cá.@ÀÓ.EÑ+�	ç#Ø%)�Nà%×,Ñ,Ø°$Ð7öñ  ð ˆÛ1FÑ-ˆJ¨#ßØÐ1Õ1�
ä—L’L *Ð5°Ñ5ˆEØ× Ñ  Ö'ñ 2G÷$	Mð $	MðL ˆùó{ùós   Â*HÂ:HÃ
HÃ%"Hc                	óN   € V^ ,          p\         P                  ! VR,          RV/ # )r   r  r'  )rÅ   r,  )r   rå  Úidents   &* r   Úparam_identÚ"PytestFixtureFunctions.param_ident]  s#   € Ø˜1•ˆÜ�|Š|˜Z¨�^Ð6°Ñ6Ð6r   c                	óú   aaa€ ^ RI Ho ^ RI Ho \        V4      ^ 8”  d,   \	        V^ ,          4      '       d   V^ ,          pVR,          pMRp\
        P                  ! V/ VB oVVV3R lpV'       d	   V! V4      # V# )r   rù   r�   r  Nc                óÌ   <€ \        V \        4      pV'       d   V P                  p SP                  '       d   SP	                  V 4      p V'       d   \        V 4      p S! V 4      p V # r   )rÄ   r  r  rý   Ú_maybe_async_wrapper)ré   r   rŽ   r@   Úfixtures   & €€€r   r—  Ú,PytestFixtureFunctions.fixture.<locals>.wrapw  sU   ø€ Ü'¨¬KÓ8ˆNßØ—[‘[�à××ÐØ×1Ñ1°"Ó5�÷ Ü  “_�ñ ˜“ˆBàˆIr   )r�   r@   rŽ   rØ  r  rÅ   rï  )r   r>  r7   ré   r—  rŽ   r@   rï  s   &*,  @@@r   rï  ÚPytestFixtureFunctions.fixturea  sj   ú€ Ý-Ý.ô ˆs‹8�aŒ<œH S¨¥V×,Ò,à�Q•ˆBØ�b•'‰Cð ˆBô —.’. #Ð,¨Ñ,ˆ÷	÷" Ù˜“8ˆOàˆKr   c                	ó@   € \         P                  P                  R 4      # )ÚPYTEST_CURRENT_TEST)rX   ÚenvironÚgetr¤  s   &r   Úget_current_test_nameÚ,PytestFixtureFunctions.get_current_test_name�  s   € Ü�z‰z�~‰~Ð3Ó4Ð4r   c                	ó>   a€ ^ RI Ho \        V3R l4       pV! V4      # )r   r�   c                ó4   <€ SP                   ! V .VO5/ VB  R # r   )Ú_run_coroutine_functionr  s   &*,€r   rŽ  Ú3PytestFixtureFunctions.async_test.<locals>.decorate“  s   ø€ à×+Ò+¨BÐ@°Ò@¸Ô@r   )r�   rŽ   r  )r   ré   rŽ  rŽ   s   && @r   Ú
async_testÚ!PytestFixtureFunctions.async_test�  s&   ø€ Ý.ä	ô	Aó 
ð	Añ ˜‹|Ðr   r   N)r   r   r   r   r�  r¡  Úpropertyr¥  r©  ÚreprrY  rÙ  ræ  rê  rï  rö  rü  r   r   r   r   ra   ra   ª  sb   † òò*1ð ñó ðò
ð 	‰_ØˆTØˆSØñ 
ð	ÐòDòL7ò*òX5ör   ra   )T)2Ú
__future__r   r3   r½   Ú	functoolsr   r   rú   r1  rÚ  rX   r)  rz   Útypingr   r¯   rÅ   Úsqla_plugin_baser   ÚImportErrorr&  r=   rf   rc   rï  rn   rŠ   r’   r—   rš   r¨   rS   r÷   r  r	  rþ   rÿ   rF  rJ  rN  Úhookimplr]  r`  rV  re  rm  rv  r  ÚFixtureFunctionsra   r   r   r   Ú<module>r     s[  ðõ #ã Û Ý $Ý Û Û Û Û 	Û 	Û 
Ý  Û ã ðçÛ.ò.+õb#ðL €ð ‡‚˜Ôñó ðòò@2òHòòE÷(
ñ 
ò2eòPò4+ôò@ðB €àÐ òCð6 ‡‚˜TÔ"ñ8#ó #ð8#òvð €ò!ð ‡‚�gÔñ;ó ð;ð  ‡‚�jÔ!ñ51ó "ð51ò|,ô^m˜[×9Ñ9ö møðY ô çðús   ÁD Á
D ÄD ÄD 