+
    }¯³j©Z  ã                  ó°  a € 0 t $ ^ RIHt ^ RIt^ RIHt ^ RIt^ RIs^ RIt^ RI	H
t
 ^ RIt^ RIt^ RIHt ^ RIHt  Rt\        P$                  ! R4      tRsRsRsRsRsRsRsRtRsRsRsRsRs] ! 4       t!] ! 4       t"Rs#R	]$R
&   R t%R t&R t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R t1R t2R t3. t4. t5R t6R t7]6R 4       t8]6R 4       t9]7R 4       t:]7R 4       t;]6R  4       t<]7R! 4       t=]7R" 4       t>R# t?]7R$ 4       t@]7R% 4       tA]7R& 4       tBR' tCR( tDR) tER* tFR+ tGR, tHR- tIR. tJR/ tKR0 tLR1 tMR2 tNR9R3 ltOR4 tPR5 tQ ! R6 R7]P¤                  4      tSRsTR8 tUR# ):é    )ÚannotationsN)Ú	Namespace)ÚPath)ÚAny)ÚasyncioFzsqlalchemy.testing.plugin_baser   Úoptionsc           	     óZ  € V ! R R\         \        RR7       V ! RR\         \        RR7       V ! RR\         RR	R
7       V ! RR\        RR7       V ! RR\         RRR
7       V ! RR\         RRR
7       V ! RRRRR7       V ! RRRR7       V ! RR\        R4      RR7       V ! RR\	        R 4      R!R7       V ! R"R\	        R#4      R$R7       V ! R%R\	        R&4      R'R7       V ! R(\         R)R*R+R,7       V ! R-\         R.R/R07       V ! R1RR2R3R7       V ! R4\         R5R6R07       V ! R7R\         \
        R8R7       V ! R9R\        \         R:R;7       V ! R<R\        \         R=R;7       V ! R>RR?R@RARB7       V ! RCRRDR@RERB7       V ! RF\         RGRHR07       V ! RI\         R. RJRKRL7       V ! RM\         RNRO7       V ! RPRRQR7       RR# )Sz
--log-infoÚcallbackz,turn on info logging for <LOG> (multiple OK))ÚactionÚtyper
   Úhelpz--log-debugz-turn on debug logging for <LOG> (multiple OK)z--dbÚappendÚdbzBUse prefab database uri. Multiple OK, first one is run by default.)r   r   Údestr   z--dbszList available prefab dbs)r   Úzeroarg_callbackr   z--dburiÚdburiz8Database uri.  Multiple OK, first one is run by default.z
--dbdriverÚdbdriverz|Additional database drivers to include in tests.  These are linked to the existing database URLs by the provisioning system.z--dropfirstÚ
store_trueÚ	dropfirstz,Drop all tables in the target database first)r   r   r   z--disable-asyncioz9disable test / fixtures / provisioning running in asyncio)r   r   z--backend-onlyÚbackendz}Run only tests marked with __backend__ or __sparse_backend__; this is now equivalent to the pytest -m backend mark expressionz
--nomemoryÚmemory_intensivezpDon't run memory profiling tests; this is now equivalent to the pytest -m 'not memory_intensive' mark expressionz--notimingintensiveÚtiming_intensivezpDon't run timing intensive tests; this is now equivalent to the pytest -m 'not timing_intensive' mark expressionz--nomypyÚmypyz_Don't run mypy typing tests; this is now equivalent to the pytest -m 'not mypy' mark expressionz--profile-sortÚ
cumulativeÚprofilesortz*Type of sort for profiling standard output)r   Údefaultr   r   z--profile-dumpÚprofiledumpz2Filename where a single profile run will be dumped)r   r   r   z--low-connectionsÚlow_connectionsz>Use a low number of distinct connections - i.e. for Oracle TNSz--write-identsÚwrite_identszCwrite out generated follower idents to <file>, when -n<num> is usedz--requirementsz3requirements class for testing, overrides setup.cfgz--include-tagzAInclude tests with tag <tag>; legacy, use pytest -m 'tag' instead)r   r
   r   r   z--exclude-tagzEExclude tests with tag <tag>; legacy, use pytest -m 'not tag' insteadz--write-profilesÚwrite_profilesFz$Write/update failing profiling data.)r   r   r   r   z--force-write-profilesÚforce_write_profilesz,Unconditionally write/update profiling data.z--dump-pyannotateÚdump_pyannotatez/Run pyannotate and dump json info to given filez--mypy-extra-test-pathÚmypy_extra_test_pathszlAdditional test directories to add to the mypy tests. This is used only when running mypy tests. Multiple OK)r   r   r   r   r   z--postgresql-templatedbz^name of template database to use for PostgreSQL CREATE DATABASE (defaults to current database))r   r   z--oracledb-thick-modez:enables the 'thick mode' when testing with oracle+oracledbN)ÚstrÚ_logÚ	_list_dbsÚ_set_tag_includeÚ_set_tag_excludeÚ_requirements_optÚ_include_tagÚ_exclude_tag)Úmake_options   &Úf/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sqlalchemy/testing/plugin/plugin_base.pyÚsetup_optionsr.   ;   su  € ÙØØÜÜØ;õñ ØØÜÜØ<õñ ØØÜØð'õñ ØØÜ"Ø(õ	ñ ØØÜØØGõñ ØØÜØðõñ ØØØØ;õ	ñ ØØØHõñ
 ØØÜ)¨)Ó4ðNõñ ØØÜ)Ð*<Ó=ðõ	ñ ØØÜ)Ð*<Ó=ðõ	ñ ØØÜ)¨&Ó1ðMõ	ñ ØÜØØØ9õñ ØÜØØAõ	ñ ØØØðõ	ñ ØÜØðõ	ñ ØØÜÜ"ØBõñ ØØÜÜð.õñ ØØÜÜð2õñ ØØØØØ3õñ Ø ØØ#ØØ;õñ ØÜØØ>õ	ñ Ø ÜØØØ$ðAõñ Ø!Üð9õñ ØØØI÷ó    c                ó   € ^ RI Hp Wn        R# )zxConfigure required state for a follower.

