+
    }¯³j+  ã                   óð  € ^ 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 ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ]P6                  ! R4      R 4       t]
P6                  ! R4      R 4       t]	P6                  ! R4      R 4       tR t]P6                  ! R4      R 4       t ]P6                  ! R4      R 4       t!]P6                  ! R4      R 4       t"]P6                  ! R4      R 4       t#R*R  lt$]P6                  ! R4      R! 4       t%R" t&]P6                  ! R4      R# 4       t']P6                  ! R4      R$ 4       t(]P6                  ! R4      R% 4       t)]P6                  ! R4      R& 4       t*]P6                  ! R4      R' 4       t+]P6                  ! R4      R( 4       t,]P6                  ! R4      R) 4       t-R# )+é    N)Úcreate_engine)Úexc)Úinspect)Úurl)Úconfigure_follower)Ú	create_db)Ú#drop_all_schema_objects_post_tables)Ú"drop_all_schema_objects_pre_tables)Údrop_db)Úfollower_url_from_main)Úgenerate_driver_url)Úis_preferred_driver)Úlog)Úpost_configure_engine)Úpost_configure_testing_engine)Úrun_reap_dbs)Ú set_default_schema_on_connection)Ú stop_test_class_outside_fixtures)Útemp_table_keyword_args)Úupdate_db_opts)Úwarn_test_suiteÚoraclec                 ó  € V P                  4       pV P                  V: R V: 2R7      pVR9   d   VP                  RR.4      pMVP                  RR.4      p VP	                  4        V#   \
        P                   d     R# i ; i)Ú+)Ú
drivernameÚretry_countÚretry_delayN)ÚoracledbÚoracledb_async)r   Ú5)r   Ú2)Úget_backend_nameÚsetÚupdate_query_pairsÚdifference_update_queryÚget_dialectr   ÚNoSuchModuleError)r   ÚdriverÚ	query_strÚbackendÚnew_urls   &&&  Úe/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sqlalchemy/dialects/oracle/provision.pyÚ_oracle_generate_driver_urlr-   "   sŸ   € ð ×"Ñ"Ó$€Gà�g‰gÛ%¢vÐ.ð ó €Gð Ð/Ô/ð ×,Ñ,Ø!Ð#7Ð8ó
‰ð ×1Ñ1Ø˜MÐ*ó
ˆðØ×ÑÔð ˆøô × Ñ ô Úðús   ÁA+ Á+BÂBc                 óJ  € VP                  4       ;_uu_ 4       pVP                  R V,          4       VP                  RV,          4       VP                  RV,          4       VP                  RV: 24       VP                  RV,          4       VP                  RV,          4       VP                  RV,          4       VP                  RV,          4       VP                  RV,          4       VP                  R	V,          4       R
R
R
4       R
#   + '       g   i     R
# ; i)zcreate user %s identified by xez#create user %s_ts1 identified by xez#create user %s_ts2 identified by xezgrant dba to z grant unlimited tablespace to %sz$grant unlimited tablespace to %s_ts1z$grant unlimited tablespace to %s_ts2zgrant create table to %szgrant create table to %s_ts1zgrant create table to %s_ts2N)ÚbeginÚexec_driver_sql©ÚcfgÚengÚidentÚconns   &&& r,   Ú_oracle_create_dbr6   C   sâ   € ð
 
