+
    }¯³j6  ã                   óÎ  € ^ RI t ^ RIt^RIHt ^RIHt ^RIHt ^RIH	t	 ^RI
Ht ^RI
Ht ^RI
Ht ^R	I
Ht ^R
I
Ht ^RI
Ht ^RI
Ht ^RI
Ht ^RI
Ht ^RI
Ht ^RI
Ht 0 R"mtR t]P0                  ! R4      R 4       t]P0                  ! R4      R 4       t]P0                  ! R4      R 4       t]P0                  ! R4      R 4       t]P0                  ! R4      R 4       t]P0                  ! R4      R 4       tR t]P0                  ! R4      R 4       t]P0                  ! R4      R 4       t]P0                  ! R4      R 4       t ]P0                  ! R4      RRRRR R/R! l4       t!R# )#é    N©Úevent)Úexc)Úurl)Úconfig)Ú	create_db)Údrop_db)Úfollower_url_from_main)Úgenerate_driver_url)Úlog)Úpost_configure_engine)Úpost_configure_testing_engine)Úrun_reap_dbs)Ú stop_test_class_outside_fixtures)Útemp_table_keyword_args)Úupsertc                ó|  € \         P                  ! V 4      p Vf   V P                  4       pV P                  pVR8H  pRpV'       dÇ   VR8w  dÀ   RV9  g   Q h\        P
                  ! RV4      pV F6  pV\        9   d	   Vf   TpK  VR9   d   K  Ve   K%  VP                  R4      pK8  	  V'       g   Q RV P                   24       hV RV 2pV'       d   VRV 2,          pVR,          pV'       d
   VR	,          pV P                  VR
7      p V'       d   V P                  RR7      p V P                  RV: 2R7      p V # )zMgiven a sqlite url + desired driver + ident, make a canonical
URL out of it

NÚpysqlcipherú:memory:Útest_schemaz[_\.]Ú_z#sqlite filename has no name token: ú.dbz.enc)ÚdatabaseÚtest)Úpasswordzsqlite+)Ú
drivername)ÚdbÚenc)	Úsa_urlÚmake_urlÚget_driver_namer   ÚreÚsplitÚ_drivernamesÚstripÚset)	r   ÚdriverÚidentÚfilenameÚ	needs_encÚ
name_tokenÚtokensÚtokenÚnew_filenames	   &&&      Úe/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sqlalchemy/dialects/sqlite/provision.pyÚ_format_urlr0   &   s3  € ô
 �/Š/˜#Ó