This invokes in the parent process and typically includes
database creation.

©Ú	provisionN)Úsqlalchemy.testingr2   ÚFOLLOWER_IDENT)Úfollower_identr2   s   & r-   Úconfigure_followerr6   ð   s   € õ -à-Ör/   c                ó   € R# )z£Store important configuration we will need to send to a follower.

This invokes in the parent process after normal config is set up.

Hook is currently not used.

N© ©Údict_s   &r-   Ú!memoize_important_follower_configr;   ü   ó   ‚ r/   c                ó   € R# )z{Restore important configuration needed by a follower.

This invokes in the follower process.

Hook is currently not used.

Nr8   r9   s   &r-   Ú!restore_important_follower_configr>     r<   r/   c                óž   € \         P                  ! 4       s\        P                  \	        V R ,          4      \	        V R,          4      .4       R# )z	setup.cfgztest.cfgN)ÚconfigparserÚConfigParserÚfile_configÚreadr$   )Ú	root_paths   &r-   Úread_configrE     s:   € ä×+Ò+Ó-€KÜ×ÑÜ	ˆY˜Õ$Ó	%¤s¨9°zÕ+AÓ'BÐCör/   c                óF   € V s \         F  pV! \         \        4       K  	  R# )z7things to set up early, before coverage might be setup.N)r   Úpre_configurerB   )ÚoptÚfns   & r-   Ú	pre_beginrJ     s   € ð €GßˆÙ
Œ7”KÖ ó r/   c                ó   € V \         n        R # ©N)r   Úhas_coverage)Úvalues   &r-   Úset_coverage_flagrO      s
   € Ø „GÖr/   c                 óº   € \          F  p V ! \        \        4       K  	  ^ RIHs ^ RIHsHsHs ^ RIH	s	H
s
Hs ^ RIHsHs ^ RIHs \        P                  4        R# )z9things to set up later, once we know coverage is running.©Útesting)ÚfixturesÚenginesÚ
exclusions)Ú
assertionsÚwarningsÚ	profiling)Úconfigr2   )ÚutilN)Úpost_configurer   rB   Ú
sqlalchemyrR   r3   rS   rT   rU   rV   rW   rX   rY   r2   rZ   Úsetup_filters©rI   s    r-   Ú
post_beginr_   $  s;   € ÷ ˆÙ
Œ7”KÖ ñ õ #ß@Ñ@ßBÑBß4Ýä×ÑÖr/   c                ó€  € \         '       g   ^ RI s \         P                  ! 4        V P                  R4      '       d6   \         P                  ! V4      P	                  \         P
                  4       R# V P                  R4      '       d6   \         P                  ! V4      P	                  \         P                  4       R# R# )r   Nz-infoz-debug)ÚloggingÚbasicConfigÚendswithÚ	getLoggerÚsetLevelÚINFOÚDEBUG©Úopt_strrN   Úparsers   &&&r-   r%   r%   6  sw   € ç‹7Ûä×ÒÔà×Ñ˜× Ò Ü×Ò˜%Ó ×)Ñ)¬'¯,©,Ö7Ø	×	Ñ	˜(×	#Ò	#Ü×Ò˜%Ó ×)Ñ)¬'¯-©-Ö8ñ 