�‰�Œ˜Ø×ÑÐ>ÀÕFÔGØ×ÑÐBÀUÕJÔKØ×ÑÐBÀUÕJÔKØ×Ò²%Ð9Ô:Ø×ÑÐ?À%ÕGÔHØ×ÑÐCÀeÕKÔLØ×ÑÐCÀeÕKÔLà×ÑÐ7¸%Õ?Ô@Ø×ÑÐ;¸eÕCÔDØ×ÑÐ;¸eÕCÔD÷ 
��Šús   ™C.DÄD"	c                 ó>   € R V,          V n         RV,          V n        R# ©ú%s_ts1ú%s_ts2N)Útest_schemaÚtest_schema_2)Úconfigr4   s   &&r,   Ú_oracle_configure_followerr>   V   s   € à! EÕ)€FÔØ# eÕ+€FÖó    c                 óÚ   €  V P                  R V,          4       \        P                  ! RV4       R#   \        P                   d#   p\        P
                  ! RT4        Rp?R# Rp?ii ; i)zdrop user %s cascadezReaped db: %sTzcouldn't drop db: %sNF)r0   r   Úinfor   ÚDatabaseErrorÚwarning)r5   ÚdbnameÚerrs   && r,   Ú_ora_drop_ignorerF   \   sT   € ðØ×ÑÐ3°fÕ<Ô=Ü�Š� &Ô)ÙøÜ×Ñô Ü�ŠÐ*¨CÔ0Ýûðús   ‚/3 ³A*ÁA%Á%A*c                 óF   € \        V4       \        WP                  4       R # ©N)Ú_purge_recyclebinr;   ©r2   r3   s   &&r,   Ú'_ora_drop_all_schema_objects_pre_tablesrK   f   s   € ä�cÔÜ�cŸ?™?Ö+r?   c           
      ó  € VP                  4       ;_uu_ 4       pVP                  P                  VR R R 4       F  pVP                  RVR,           24       K   	  VP                  P                  W P                  R R 4       F+  pVP                  RV P                   RVR,           24       K-  	  \        V4      P                  4        F  pVP                  RV 24       K  	  R R R 4       R #   + '       g   i     R # ; i)Nzdrop synonym Úsynonym_nameÚ.zdrop table )r/   ÚdialectÚ_get_synonymsr0   r;   r   Úget_temp_table_names)r2   r3   r5   ÚsynÚ	tmp_tables   &&   r,   Ú(_ora_drop_all_schema_objects_post_tablesrT   l   sÕ   € à	�‰�Œ˜Ø—<‘<×-Ñ-¨d°D¸$ÀÖEˆCØ× Ñ  =°°^Õ1DÐ0EÐ!FÖGñ Fð —<‘<×-Ñ-Ø—/‘/ 4¨ö
ˆCð × Ñ Ø §¡Ð0°°#°nÕ2EÐ1FÐGöñ
ô ! ›×;Ñ;Ö=ˆIØ× Ñ  ;¨y¨kÐ!:Ö;ñ >÷ 
��Šús   ™CC.Ã.C?	c                 óÒ   € VP                  4       ;_uu_ 4       p\        W24       \        VR V,          4       \        VRV,          4       RRR4       R#   + '       g   i     R# ; ir8   )r/   rF   r1   s   &&& r,   Ú_oracle_drop_dbrV   }   sC   € à	�‰�Œ˜ô 	˜Ô%Ü˜˜x¨%Õ/Ô0Ü˜˜x¨%Õ/Ô0÷ 
��Šús   ™2AÁA&	c                 ó’   €  \        V4       R#   \        P                   d#   p\        P                  ! R T4        Rp?R# Rp?ii ; i)z#purge recyclebin command failed: %sN)rI   r   rB   r   rC   )r=   ÚdbÚclsrE   s   &&& r,   Ú%_ora_stop_test_class_outside_fixturesrZ   Š   s:   € ð@Ü˜"ÖøÜ×Ñô @Ü�ŠÐ9¸3×?Ò?ûð@ús   ‚ �A¤AÁAc                 ó\  € V P                  4       ;_uu_ 4       pVf   VP                  R4       M`VP                  RRVP                  P                  V4      /4      P	                  4        F!  w  r4pVP                  RV RV RV R24       K#  	  R R R 4       R #   + '       g   i     R # ; i)Nzpurge recyclebinzWselect owner, object_name,type from dba_recyclebin where owner=:schema and type='TABLE'Úschemazpurge Ú z."Ú")r/   r0   rO   Údenormalize_nameÚall)r3   r\   r5   ÚownerÚobject_nameÚtype_s   &&    r,   rI   rI   ’   s�   € Ø	�‰�Œ˜ØŠ>ð × Ñ Ð!3Õ4ð .2×-AÑ-AðFà˜4Ÿ<™<×8Ñ8¸Ó@ÐAó.÷ ‰c‹eò	.Ñ)� Eð
 ×$Ñ$ v¨e¨W°A°e°W¸B¸{¸mÈ1Ð%MÖNñ.÷ 
��Šús   ™A7BÂB+	c                óz   € VP                   P                  R8H  ;'       d    VP                   P                  '       * # )zpestablish oracledb as the preferred driver to use for tests, even
though cx_Oracle is still the "default" driverr   )rO   r(   Úis_async)r2   Úengines   &&r,   Ú_oracle_is_preferred_driverrg   ¢   s.   € ð
 �>‰>× Ñ  JÑ.×NÐN°v·~±~×7NÑ7NÔ3NÐNr?   c                 ó–  € V P                   R 8X  g   Q hR pRp\        ^4       F   p V P                  P                  ! V/ VB u # 	  Ve   \        R4      VhR#   T P                  P                  T P                  P
                  3 d>   pTpT! T4      '       d(   \        R4       \        P                  ! ^4        Rp?Kž  h Rp?ii ; i)Ú	cx_oraclec                 óJ   € R \        V 4      9   ;'       g    R\        V 4      9   # )zDPY-6005z	ORA-12516)Ústr)rE   s   &r,   Ú_is_couldnt_connectÚ0_connect_with_retry.<locals>._is_couldnt_connect­   s"   € ØœS ›XÑ%×@Ð@¨¼¸C»Ñ)@Ð@r?   NzOracle database reconnecting...z"connect failed after five attempts)