€Cà‚~Ø×$Ñ$Ó&ˆà�|‰|€Hà˜-Ñ'€IØ€Jç�H 
Ô*Ø HÔ,Ð,Ð,Ü—’˜( HÓ-ˆãˆEØœÔ$Ø’>Ø"�FÙØ˜-Ô'ÙØÔ#Ø"Ÿ[™[¨Ó-’
ñ ÷ ÐOÐ@ÀÇÁÀÐOÓOˆzà$˜ Q v hÐ/ˆßØ˜a ˜w˜KÕ'ˆLØ˜ÕˆßØ˜FÕ"ˆLØ�g‰g˜|ˆgÓ,ˆçØ�g‰g˜vˆgÓ&ˆà
�'Š'ªFÐ4ˆ'Ó
5€Cà€Jó    Úsqlitec                 óx   € \        WR 4      p  V P                  4        V #   \        P                   d     R # i ; i©N)r0   Úget_dialectr   ÚNoSuchModuleError)r   r'   Ú	query_strs   &&&r/   r   r   U   s>   € ä
�c 4Ó
(€CðØ�‰Ôð ˆ
øô × Ñ ô Úðús   Ž   9¸9c                 ó   € \        V R V4      # r4   )r0   )r   r(   s   &&r/   Ú_sqlite_follower_url_from_mainr9   a   s   € ä�s˜D %Ó(Ð(r1   c                 óØ   a€ ^ RI Hp V'       d   V RVP                   R2oMVP                   R2oVP                  ! VR4      V3R l4       pVP                  ! VR4      V3R l4       pR# )	r   r   r   z_test_schema.dbÚconnectc                 ó2   <€ V P                  R S R24       R# )zATTACH DATABASE "z" AS test_schemaN)Úexecute)Údbapi_connectionÚconnection_recordÚattach_paths   &&€r/   r;   Ú._sqlite_post_configure_engine.<locals>.connecto   s    ø€ ð 	× Ñ Ø ˜}Ð,<Ð=ö	
r1   Úengine_disposedc                óJ  <€ \         P                  P                  S4      '       d   \         P                  ! S4       V P                  P
                  pV'       dI   VR8w  d@   \         P                  P                  V4      '       d   \         P                  ! V4       R# R# R# R# )zœmost databases should be dropped using
stop_test_class_outside_fixtures

however a few tests like AttachedDBTest might not get triggered on
that main hook

r   N)ÚosÚpathÚexistsÚremover   r   )Úenginer)   r@   s   & €r/   ÚdisposeÚ._sqlite_post_configure_engine.<locals>.dispose}   sf   ø€ ô �7‰7�>‰>˜+×&Ò&Ü�IŠI�kÔ"à—:‘:×&Ñ&ˆç˜ JÔ.´2·7±7·>±>À(×3KÒ3KÜ�IŠI�hÖñ 4LÑ.‰8r1   N)Ú
sqlalchemyr   r'   Úlistens_for)r   rH   Úfollower_identr   r;   rI   r@   s   &&&   @r/   Ú_sqlite_post_configure_enginerN   f   sq   ø€ å çØ'Ð(¨¨&¯-©-¨¸ÐH‰àŸ™˜ Ð7ˆà
×Ò�v˜yÓ)ô
ó *ð
ð ×Ò�vÐ0Ó1ô ó 2ò r1   c                 ó´  € VP                  R R4      pVP                  RR4      pV'       dL   VP                  R8X  d;   \        P                  ! VR4      R 4       p\        P                  ! VR4      R 4       pV'       dY   \	        VP
                  R4      '       d;   RVR	&   VP
                  P                  \        P                  P
                  4       R