$r/   c            	     ó,  € \         f   \        \        P                  ! 4       4       \	        R4       \        \         P                  R4      4       F*  p\	        V:R R\         P                  RV4      : 24       K,  	  \        P                  ! ^ 4       R # )Nz0Available --db options (use --dburi to override)r   z>20Ú	)
rB   rE   r   ÚcwdÚprintÚsortedr   ÚgetÚsysÚexit)ÚargsÚmacros   * r-   r&   r&   C  s^   € ÜÒô 	”D—H’H“JÔÜ	Ð
<Ô=Üœ×+Ñ+¨DÓ1Ö2ˆÜœE¤;§?¡?°4¸Õ#?Ð@ÖAñ 3ä‡H‚HˆQ†Kr/   c                ó   € \        V4       R # rL   )Ú_setup_requirementsrh   s   &&&r-   r)   r)   N  s
   € Ü˜Ör/   c                ó   a € V 3R  lpV# )c                ó"   <€ \        V SV4       R # rL   )r*   ©ri   rN   rj   Útags   &&&€r-   Ú_do_include_tagÚ)_set_tag_include.<locals>._do_include_tagS  ó   ø€ Ü�W˜c 6Ö*r/   r8   )rz   r{   s   f r-   r'   r'   R  ó   ø€ õ+ð Ðr/   c                ó   a € V 3R  lpV# )c                ó"   <€ \        V SV4       R # rL   )r+   ry   s   &&&€r-   Ú_do_exclude_tagÚ)_set_tag_exclude.<locals>._do_exclude_tagZ  r}   r/   r8   )rz   r�   s   f r-   r(   r(   Y  r~   r/   c                óP   € \         P                  VP                  R R4      4       R# ©Ú-Ú_N)Úexclude_tagsÚaddÚreplacerh   s   &&&r-   r+   r+   `  ó   € Ü×Ñ�U—]‘] 3¨Ó,Ö-r/   c                óP   € \         P                  VP                  R R4      4       R# r„   )Úinclude_tagsrˆ   r‰   rh   s   &&&r-   r*   r*   d  rŠ   r/   c                ó0   € \         P                  V 4       V # rL   )rG   r   r^   s   &r-   ÚprerŽ   l  s   € Ü×Ñ˜ÔØ€Ir/   c                ó0   € \         P                  V 4       V # rL   )r[   r   r^   s   &r-   Úpostr�   q  s   € Ü×Ñ˜"ÔØ€Ir/   c                ó
   € V s R # rL   ©r   ©rH   rB   s   &&r-   Ú_setup_optionsr”   v  s	   € ð ‚Gr/   c                ó^   € ^ RI Hp VP                  RRR4       VP                  RRR4       R# )r   )Úregistryzsqlite.pysqlite_numericz#sqlalchemy.dialects.sqlite.pysqliteÚ_SQLiteDialect_pysqlite_numericzsqlite.pysqlite_dollarÚ_SQLiteDialect_pysqlite_dollarN)Úsqlalchemy.dialectsr–   Úregister)rH   rB   r–   s   && r-   Ú _register_sqlite_numeric_dialectr›   |  s5   € å,à×ÑØ!Ø-Ø)ôð
 ×ÑØ Ø-Ø(ör/   c                ó²   € \         P                  P                  R R4      R8X  d   ^ RIHp  V! RR7       R# R#   \
         d   p\        R4      ThRp?ii ; i)ÚREQUIRE_SQLALCHEMY_CEXTÚ0Ú1)Úhas_compiled_extT)Úraise_zEREQUIRE_SQLALCHEMY_CEXT is set but can't import the cython extensionsN)ÚosÚenvironrp   Úsqlalchemy.utilr    ÚImportErrorÚAssertionError)rH   rB   r    Úerrs   &&  r-   Ú__ensure_cextr¨   Œ  sX   € ä	‡z�z‡~�~Ð/°Ó5¸Ô<Ý4ð	Ù D×)ñ	 =øô
 ô 	Ü ð$óð ðûð	ús   ­	: ºAÁAÁAc                ó0   € ^ RI Hp \        4       Vn        R# ©r   ©rY   N)r3   rY   Ú_fixture_fn_classÚ_fixture_functions)r   rB   rY   s   && r-   Ú_init_symbolsr®   š  s   € å)ä 1Ó 3€FÖr/   c                óD   € V P                   '       d   R \        n        R# R# )FN)Údisable_asyncior   ÚENABLE_ASYNCIOr“   s   &&r-   Ú_set_disable_asyncior²   ¡  s   € à