r(   ÚrangeÚloaded_dbapiÚconnectrB   ÚOperationalErrorr   ÚtimeÚsleepÚ	Exception)rO   Úconn_recÚcargsÚcparamsrl   Úerr_Ú_rE   s   &&&&    r,   Ú_connect_with_retryrz   ª   sÉ   € Ø�>‰>˜[Ô(Ð(Ð(òAð €DÜ�1ŽXˆð	Ø×'Ñ'×/Ò/°ÐB¸'ÑBÒBñ ð ÒÜÐ<Ó=À4ÐGñ øð × Ñ ×.Ñ.Ø× Ñ ×1Ñ1ð
ô 
	ð ˆDÙ" 3×'Ò'ÜÐ AÔBÜ—
’
˜1”Ýàûð
	ús   ¨AÁ1CÂ1CÃCÃCc                 óz   € ^RI Hp VP                  P                  R8X  d   VP	                  VR\
        4       R# R# )é   ©Úeventri   Ú
do_connectN)Ú r~   rO   r(   Úlistenrz   )r   rf   ÚoptionsÚscoper~   s   &&&& r,   Ú%_oracle_post_configure_testing_enginer„   Ã   s-   € åà‡~�~×Ñ Ô+Ø�‰�V˜\Ô+>Ö?ñ ,r?   c                 óB   € ^RI Hp VP                  VR4      R 4       pR# )r|   r}   Úcheckinc                 óJ   €  V P                   p^ V n         W n         R#     R# ; i)r   N)Ústmtcachesize)Údbapi_connectionÚconnection_recordÚscs   && r,   r†   Ú._oracle_post_configure_engine.<locals>.checkinÐ   s-   € ð 	0Ø!×/Ñ/ˆBð
 ./ÐÔ*Ø-/Ö*øð	âús   ‚ �"N)r€   r~   Úlistens_for)r   rf   Úfollower_identr~   r†   s   &&&  r,   Ú_oracle_post_configure_enginer�   Ë   s&   € õ à
×Ñ�v˜yÓ)ñ0ó *ò0r?   c                 óV  € \         P                  ! R V 4       \        V 4      pVP                  4       ;_uu_ 4       p\         P                  ! RRP	                  V4      4       VP                  R4      pV Uu0 uF  w  qUP                  4       kK  	  pp\        4       pV Fš  pVP                  R4      '       g   VP                  R4      '       d   K3  W�9   g   K;  VP                  V4       RV,          V9   d   VP                  RV,          4       RV,          V9   g   K‚  VP                  RV,          4       Kœ  	  ^ ;rš\        V^4       F!  w  r¥\        W54      '       g   K  V	^,          p	K#  	  \         P                  ! RWš4       R	R	R	4       R	# u upi   + '       g   i     R	# ; i)
zdb reaper connecting to %rzidentifiers in file: %sz, z‰select u.username from all_users u where username like 'TEST_%' and not exists (select username from v$session where username=u.username)Ú_ts1Ú_ts2r9   r:   z-Dropped %d out of %d stale databases detectedN)r   rA   r   r/   Újoinr0   Úlowerr#   ÚendswithÚaddÚ	enumeraterF   )r   Úidentsr3   r5   Úto_reapÚusernameÚ	all_namesÚto_dropÚnameÚdroppedÚtotals   &&         r,   Ú_reap_oracle_dbsr    ê   sH  € ä‡H‚HÐ)¨3Ô/Ü
˜Ó
€CØ	�‰�Œ˜Ü�ŠÐ*¨D¯I©I°fÓ,=Ô>à×&Ñ&ð8ó
ˆñ
 :AÓA¹©+¨8—^‘^Ö%¹ˆ	ÐAÜ“%ˆÛˆDØ�}‰}˜V×$Ò$¨¯©°f×(=Ò(=ÙØ–Ø—‘˜DÔ!Ø˜d•? iÔ/Ø—K‘K ¨4¥Ô0Ø˜d•? iÖ/Ø—K‘K ¨4¥Ö0ñ ð ÐˆÜ(¨°!Ö4‰OˆEÜ ×/Ô/Ø˜1•’ñ  5ô 	�ŠØ;¸Wô	
÷1 
‰ùò B÷ 
�ˆús6   »<FÁ7FÂ>FÃFÃAFÄ!>FÅ$$FÆFÆF(	c                 óT   € \         P                  ! V 4      p V P                  VR R7      # )Úxe)rš   Úpassword)Úsa_urlÚmake_urlr#   )r   r4   s   &&r,   Ú_oracle_follower_url_from_mainr¦     s#   € ä
�/Š/˜#Ó
€CØ�7‰7˜E¨Dˆ7Ó1Ð1r?   c                 ó   € R R.RR/# )ÚprefixeszGLOBAL TEMPORARYÚoracle_on_commitzPRESERVE ROWS© rJ   s   &&r,   Ú_oracle_temp_table_keyword_argsr«     s   € ð 	Ð'Ð(Ø˜Oðð r?   c                 óv   € VP                  4       pVP                  R V,          4       VP                  4        R# )z#ALTER SESSION SET CURRENT_SCHEMA=%sN)ÚcursorÚexecuteÚclose)r2   r‰   Úschema_namer­   s   &&& r,   Ú(_oracle_set_default_schema_on_connectionr±     s-   € ð ×$Ñ$Ó&€FØ
‡N�NÐ8¸;ÕFÔGØ
‡L�L†Nr?   c                óŽ   € VP                   '       d3   \        P                  ! V 4      P                  4       R8X  d   RVR&   R# R# R# )zCSet database options (db_opts) for a test database that we created.r   TÚ
thick_modeN)Úoracledb_thick_moder¤   r¥   Úget_driver_name)Údb_urlÚdb_optsr‚   s   &&&r,   Ú_update_db_optsr¸   "  s?   € ð 	×#×#Ð#Ü�OŠO˜FÓ#×3Ñ3Ó5¸ÔCà $ˆ�Óñ Dñ 	$r?   rH   ).rr   r€   r   r   r   rf   r   r¤   Útesting.provisionr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   Útesting.warningsr   Úfor_dbr-   r6   r>   rF   rK   rT   rV   rZ   rI   rg   rz   r„   r�   r    r¦   r«   r±   r¸   rª   r?   r,   Ú<module>r¼      s3  ðó å Ý Ý Ý #Ý 3Ý *Ý DÝ CÝ (Ý 7Ý 4Ý 4Ý $Ý 6Ý >Ý -Ý AÝ AÝ 8Ý /Ý /ð ×Ò˜HÓ%ñó &ðð@ ×Ò�(ÓñEó ðEð$ ×Ò˜8Ó$ñ,ó %ð,ò
ð $×*Ò*¨8Ó4ñ,ó 5ð,ð
 %×+Ò+¨HÓ5ñ<ó 6ð<ð  	‡‚�Óñ	1ó ð	1ð "×(Ò(¨Ó2ñ@ó 3ð@ôOð  ×Ò˜HÓ%ñOó &ðOòHð2 ×%Ò% hÓ/ñ@ó 0ð@ð ×Ò˜hÓ'ñ0ó (ð0ð< ×Ò�XÓñ
ó ð
ð@ ×Ò˜xÓ(ñ2ó )ð2ð
 ×Ò Ó)ñó *ðð "×(Ò(¨Ó2ñó 3ðð ×Ò�xÓ ñ%ó !ò%r?   