# R
# R
# )Úsqlite_savepointFÚsqlite_share_poolr2   r;   c                 ó   € R V n         R # r4   )Úisolation_level)r>   r?   s   &&r/   Ú
do_connectÚ9_sqlite_post_configure_testing_engine.<locals>.do_connect˜   s   € à/3ÐÖ,r1   Úbeginc                 ó(   € V P                  R 4       R# )ÚBEGINN)Úexec_driver_sql)Úconns   &r/   Údo_beginÚ7_sqlite_post_configure_testing_engine.<locals>.do_beginœ   s   € à× Ñ  Ö)r1   Ú_transfer_fromÚ
use_reaperN)	ÚgetÚnamer   rL   ÚhasattrÚpoolr]   r   r   )r   rH   ÚoptionsÚscoperP   rQ   rT   r[   s   &&&&    r/   Ú%_sqlite_post_configure_testing_enginere   �   s½   € ð —{‘{Ð#5°uÓ=ÐØŸ™Ð$7¸Ó?Ðç˜FŸK™K¨8Ô3ä	×	Ò	˜6 9Ó	-ñ	4ó 
.ð	4ô 
×	Ò	˜6 7Ó	+ñ	*ó 
,ð	*÷ ô �6—;‘;Ð 0×1Ò1Ø$)ˆG�LÑ!Ø�K‰K×&Ñ&¤v§y¡y§~¡~Ö6ñ 2ñ	 r1   c                 ó   € R # r4   © ©ÚcfgÚengr(   s   &&&r/   Ú_sqlite_create_dbrk   ©   s   € ár1   c                 ó\   € \        VP                  P                  VP                  V4       R # r4   )Ú_drop_dbs_w_identr   r   r'   rh   s   &&&r/   Ú_sqlite_drop_dbrn   ®   s   € ä�c—g‘g×&Ñ&¨¯
©
°EÖ:r1   c                 óþ   € \         P                  ! R 4       Fb  p\         P                  P                  V4      w  rEW$9   g   K,  VR9   g   K5  \        P
                  ! RV4       \         P                  ! V4       Kd  	  R# )Ú.z!deleting SQLite database file: %sN)r   z.db.enc)rD   ÚlistdirrE   r#   r   ÚinforG   )Údatabasenamer'   r(   rE   ÚfnameÚexts   &&&   r/   rm   rm   ³   sO   € Ü—
’
˜3–ˆÜ—W‘W—]‘] 4Ó(‰
ˆØŽ>˜cÐ%7Ö7Ü�HŠHÐ8¸$Ô?Ü�IŠI�dŽOó	  r1   c                 ó&   € VP                  4        R # r4   )rI   )r   r   Úclss   &&&r/   r   r   »   s   € à‡J�J†Lr1   c                 ó   € R R./# )ÚprefixesÚ	TEMPORARYrg   )ri   rj   s   &&r/   Ú_sqlite_temp_table_keyword_argsr{   À   s   € à˜˜Ð&Ð&r1   c                 ó  € \         P                  ! R V 4       \         P                  ! RRP                  V4      4       \        P                  ! V 4      p V F&  p\
         F  p\        V P                  W24       K  	  K(  	  R# )zdb reaper connecting to %rzidentifiers in file: %sz, N)r   rr   Újoinr   r    r$   rm   r   )r   Úidentsr(   r   s   &&  r/   Ú_reap_sqlite_dbsr   Å   sY   € ä‡H‚HÐ)¨3Ô/Ü‡H‚HÐ&¨¯	©	°&Ó(9Ô:Ü
�/Š/˜#Ó
€CÛˆß&ˆJÜ˜cŸl™l¨JÖ>ó 'ó r1   Ú
set_lambdaÚsort_by_parameter_orderFÚindex_elementsc                ó¼   € ^ RI Hp V! V4      pV'       d$   VP                  V! VP                  4      R7      pMVP	                  4       pVP
                  ! VRV/ pV# )r   )Úinsert)Úset_r�   )Úsqlalchemy.dialects.sqliter„   Úon_conflict_do_updateÚexcludedÚon_conflict_do_nothingÚ	returning)ri   ÚtablerŠ   r€   r�   r‚   r„   Ústmts   &&&$$$  r/   Ú_upsertr�   Ï   s]   € õ 2á�%‹=€DçØ×)Ñ)©z¸$¿-¹-Ó/HÐ)ÓI‰à×*Ñ*Ó,ˆà�>Š>Ø	ðØ,Cñ€Dð €Kr1   >   ÚpysqliteÚ	aiosqliter   Úpysqlite_dollarÚpysqlite_numeric)"rD   r"   Ú r   r   rH   r   r   Útestingr   Útesting.provisionr   r	   r
   r   r   r   r   r   r   r   r   r$   r0   Úfor_dbr9   rN   re   rk   rn   rm   r{   r   r�   rg   r1   r/   Ú<module>r–      s�  ðó 
Û 	å Ý Ý #Ý Ý *Ý (Ý 7Ý 4Ý $Ý 6Ý >Ý -Ý AÝ 8Ý 'ò€ò,ð^ ×Ò˜HÓ%ñó &ðð ×Ò˜xÓ(ñ)ó )ð)ð ×Ò˜hÓ'ñ& ó (ð& ðR ×%Ò% hÓ/ñ7ó 0ð7ð0 ×Ò�(Óñ	ó ð	ð 	‡‚�Óñ;ó ð;òð "×(Ò(¨Ó2ñó 3ðð ×Ò Ó)ñ'ó *ð'ð ×Ò�XÓñ?ó ð?ð ‡‚ˆxÓðð
 ðð "ðð óó òr1   