××ÐØ!&ŒÖñ r/   c                ó˜  € ^ RI Hp ^ RIHp ^ RIHp ^ RIHp V P                  '       d   \        V P                  4      pM. pV P                  ;'       g    . pV P                  '       dz   V P                   Fi  p\        P                  ! RV4       FK  p	W‘P                  R4      9  d   \        RV	,          4      hVP                  VP!                  RV	4      4       KM  	  Kk  	  V'       g"   VP                  VP!                  RR4      4       R	Vn        V P$                  '       d’   VP&                  '       d€   V U
u. uF  q¥P)                  V
4      NK  	  up
 F[  p
\+        V P$                  R
4      ;_uu_ 4       pVP-                  VP&                   RV
P/                  RR7       R24       R	R	R	4       K]  	  \        VP1                  Wg4      4      pV FZ  p
\2        P5                  RV
4       VP7                  W WP&                  4      pVP"                  '       d   KI  VP9                  WÒ4       K\  	  R	# u up
i   + '       g   i     Kñ  ; i)r   rQ   r«   r1   )Úurlz[,\s]+r   z:Unknown URI specifier '%s'.  Specify --dbs for known uris.r   NÚaÚ F)Úhide_passwordÚ
zAdding database URL: %s)r\   rR   r3   rY   r2   Úsqlalchemy.enginer´   r   Úlistr   r   ÚreÚsplitr   ÚRuntimeErrorr   rp   Ú_currentr   r4   Úmake_urlÚopenÚwriteÚrender_as_stringÚgenerate_db_urlsÚlogÚinfoÚsetup_configÚset_as_current)r   rB   rR   rY   r2   Úsa_urlÚdb_urlsÚextra_driversÚdb_tokenr   Údb_urlÚfile_Úexpanded_urlsÚcfgs   &&            r-   Ú_engine_urirÐ   §  sÏ  € å"Ý)Ý,Ý/à‡}‡}€}Ü�w—}‘}Ó%‰àˆà×$Ñ$×*Ð*¨€Mà‡z‡z€zØŸ
œ
ˆHÜ—h’h˜y¨(Ö3�Ø×0Ñ0°Ó6Ô6Ü&ð8Ø:<õ=óð ð
 —N‘N ;§?¡?°4¸Ó#<Ö=ó 4ñ #÷ Ø�‰�{—‘ t¨YÓ7Ô8à€F„Oà××Ð 	× 8× 8Ð 8Ù=DÓE¹W°6—‘ vÖ.¹WÔEˆFÜ�g×*Ñ*¨C×0Ô0°EØ—‘Ø ×/Ñ/Ð0°Ø×.Ñ.¸UÐ.ÓCÐDÀBðHô÷ 1Ñ0ñ Fô ˜×3Ñ3°GÓKÓL€MãˆÜ�‰Ð*¨FÔ3à×$Ñ$Ø˜[×*BÑ*Bó
ˆð ��ŠØ×Ñ˜sÖ,ó  ùò Fß0×0Ð0ús   Ä<H3Å92H8È8I	c                ó@   € VP                  R R4      p\        V4       R# )Úsqla_testingÚrequirement_clsN)rp   rv   )r   rB   rÓ   s   && r-   Ú_requirementsrÔ   Ù  s   € à!—o‘o nÐ6GÓH€OÜ˜Ö(r/   c                ó   € ^ RI Hp ^ RIHp V P	                  R4      w  r4\        V4      pVP	                  R4      R,           F  p\        WV4      pK  	  \        WT4      pV! 4       ;Vn        Vn        \        Vn	        R# )r   r«   rQ   Ú:Ú.:é   NNN)
r3   rY   r\   rR   r¼   Ú
__import__ÚgetattrÚrequirementsÚrequiresÚbootstrapped_as_sqlalchemy)ÚargumentrY   rR   ÚmodnameÚclsnameÚmodÚ	componentÚreq_clss   &       r-   rv   rv   ß  sn   € Ý)Ý"à—~‘~ cÓ*Ñ€Gô �WÓ
€CØ—]‘] 3Ó'¨×+Ð+ˆ	Ü�cÓ%Šñ ,ä�cÓ#€Gá-4«YÐ6€FÔ˜'Ô*ä(B€FÖ%r/   c                ó¾   € ^ RI Hp V P                  '       dE   ^ RI Hp VP                  P                  4        F  pVP                  WDP                  4       K   	  R# R# )r   r«   r1   N)r3   rY   r   r2   ÚConfigÚall_configsÚdrop_all_schema_objectsr   )r   rB   rY   r2   rÏ   s   &&   r-   Ú_prep_testing_databaserè   ñ  sB   € å)à××ÐÝ0à—=‘=×,Ñ,Ö.ˆCØ×-Ñ-¨c·6±6Ö:ó /ñ r/   c                ó4   € ^ RI Hp \        Vn        Wn        R# rª   )r3   rY   r   rB   )rH   rB   rY   s   && r-   Ú_post_setup_optionsrê   ü  s   € å)ä€F„NØ$Ör/   c                óŒ   € ^ RI Hp VP                  VP                  RR4      V P                  V P
                  R7      Vn        R# )r   )rX   rÒ   Úprofile_file)ÚsortÚdumpN)r3   rX   ÚProfileStatsFilerp   r   r   Ú_profile_stats)r   rB   rX   s   && r-   Ú_setup_profilingrñ     s=   € å,à(×9Ñ9Ø�‰˜¨Ó7Ø× Ñ Ø× Ñ ð  :ó  €IÖr/   c                ó|   € \        V\        P                  4      '       g   R # V P                  R4      '       d   R # R# )Fr†   T)Ú
issubclassrS   ÚTestBaseÚ
startswith)ÚnameÚclss   &&r-   Ú
want_classrø     s-   € Ü�cœ8×,Ñ,×-Ò-ÙØ	�‰˜×	Ò	Ùár/   c                ól   € VP                   P                  R 4      '       g   R# VP                  f   R# R# )Útest_FT)Ú__name__rõ   Ú
__module__)r÷   rI   s   &&r-   Úwant_methodrý     s*   € Ø�;‰;×!Ñ! '×*Ò*ÙØ	�‰Ò	Ùár/   c           	   #  óv  "  € R V9   g   RV9   g   RV9   dœ   RV9   pRV9   p\        WVR7       F~  pV P                  p\        P                  ! RRVP                  4      p\        P                  ! RRV4      pV P                  : RV: 2p\        VV 3RVR	V/4      p	\        WV	4       V	x € K€  	  R
# V x € R
# 5i)r   Úsparse_backendÚsparse_driver_backend)ÚsparseÚsparse_driverz
[_\[\]\.]+r†   z_+$Ú Ú_sa_orig_cls_nameÚ__only_on_config__N)Ú_possible_configs_for_clsrû   r»   Úsubrö   r   Úsetattr)
r÷   ÚmoduleÚmarkersr  r  rÏ   Ú	orig_nameÚ
alpha_namerö   Úsubclss
   &&&       r-   Úgenerate_sub_testsr  !  s¿   é € à�WÔØ˜wÔ&Ø" gÔ-à! WÑ,ˆØ/°7Ñ:ˆÜ,Ø¨m÷
