srhC*.ddlZddlZddlmZddlmZddlmZddlmZ ddlmZn#e $r ddl mZYnwxYw ddl Z ddl m Z ddlmZddlmZddlmZn#e $r dxZ xZZYnwxYwddlmZdd lmZejd ZGd d eZGd deZGddeZGddeZe Z!eZ"eZ#eZ$GddeZ%GddeZ&GddeZ'Gdde'Z(dS)N)localEvent)Lock)Thread)Queue)Greenlet)__deprecated__)SqliteExtDatabasezpeewee.sqliteqceZdZdS) ResultTimeoutN__name__ __module__ __qualname__]/var/lib/jenkins/jobs/Dev/workspace/my-venv/lib/python3.11/site-packages/playhouse/sqliteq.pyr r Drr ceZdZdS) WriterPausedNrrrrrrrrrceZdZdS)ShutdownExceptionNrrrrrr"rrrceZdZdZdZddZddZdZdZeZ e dZ e d Z e d Z d Zd Zd ZdS) AsyncCursor) sqlparamstimeout_event_cursor_exc_idx_rows_readyc||_||_||_||_dx|_x|_x|_|_d|_dSNF) rrrrr r!r"r#r$)selfeventrrrs r__init__zAsyncCursor.__init__*sE   <@@ @ty@49tz rNc||_||_d|_||ng|_|j|S)Nr)r r!r"fetchallr#rset)r'cursorexcs r set_resultzAsyncCursor.set_result2sH   *-+V__&&&2   rc||n|j}|j|s|rtd|j|jd|_dS)N)rzresults not ready, timed out.T)rrwaitr r!r$)r'rs r_waitzAsyncCursor._wait:s_$0''dl{00 AW A ?@@ @ 9 )O rcX|js||j|j|SN)r$r2r!r's r__iter__zAsyncCursor.__iter__Bs-{  JJLLL 9 )O rc|js| |j|j}|xjdz c_|S#t$rt wxYw)N)r$r2r#r" IndexError StopIteration)r'objs rnextzAsyncCursor.nextIse{  JJLLL *TY'C IINIIJ      s AAcP|js||jjSr4)r$r2r lastrowidr5s rr>zAsyncCursor.lastrowidUs${  JJLLL|%%rcP|js||jjSr4)r$r2r rowcountr5s rr@zAsyncCursor.rowcount[s${  JJLLL|$$rc|jjSr4)r descriptionr5s rrBzAsyncCursor.descriptionas |''rc8|jdSr4)r closer5s rrDzAsyncCursor.closees rc t|Sr4)listr5s rr+zAsyncCursor.fetchallhsDzzrcz|js| t|S#t$rYdSwxYwr4)r$r2r<r:r5s rfetchonezAsyncCursor.fetchoneksL{  JJLLL ::    44 s , ::r4)rrr __slots__r)r/r2r6r<__next__propertyr>r@rBrDr+rHrrrrr&sII   H &&X& %%X% ((X(rrc0eZdZdZdZdZdZdZdZdS)Writerdatabasequeuec"||_||_dSr4rN)r'rOrPs rr)zWriter.__init__|s   rc|j} |.|r|j}n||}ng#t$rZt dY|:|j||jj dSdSwxYw#|9|j||jj wwxYw)NTz*writer received shutdown request, exiting.) rO connection wait_unpauselooprloggerinfo_close_statereset)r'conns rrunz Writer.runs}'')) - |,,..>#'=#;#;#=#=D#yy(KK LMMM $$T*** $**,,,,,    $$T*** $**,,,, s/C AA#"C #$CC CC =Dc|j\}}|tur0td|dS|t urt|tur0t d|dS| dtt d|dS)Nz+writer unpaused - reconnecting to database.Tz-writer received pause, but is already paused.zwriter paused, not handling %s) rPgetUNPAUSErVrWr,SHUTDOWNrPAUSEerrorr/rwarningr'opr;s rrTzWriter.wait_unpauses*..""C == KKE F F F GGIII4 8^^#%% % 5[[ LLH I I I GGIIIII NN4 0 0 0 NN;S A A A A Arc2|j\}}|tur||n|turht d|j||jj | dS|tur/t d| n2|turtt d||S)Nz,writer paused - closing database connection.z0writer received unpause, but is already running.z&writer received unsupported object: %s)rPr^QUERYexecuterarVrWrOrXrYrZr,r_rbr`r)r'r[rer;s rrUz Writer.loops*..""C ;; LL     5[[ KKF G G G M  & & & M & & ( ( ( GGIII F 7]] LLK L L L GGIIII 8^^#%% % LLA3 G G G rctd|j |j|j|j}d}n#t $r}d}|}Yd}~nd}~wwxYw|||S)Nzreceived query %s)rVdebugrrO_executer Exceptionr/)r'r;r-r. execute_errs rrhzWriter.executes (#'222 ]++CGSZ@@F CC    FCCCCCC  ~~fc***s%A A"AA"N) rrrrIr)r\rTrUrhrrrrMrMysg%I---$ B B B& + + + + +rrMczeZdZdZ dfd ZdZddZdZd Zdd Z d Z d Z d Z dZ dZdZexZxZZxZS)SqliteQueueDatabasezSQLite must be configured to use the WAL journal mode when using this feature. WAL mode allows one or more readers to continue reading while another connection writes to the database.FTNcd|d<t|_||dd}t t |} | j|_| j|g|Rd|i|||_ ||_ d|_ | |||_ ||j r|dSdS)NFcheck_same_threadpragmasT)r_qlock_validate_journal_modepopsuperro execute_sqlrkr) _autostart_results_timeout _is_stoppedget_thread_impl_thread_helper_create_write_queuestart) r'rO use_gevent autostartqueue_max_sizeresults_timeoutargskwargsrrParent __class__s rr)zSqliteQueueDatabase.__init__s&+"#ff --fjjD.I.IJJ *D11*  CDCCC'CFCCC# /?d22:>>~NN   """ ?  JJLLLLL  rc"|rtntSr4)GreenletHelper ThreadHelper)r'rs rr{z#SqliteQueueDatabase.get_thread_impls!+=~~=rc|sddiSt|tstd|D}|dddkrt |jd|d<|S)N journal_modewalc3HK|]\}}||fVdSr4)lower).0kvs r z=SqliteQueueDatabase._validate_journal_mode..s2@@fq!AGGIIq>@@@@@@r) isinstancedictr^r ValueErrorWAL_MODE_ERROR_MESSAGE)r'rrs rrtz*SqliteQueueDatabase._validate_journal_modes +"E* *'4(( A@@@@@@@G ;;~u - - 3 3 5 5 > >T899 9"'rcB|j|_dSr4)r|rP _write_queuer5s rr}z'SqliteQueueDatabase._create_write_queues /5577rc4|jSr4)rqsizer5s r queue_sizezSqliteQueueDatabase.queue_sizes &&(((rcJ|td|dr|||St |j||||jn|}|j t|f|S)Nz,"commit" has been deprecated and is a no-op.select)r(rrr) r r startswithrkrr|r(ryrputrg)r'rrcommitrr-s rrwzSqliteQueueDatabase.execute_sqls   I J J J 99;; ! !( + + .==f-- -%++---4_D))' KKK ufo... rcj5js ddddSfd}j|_jd_ ddddS#1swxYwYdS)NFcZtj}|dSr4)rMrr\)writerr's rr\z&SqliteQueueDatabase.start..runs&d&788 rT)rsrzr|thread_writerr~)r'r\s` rr~zSqliteQueueDatabase.start s [  #               .55c::DL L   $D                   s A1AA11A58A5cttd|j5|jr ddddS|jt df|j|j s|j \}}|tks |tkr| n-|tkr"|dt!|j d|_ ddddS#1swxYwYdS)Nzenvironment stop requested.FT)rVrjrsrzrrr`rjoinemptyr^rar_r,rgr/rrds rstopzSqliteQueueDatabase.stops 2333 [              ! !8T"2 3 3 3 L     '--// >+//11C;;"--GGIIII5[[NN4):)<)<=== '--// > $D !                  s D-C(D--D14D1cR|j5|jcdddS#1swxYwYdSr4)rsrzr5s r is_stoppedzSqliteQueueDatabase.is_stopped+st [ $ $# $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   c |j5|jr ddddS|j}|jt |fdddn #1swxYwY|dSr&)rsrzr|r(rrrar1r'evts rpausezSqliteQueueDatabase.pause/s [ 0 0  0 0 0 0 0 0 0 0%++--C   ! !5#, / / /  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   A$:A$$A(+A(c |j5|jr ddddS|j}|jt |fdddn #1swxYwY|dSr&)rsrzr|r(rrr_r1rs runpausezSqliteQueueDatabase.unpause9s [ 2 2  2 2 2 2 2 2 2 2%++--C   ! !7C. 1 1 1  2 2 2 2 2 2 2 2 2 2 2 2 2 2 2  rc@tdt|z)Nz#This method is not supported by %r.)rtype)r'rrs r__unsupported__z#SqliteQueueDatabase.__unsupported__Cs>dKLLLr)FTNNr4)NNN)rrrrr)r{rtr}rrwr~rrrrratomic transaction savepoint __classcell__)rs@rroros* >B6:@>>>    888)))       ($$$MMM'66F6[99999rroc.eZdZdZddZdZddZdZdS)rrNc||_dSr4r)r'rs rr)zThreadHelper.__init__Ks,rctSr4rr5s rr(zThreadHelper.eventNs EGG^rc<||n|j}t|pdSNr)maxsize)rrr'max_sizes rrPzThreadHelper.queuePs('3889LX]++++rc8t|||}d|_|S)N)targetrrT)rdaemon)r'fnrrrs rrzThreadHelper.threadTs"rV<<<  rr4)rrrrIr)r(rPrrrrrrHs[#I----$##,,,,rrc&eZdZdZdZddZdZdS)rrctSr4)GEventr5s rr(zGreenletHelper.event]s FHH_rNc<||n|j}t|pdSr)rGQueuers rrPzGreenletHelper.queue_s('3889Lhm!,,,,rc.fd}t|g|Ri|S)Nc:tj|i|Sr4)geventsleep)arrs rwrapz#GreenletHelper.thread..wrapds LNNN2q;A;; r)GThread)r'rrrrs ` rrzGreenletHelper.threadcs<     t-d---f---rr4)rrrrIr(rPrrrrrrZsEI$$$----.....rr))loggingweakref threadingr thread_localrrrr ImportErrorrPrr r gevent.eventr gevent.localgreenlet_local gevent.queuerpeeweer playhouse.sqlite_extr getLoggerrVrlr rrobjectrr:r`rgrar_rMrorrrrrrs ++++++%MMM******,,,,,,444444,,,,,,,%%% $$G$fvvv%"!!!!!222222  + , ,     I        9           KKKKK&KKKZ  &((D+D+D+D+D+VD+D+D+NE7E7E7E7E7+E7E7E7P6$ . . . . .\ . . . . .s) 77A A&%A&