K iC*ddlZddlZddlmZddlmZddlmZddlmZ ddlmZ ddl Z ddl m Z ddlmZddlmZddlmZddlmZdd lmZej0d ZGd d eZGd deZGddeZGddeZe Z!eZ"eZ#eZ$GddeZ%GddeZ&GddeZ'Gdde'Z(y#e $r ddl mZYwxYw#e $r dxZ xZZYwxYw)N)localEvent)Lock)Thread)Queue)Greenlet)__deprecated__)SqliteExtDatabasezpeewee.sqliteqc eZdZy) ResultTimeoutN__name__ __module__ __qualname__W/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/playhouse/sqliteq.pyr r rr c eZdZy) WriterPausedNrrrrrrrrrc eZdZy)ShutdownExceptionNrrrrrr"rrrcxeZdZdZdZddZddZdZdZeZ e dZ e d Z e d Z d Zd Zd Zy) AsyncCursor) sqlparamstimeout_event_cursor_exc_idx_rows_readyc||_||_||_||_dx|_x|_x|_|_d|_yNF) rrrrr r!r"r#r$)selfeventrrrs r__init__zAsyncCursor.__init__*sA   <@@ @ty@49tz rNc||_||_d|_||jng|_|j j |S)Nr)r r!r"fetchallr#rset)r'cursorexcs r set_resultzAsyncCursor.set_result2s>   *-+V__&2   rc||n |j}|jj|s |r td|j |jd|_y)N)rzresults not ready, timed out.T)rrwaitr r!r$)r'rs r_waitzAsyncCursor._wait:sO$0'dll{{0W ?@ @ 99 ))O rcn|js|j|j |j|SN)r$r2r!r's r__iter__zAsyncCursor.__iter__Bs*{{ JJL 99 ))O rc|js|j |j|j}|xjdz c_|S#t$rt wxYw)N)r$r2r#r" IndexError StopIteration)r'objs rnextzAsyncCursor.nextIsT{{ JJL **TYY'C IINIJ    s AAcf|js|j|jjSr4)r$r2r lastrowidr5s rr>zAsyncCursor.lastrowidUs"{{ JJL||%%%rcf|js|j|jjSr4)r$r2r rowcountr5s rr@zAsyncCursor.rowcount[s"{{ JJL||$$$rc.|jjSr4)r descriptionr5s rrBzAsyncCursor.descriptionas||'''rc8|jjyr4)r closer5s rrDzAsyncCursor.closees rct|Sr4)listr5s rr+zAsyncCursor.fetchallhs Dzrcp|js|j t|S#t$rYywxYwr4)r$r2r<r:r5s rfetchonezAsyncCursor.fetchoneks3{{ JJL :   s ) 55r4)rrr __slots__r)r/r2r6r<__next__propertyr>r@rBrDr+rHrrrrr&ssII H && %% ((rrc.eZdZdZdZdZdZdZdZy)Writerdatabasequeuec ||_||_yr4rN)r'rOrPs rr)zWriter.__init__|s   rc|jj} |+|jr,|jj}n|j|}@#t$rZt j dY|@|jj||jjjyywxYw#|@|jj||jjjwwxYw)Nz*writer received shutdown request, exiting.) rO connection wait_unpauselooprloggerinfo_close_statereset)r'conns rrunz Writer.runs}}'') -|,,.#'==#;#;#=D#yy )KK LM $$T* $$**,  $$T* $$**, s/C>ACC;C?CCADcz|jj\}}|tur&tj d|j y|t ur t|tur&tjd|j y|jdttjd|y)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 GGI 8^#% % 5[ LLH I GGI NN4 0 NN;S Arc|jj\}}|tur|j||S|turet j d|jj||jjj|jy|tur't jd|j|S|tur tt jd||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 MM  & MM & & ( GGI  7] LLK L GGI  8^#% % LLA3 G rctjd|j |jj |j|j }d}|j||S#t $r}d}|}Yd}~$d}~wwxYw)Nzreceived query %s)rVdebugrrO_executer Exceptionr/)r'r;r-r. execute_errs rrhzWriter.executesl (#''2 ]]++CGGSZZ@F C~~fc**  FC s0A&& A=/A88A=N) rrrrIr)r\rTrUrhrrrrMrMys!%I-$ B& +rrMczeZdZdZ dfd ZdZddZdZdZddZ dZ d Z d Z d Z d Zd ZexZxZZxZS)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.cd|d<t|_|j|jdd}t t |} | j |_| j|g|d|i|||_ ||_ d|_ |j|||_ |j|jr|jyy)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&+"#f --fjjD.IJ *D1**  CDC'CFC# /?d22:>~N   " ?? JJL rc|rtStSr4)GreenletHelper ThreadHelper)r'rs rr{z#SqliteQueueDatabase.get_thread_impls!+~==rc|sddiSt|tstd|D}|jddjdk7rt |j d|d<|S)N journal_modewalc3FK|]\}}|j|fywr4)lower).0kvs r z=SqliteQueueDatabase._validate_journal_mode..s@fq!AGGIq>@s!) isinstancedictr^r ValueErrorWAL_MODE_ERROR_MESSAGE)r'rrs rrtz*SqliteQueueDatabase._validate_journal_modesf"E* *'4(@@@G ;;~u - 3 3 5 >T889 9"'rcB|jj|_yr4)r|rP _write_queuer5s rr}z'SqliteQueueDatabase._create_write_queues //557rc6|jjSr4)rqsizer5s r queue_sizezSqliteQueueDatabase.queue_sizes  &&((rc.| td|jjdr|j||St |j j ||| |jn|}|jjt|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 99; ! !( +==f- -%%++--4_D))' K ufo. rcj5js dddyfd}jj|_jj d_ dddy#1swYyxYw)NFcRtj}|jyr4)rMrr\)writerr's rr\z&SqliteQueueDatabase.start..runsd&7&78 rT)rsrzr|thread_writerr~)r'r\s` rr~zSqliteQueueDatabase.start so [[ ##    ..55c:DL LL   $D    sA5AA55A>cRtjd|j5|jr dddy|jj t df|jj|jjs~|jj\}}|tk(s |tk(r|jn#|tk(r|jdt!|jjs~d|_ dddy#1swYyxYw)Nzenvironment stop requested.FT)rVrjrsrzrrr`rjoinemptyr^rar_r,rgr/rrds rstopzSqliteQueueDatabase.stops 23 [[       ! !8T"2 3 LL   ''--/++//1C;"-GGI5[NN4):)<= ''--/ $D !   sDCD DD&c^|j5|jcdddS#1swYyxYwr4)rsrzr5s r is_stoppedzSqliteQueueDatabase.is_stopped+s' [[ $## $ $ $s #,c|j5|jr dddy|jj}|jj t |fdddjy#1swYxYwr&)rsrzr|r(rrrar1r'evts rpausezSqliteQueueDatabase.pause/sm [[ 0 0 0%%++-C    ! !5#, /  0   0 0A8;A88Bc|j5|jr dddy|jj}|jj t |fdddjy#1swYxYwr&)rsrzr|r(rrr_r1rs runpausezSqliteQueueDatabase.unpause9sm [[ 2 2 2%%++-C    ! !7C. 1  2   2 2rc0tdt|z)Nz#This method is not supported by %r.)rtype)r'rrs r__unsupported__z#SqliteQueueDatabase.__unsupported__Cs>dKLLr)FTNNr4)NNN)rrrrr)r{rtr}rrwr~rrrrratomic transaction savepoint __classcell__)rs@rrorosa* >B6:@> 8)  ($M'66F6[9rroc,eZdZdZddZdZddZdZy)rrNc||_yr4r)r'rs rr)zThreadHelper.__init__Ks ,rctSr4rr5s rr(zThreadHelper.eventNsEG^rcB||n |j}t|xsdSNr)maxsize)rrr'max_sizes rrPzThreadHelper.queuePs#'389L9LX]++rc0t|||}d|_|S)N)targetrrT)rdaemon)r'fnrrrs rrzThreadHelper.threadTsrV<  rr4)rrrrIr)r(rPrrrrrrHs#I-$,rrc$eZdZdZdZddZdZy)rrctSr4)GEventr5s rr(zGreenletHelper.event]sFH_rNcB||n |j}t|xsdSr)rGQueuers rrPzGreenletHelper.queue_s#'389L9Lhm!,,rc,fd}t|g|i|S)Nc<tj|i|Sr4)geventsleep)arrs rwrapz#GreenletHelper.thread..wrapds LLNq;A; r)GThread)r'rrrrs ` rrzGreenletHelper.threadcs t-d-f--rr4)rrrrIr(rPrrrrrrZsI$-.rr))loggingweakref threadingr thread_localrrrr ImportErrorrPrr r gevent.eventr gevent.localgreenlet_local gevent.queuerpeeweer playhouse.sqlite_extr getLoggerrVrlr rrobjectrr:r`rgrar_rMrorrrrrrs +%*,4,"2   + , I  9   K&KZ  (D+VD+NE7+E7P6$ .\ .c % $$G$fv%s"CC$ C! C!$ C21C2