ˆCð Ÿ™ˆIô Ÿš ¨s°C·H±HÓ=ˆJÜŸš ¨¨JÓ7ˆJØ!ŸlœlªJÐ7ˆDÜØØ�Ø$ iÐ1EÀsÐKóˆFô
 �F &Ô)ØŒLó%
ð( Œ	ùs   ‚B7B9c                ó2   € \        V 4       \        V 4       R # rL   )Ú	_do_skipsÚ_setup_engine©r÷   s   &r-   Ú!start_test_class_outside_fixturesr  @  s   € Üˆc„NÜ�#Ör/   c                ól   € \         P                  V 4       \        P                  P                  4        R # rL   )rS   Ústop_test_class_inside_fixturesrT   Útesting_reaperr  s   &r-   Ústop_test_classr  E  s$   € ä×,Ñ,¨SÔ1ô ×Ñ×:Ñ:Ö<r/   c                ó  € \         P                  \        \        P                  V 4       \        P
                  P                  4         \        P                  '       g   \        P                  4        \        4        R #   \        4        i ; irL   )r2   Ú stop_test_class_outside_fixturesrY   r   rT   r  r   r   rV   Úglobal_cleanup_assertionsÚ_restore_enginer  s   &r-   r  r  N  sT   € Ü×.Ñ.¬v´v·y±yÀ#ÔFÜ×Ñ×;Ñ;Ô=ðÜ×&×&Ð&Ü×0Ñ0Ô2äÖøŒÕús   Á	A? ÁA? Á?Bc                 ó|   € \         P                  '       d&   \         P                  P                  \        4       R # R # rL   )rY   r¾   ÚresetrR   r8   r/   r-   r  r  X  s"   € Ü‡‡€Ü�‰×ÑœgÖ&ñ r/   c                 ó~   € \         P                  P                  4        \        P	                  4        \        4        R # rL   )rT   r  Úfinal_cleanuprV   r  r  r8   r/   r-   Úfinal_process_cleanupr   ]  s&   € Ü×Ñ×(Ñ(Ô*Ü×(Ñ(Ô*ÜÖr/   c                óØ   € \        V R R4      '       dW   \        V P                  4      pRVR&   \        P	                  VR7      p\
        P                  P                  V\        4       R# R# )Ú__engine_options__NÚclassÚscoper’   )	rÚ   Údictr"  rT   Útesting_enginerY   r¾   Úpush_enginerR   )r÷   ÚoptsÚengs   &  r-   r  r  c  sW   € ÜˆsÐ(¨$×/Ò/Ü�C×*Ñ*Ó+ˆØˆˆW‰Ü×$Ñ$¨TÐ$Ó2ˆÜ�‰×#Ñ# C¬Ö1ñ	 0r/   c                óx   € \        VR VP                  4      pV: RV: RV: 2p\        P                  V4       R# )r  r×   N)rÚ   rû   rX   Ú_start_current_test)ÚtestÚtest_module_nameÚ
test_classÚ	test_namerö   Úid_s   &&&&  r-   Úbefore_testr1  k  s3   € ô �:Ð2°J×4GÑ4GÓH€Dã(«$²	Ð
:€Cä×!Ñ! #Ö&r/   c                ój   € \         P                  4        \        P                  P                  4        R # rL   )rS   Ú
after_testrT   r  ©r,  s   &r-   r3  r3  v  s    € Ü×ÑÔÜ×Ñ×%Ñ%Ö'r/   c                óD   € \         P                  P                  V 4       R # rL   )rT   r  Úafter_test_outside_fixturesr4  s   &r-   Úafter_test_fixturesr7  {  s   € Ü×Ñ×6Ñ6°tÖ<r/   c           	     ó®  € \        \        P                  P                  4       4      pV P                  '       dR   \
        P                  ! V P                  !  p\        V4       F$  pV! V4      '       g   K  VP                  V4       K&  	  \        V R R4      '       de   \
        P                  ! \        P                  V P                  4      !  p\        V4       F$  pV! V4      '       d   K  VP                  V4       K&  	  \        V RR4      '       d   VP                  V P                  .4       \        V R4      '       dÀ   \        P                   p\        V4       F   pV P"                   F�  p\        Wx4      p	V	P%                  V4      p
V
'       d*   VP                  V4       Ve   VP'                  V
4        K_  V	P)                  V4      pV'       g   Kk  \        V RR	4      \+        V4      ,           V n        K�  	  K¢  	  \        V R4      '       d�   \        4       p\        P                   p\        V4       FK  pV P.                   F8  p\        Wx4      p	V	P1                  V4      '       d   K'  VP3                  V4       K:  	  KM  	  VP5                  V4      '       d   VP7                  V4       V'       dV   / p\9        \;        VR R7      4      pV F&  pVP<                  P>                  pVV9  g   K"  WýV&   K(  	  VPA                  4       # V'       d¼   / p\        \9        \;        VR R7      4      4      pV F`  pVP<                  P>                  VP<                  PB                  PD                  3pVV9   d   VV,          PF                  '       d   K[  VVV&   Kb  	  \        VPA                  4       4      pV Uu. uF  qÿV9   g   K  VNK  	  up# V# u upi )
Ú__only_on__Nr  Ú__requires__Ú__warnings__Ú__prefer_requires__c                ó   € V P                   '       d   R MRV P                  P                  V P                  P                  V P                  P                  P
                  V P                  P                  P                  3# )Úzrµ   )Úis_default_dialectr   rö   ÚdriverÚdialectÚserver_version_infoÚis_async©rÏ   s   &r-   Ú<lambda>Ú+_possible_configs_for_cls.<locals>.<lambda>»  sO   € Ø×1×1Ð1‘C°sØ—F‘F—K‘KØ—F‘F—M‘MØ—F‘F—N‘N×6Ñ6Ø—F‘F—N‘N×+Ñ+ñ!r/   )Úkeyc                óÖ   € V P                   P                  V P                   P                  V P                   P                  P                  V P                   P                  P
                  3# rL   )r   rö   r@  rA  rB  rC  rD  s   &r-   rE  rF  Ô  s?   € ØŸ™Ÿ™ØŸ™Ÿ™ØŸ™Ÿ™×:Ñ:ØŸ™Ÿ™×/Ñ/ñ	%r/   r8   )$ÚsetrY   rå   ræ   Ú__unsupported_on__rU   Údb_specrº   ÚremoverÚ   rZ   Úto_listr9  Úintersection_updater  ÚhasattrrÛ   r:  Úmatching_config_reasonsÚextendÚmatching_warningsÚtupler;  r<  Úenabled_for_configrˆ   Ú
differenceÚdifference_updateÚreversedro   r   rö   ÚvaluesrA  rB  r?  )r÷   Úreasonsr  r  ræ   ÚspecÚ
config_objrÛ   ÚrequirementÚcheckÚskip_reasonsrW   Únon_preferredÚper_dialectÚsorted_all_configsrÏ   r   ÚdbsrG  Úchosen_cfgss   &&&&                r-   r  r    s0  € ô ”f—m‘m×/Ñ/Ó1Ó2€Kà
××ÐÜ×!Ò! 3×#9Ñ#9Ñ:ˆÜ˜{Ö+ˆJÙ�J×ÔØ×"Ñ" :Ö.ñ ,ô ˆs�M 4×(Ò(Ü×!Ò!¤4§<¡<°·±Ó#@ÑAˆÜ˜{Ö+ˆJÙ˜
×#Ô#Ø×"Ñ" :Ö.ñ ,ô ˆsÐ(¨$×/Ò/Ø×'Ñ'¨×)?Ñ)?Ð(@ÔAäˆs�N×#Ò#Ü×*Ñ*ˆÜ˜{Ö+ˆJØ"×/Ô/�Ü Ó:�à$×<Ñ<¸ZÓH�ßØ×&Ñ& zÔ2ØÒ*ØŸ™ |Ô4Úà ×2Ñ2°:Ó>�ß‘8Ü'.Ø˜^¨Ró(ä˜h›õ((�CÖ$ó  0ñ ,ô" ˆsÐ)×*Ò*Ü›ˆÜ×*Ñ*ˆÜ˜{Ö+ˆJØ"×6Ô6�Ü Ó:�à×/Ñ/°
×;Ô;Ø!×%Ñ% jÖ1ó	  7ñ ,ð ×!Ñ! -×0Ò0Ø×)Ñ)¨-Ô8çð ˆä%ÜØñô	ó
Ðó &ˆCØ—‘—‘ˆBØ˜Ö$Ø"%˜B“ñ &ð ×!Ñ!Ó#Ð#ß	ð ˆä!ÜÜØñôó
ó
Ðó &ˆCØ—6‘6—;‘; §¡§¡× BÑ BÐCˆCØ�cŒz˜c #�h×9×9Ð9Ùà��C“ñ &ô ˜#Ÿ*™*›,Ó'ˆÙ1ÓHÑ1˜¸KÑ5G—�Ñ1ÑHÐHàÐùò Is   Î:OÏOc           
     ó”  € . p\        W4      p\        V R R4      '       dT   \        V R 4       FC  pV! 4       '       g   K  \        P                  RV P                  : RVP                  : 24       KE  	  V'       g}   RV P
                  : RV P                  : RRP                  R \        P                  P                  4        4       4      : RP                  V4      : 2p\        P                  V4       MŸ\        V R4      '       dŽ   \        4       p\        P                  ! \        P                  V P                  4      !  pV F$  pV! V4      '       d   K  VP!                  V4       K&  	  VP#                  V4      '       d   VP%                  V4       \        P&                  V9  d   \)        VP+                  4       V 4       R	# R	# )
Ú__skip_if__FÚ'z' skipped by r×   z'' unsupported on any DB implementation z, c           
   3  óö   "  € T Fo  pR VP                   P                  : RRP                  R \        P	                  VP                   4       4       4      : RVP                   P
                  : R 2x € Kq  	  R# 5i)rf  Ú(r×   c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5irL   )r$   )Ú.0Údigs   & r-   Ú	<genexpr>Ú&_do_skips.<locals>.<genexpr>.<genexpr>þ  s   é € ð á#L˜Cô ˜CŸ˜Û#Lùs   ‚z)+N)r   rö   ÚjoinrU   Ú_server_versionr@  )rj  r[  s   & r-   rl  Ú_do_skips.<locals>.<genexpr>ú  sa   é € ð ñ #>‘Jð —M‘M×&Ô&Ø—H‘Hñ ä#-×#=Ñ#=¸j¿m¹mÔ#Lóö ð —M‘M×(Ô(õó #>ùs   ‚A7A9Ú__prefer_backends__N)r  rÚ   rY   Ú	skip_testrû   rü   rn  rå   ræ   rO  rI  rU   rK  rZ   rM  rq  rˆ   rU  rV  r¾   Ú_setup_configÚpop)r÷   rY  ræ   ÚcÚmsgr_  rZ  r[  s   &       r-   r  r  ë  sR  € Ø€GÜ+¨CÓ9€Käˆs�M 5×)Ò)Ü˜˜mÖ,ˆAÙ�sŒsÜ× Ò Ø,/¯L¬L¸!¿*»*ÐEöñ -÷ ˆ;à�NŒNØ�LŒLØ�I‰Iñ ô #)§-¡-×";Ñ";Ô"=óõ ð �I‰I�gÕð
ˆô" 	×Ñ˜ÕÜ	�Ð+×	,Ò	,Ü›ˆÜ×!Ò!¤4§<¡<°×0GÑ0GÓ#HÑIˆÛ%ˆJÙ˜
×#Ô#Ø×!Ñ! *Ö-ñ &ð ×!Ñ! -×0Ò0Ø×)Ñ)¨-Ô8ä‡�˜kÔ)Ü�k—o‘oÓ'¨Ö-ñ *r/   c                óN   € \         P                  P                  V \        4       R # rL   )rY   r¾   ÚpushrR   )r[  Úctxs   &&r-   rs  rs    s   € Ü
‡O�O×Ñ˜¤WÖ-r/   c                  ó$  € ] tR tRt]P
                  R 4       t]P
                  R 4       t]P
                  R 4       t]P
                  R 4       t	R t
]P
                  R R l4       t]P                  R	 4       t]P
                  R
 R l4       tRtR# )ÚFixtureFunctionsi  c                	ó   € \        4       hrL   ©ÚNotImplementedError©ÚselfÚargÚkws   &*,r-   Úskip_test_exceptionÚ$FixtureFunctions.skip_test_exception  ó   € ä!Ó#Ð#r/   c                	ó   € \        4       hrL   r}  ©r€  rs   r‚  s   &*,r-   ÚcombinationsÚFixtureFunctions.combinations  r…  r/   c                	ó   € \        4       hrL   r}  r‡  s   &*,r-   Úparam_identÚFixtureFunctions.param_ident#  r…  r/   c                	ó   € \        4       hrL   r}  r  s   &*,r-   ÚfixtureÚFixtureFunctions.fixture'  r…  r/   c                	ó   € \        4       hrL   r}  ©r€  s   &r-   Úget_current_test_nameÚ&FixtureFunctions.get_current_test_name+  s   € Ü!Ó#Ð#r/   c               ó   € V ^8„  d   QhRR/# ©é   Úreturnr   r8   )Úformats   "r-   Ú__annotate__ÚFixtureFunctions.__annotate__/  s   € ÷ $ñ $ cñ $r/   c                	ó   € \        4       hrL   r}  r‘  s   &r-   Úmark_base_test_classÚ%FixtureFunctions.mark_base_test_class.  r…  r/   c                	ó   € \        4       hrL   r}  r‘  s   &r-   Úadd_to_markerÚFixtureFunctions.add_to_marker2  r…  r/   c               ó   € V ^8„  d   QhRR/# r•  r8   )r˜  s   "r-   r™  rš  7  s   € ÷ $ñ $¨ñ $r/   c                	ó   € \        4       hrL   r}  )r€  rI   s   &&r-   Úfixture_classmethodÚ$FixtureFunctions.fixture_classmethod6  r…  r/   r8   N)rû   rü   Ú__qualname__Ú__firstlineno__ÚabcÚabstractmethodrƒ  rˆ  r‹  rŽ  r’  rœ  ÚabstractpropertyrŸ  r£  Ú__static_attributes__r8   r/   r-   r{  r{    s»   † Ø×Ññ$ó ð$ð 	×Ññ$ó ð$ð 	×Ññ$ó ð$ð 	×Ññ$ó ð$ò$ð 	×Ñô$ó ð$ð 	×Ññ$ó ð$ð 	×Ñô$ó ô$r/   r{  c                ó
   € V s R # rL   )r¬   )Úfixture_fn_classs   &r-   Úset_fixture_functionsr­  >  s   € à(Òr/   )NFF)VÚ__conditional_annotations__Ú
__future__r   r§  Úargparser   r@   ra   r¢   Úpathlibr   r»   rq   Útypingr   r3   r   rÝ   rd   rÄ   rS   rT   rU   rW   rX   r2   rV   rÛ   rY   rR   rZ   rB   rI  rŒ   r‡   r   Ú__annotations__r.   r6   r;   r>   rE   rJ   rO   r_   r%   r&   r)   r'   r(   r+   r*   rG   r[   rŽ   r�   r”   r›   r¨   r®   r²   rÐ   rÔ   rv   rè   rê   rñ   rø   rý   r  r  r  r  r  r   r  r1  r3  r7  r  r  rs  ÚABCr{  r¬   r­  )r®  s   @r-   Ú<module>rµ     sC  øð÷ #Ð "ã 
Ý Û Û Û 	Ý Û 	Û 
Ý å &ðð #Ð ä×ÒÐ8Ó9€ð €Ø
€Ø€
Ø€Ø€	Ø€	Ø€
Ø€Ø	€Ø
€Ø€Ø€à
€Ù‹u€Ù‹u€Ø€ˆÓ òròj	.òòòò!ò!òò$
9òòòòò.ò.ð €Ø€òò
ð
 ñó ðð
 ñó ðð ñ
ó ð
ð ñ4ó ð4ð ñ'ó ð'ð
 ñ.-ó ð.-ðb ñ)ó ð)ò
Cð$ ñ;ó ð;ð ñ%ó ð%ð ñó ðòòòò>ò
=òò'ò
ò2ò'ò(ò
=ôiòX(.òV.ô$�s—w‘wô $ðB Ð ô)r/   