Ë
    °Œj¢/  ã            	       ó   — d Z ddlZddlZddlZddlmZmZmZ ddlm	Z	 ddl
mZ ddlmZmZmZ ddlmZ ddlmZmZmZmZmZ dd	lmZ d
dlmZ d
dlmZ g d¢Z ej>                  d«      Z eed      Z!dejD                  deddfd„Z#dejD                  de$ddfd„Z% e&«       Z' G d„ de«      Z(dddœdee)ef   deejT                     dede(fd„Z+y)z*
Core implementation of aiosqlite proxies
é    N)ÚAsyncIteratorÚ	GeneratorÚIterable)Úpartial)ÚPath)ÚEmptyÚQueueÚSimpleQueue)ÚThread)ÚAnyÚCallableÚLiteralÚOptionalÚUnion)Úwarné   )Úcontextmanager)ÚCursor)ÚconnectÚ
Connectionr   Ú	aiosqlite)ÚDEFERREDÚ	IMMEDIATEÚ	EXCLUSIVEÚfutÚresultÚreturnc                 óH   — | j                  «       s| j                  |«       yy)z9Set the result of a future if it hasn't been set already.N)ÚdoneÚ
set_result)r   r   s     úX/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/aiosqlite/core.pyr    r       s   € à�8‰8Œ:Ø�‰�vÕð ó    Úec                 óH   — | j                  «       s| j                  |«       yy)z<Set the exception of a future if it hasn't been set already.N)r   Úset_exception)r   r#   s     r!   r%   r%   $   s   € à�8‰8Œ:Ø×Ñ˜!Õð r"   c                   ór  ‡ — e Zd Z	 d>deg ej
                  f   dedeej                     ddfˆ fd„Z
d„ Zedej
                  fd„«       Zd	ed
edeej                      fd„Zd	ed
edeej                      fd„Zd?d„Zd„ Zd@d„Zdeedd f   fd„Zd@d„Zd?d„Zedefd„«       Zd?d„Zd?d„Zd?d„Z e	 d>d	ed
eee      defd„«       Z!e	 d>d	ed
eee      deej                      fd„«       Z"e	 d>d	ed
eee      deej                      fd„«       Z#ed	ed
eee      defd„«       Z$ededefd„«       Z%d?d„Z&	 dAdeded ed!e'ddf
d"„Z(ede'fd#„«       Z)edee   fd$„«       Z*e*jV                  d%e,ddfd&„«       Z*edee-   fd'„«       Z.e.jV                  d(ee-   ddfd)„«       Z.edee/gef   fd*„«       Z0e0jV                  d(ee/gef   ddfd+„«       Z0edefd,„«       Z1d%e'ddfd-„Z2d.efd/„Z3d0eg ee   f   d1eddfd2„Z4d0eddfd3„Z5de6e   fd4„Z7d5dd6d7d8œd9e8d ej
                  f   d:ed;eeeeegdf      ded<e9ddfd=„Z:ˆ xZ;S )Br   NÚ	connectorÚiter_chunk_sizeÚloopr   c                 óž   •— t         ‰| �  «        d| _        d | _        || _        t        «       | _        || _        |�t        dt        «       y y )NTz8aiosqlite.Connection no longer uses the `loop` parameter)
ÚsuperÚ__init__Ú_runningÚ_connectionÚ
_connectorr
   Ú_txÚ_iter_chunk_sizer   ÚDeprecationWarning)Úselfr'   r(   r)   Ú	__class__s       €r!   r,   zConnection.__init__.   sP   ø€ ô 	‰ÑÔØˆŒØ9=ˆÔØ#ˆŒÜJUË-ˆŒØ /ˆÔàÐÜØJÜ"õð r"   c                 óP   — d| _         | j                  j                  t        «       y )NF)r-   r0   Ú
put_nowaitÚ_STOP_RUNNING_SENTINEL©r3   s    r!   Ú_stop_runningzConnection._stop_runningA   s   € ØˆŒà�‰×ÑÔ2Õ3r"   c                 óH   — | j                   €t        d«      ‚| j                   S )Nzno active connection)r.   Ú
ValueErrorr8   s    r!   Ú_connzConnection._connF   s&   € à×ÑÐ#ÜÐ3Ó4Ð4à×ÑÐr"   ÚsqlÚ
parametersc                 ó|   — | j                   j                  ||«      }|j                  d«       |j                  «       S )NzSELECT last_insert_rowid())r<   ÚexecuteÚfetchone©r3   r=   r>   Úcursors       r!   Ú_execute_insertzConnection._execute_insertM   s2   € Ø—‘×#Ñ# C¨Ó4ˆØ�‰Ð3Ô4Ø�‰Ó Ð r"   c                 óZ   — | j                   j                  ||«      }|j                  «       S ©N)r<   r@   ÚfetchallrB   s       r!   Ú_execute_fetchallzConnection._execute_fetchallR   s%   € Ø—‘×#Ñ# C¨Ó4ˆØ�‰Ó Ð r"   c                 óª  — 	 | j                   j                  «       }|t        u ry|\  }}	 t        j	                  d|«        |«       }t        j	                  d|«       |j                  «       j                  t        ||«       Œ‚# t        $ rE}t        j	                  d|«       |j                  «       j                  t        ||«       Y d}~ŒJd}~ww xY w)zV
        Execute function calls on a separate thread.

        :meta private:
        zexecuting %szoperation %s completedzreturning exception %sN)
r0   Úgetr7   ÚLOGÚdebugÚget_loopÚcall_soon_threadsafer    ÚBaseExceptionr%   )r3   Útx_itemÚfutureÚfunctionr   r#   s         r!   ÚrunzConnection.runV   sµ   € ð ð
 —h‘h—l‘l“nˆGØÔ0Ñ0Øà&ÑˆF�HðQÜ—	‘	˜.¨(Ô3Ù!›�Ü—	‘	Ð2°HÔ=Ø—‘Ó!×6Ñ6´zÀ6È6ÔRð øô  !ò QÜ—	‘	Ð2°AÔ6Ø—‘Ó!×6Ñ6´}ÀfÈa×PÑPûðQús   «AB Â	CÂ;CÃCc              �   ó  K  — | j                   r| j                  st        d«      ‚t        |g|¢­i |¤Ž}t	        j
                  «       j                  «       }| j                  j                  ||f«       |ƒ d{  –—† S 7 Œ­w)z8Queue a function with the given arguments for execution.zConnection closedN)	r-   r.   r;   r   ÚasyncioÚget_event_loopÚcreate_futurer0   r6   )r3   ÚfnÚargsÚkwargsrR   rQ   s         r!   Ú_executezConnection._executep   sm   è ø€ à�}Š} D×$4Ò$4ÜÐ0Ó1Ð1ä˜2Ð/ Ò/¨Ñ/ˆÜ×'Ñ'Ó)×7Ñ7Ó9ˆà�‰×Ñ˜V XÐ.Ô/à�|Ðˆ|ús   ‚A7B Á9A>Á:B c              ƒ   ó*  K  — | j                   €[	 t        j                  «       j                  «       }| j                  j                  || j                  f«       |ƒ d{  –—† | _         | S | S 7 Œ# t        $ r | j                  «        d| _         ‚ w xY w­w)z&Connect to the actual sqlite database.N)	r.   rU   rV   rW   r0   r6   r/   rO   r9   )r3   rQ   s     r!   Ú_connectzConnection._connect|   sˆ   è ø€ à×ÑÐ#ðÜ ×/Ñ/Ó1×?Ñ?ÓA�Ø—‘×#Ñ# V¨T¯_©_Ð$=Ô>Ø)/§<�Ô ð ˆˆtˆð $0ùÜ ò Ø×"Ñ"Ô$Ø#'�Ô Øðüs/   ‚B�AA. ÁA,Á	A. Á(BÁ,A. Á."BÂBc                 ó^   — | j                  «        | j                  «       j                  «       S rF   )Ústartr]   Ú	__await__r8   s    r!   r`   zConnection.__await__Š   s    € Ø�
‰
ŒØ�}‰}‹×(Ñ(Ó*Ð*r"   c              ƒ   ó"   K  — | ƒ d {  –—† S 7 Œ­wrF   © r8   s    r!   Ú
__aenter__zConnection.__aenter__Ž   s   è ø€ Ø�zÐˆzús   ‚ˆ‰c              ƒ   ó@   K  — | j                  «       ƒ d {  –—†  y 7 Œ­wrF   )Úclose)r3   Úexc_typeÚexc_valÚexc_tbs       r!   Ú	__aexit__zConnection.__aexit__‘   s   è ø€ Ø�j‰j‹l×Òús   ‚–—c              ƒ   ó|   K  — t        | | j                  | j                  j                  «      ƒ d{  –—† «      S 7 Œ­w)z<Create an aiosqlite cursor wrapping a sqlite3 cursor object.N)r   r[   r<   rC   r8   s    r!   rC   zConnection.cursor”   s.   è ø€ ô �d $§-¡-°·
±
×0AÑ0AÓ"B×BÓCÐCÐBús   ‚/<±:
²	<c              ƒ   ój   K  — | j                  | j                  j                  «      ƒ d{  –—†  y7 Œ­w)zCommit the current transaction.N)r[   r<   Úcommitr8   s    r!   rl   zConnection.commit™   s"   è ø€ à�m‰m˜DŸJ™J×-Ñ-Ó.×.Ò.úó   ‚)3«1¬3c              ƒ   ój   K  — | j                  | j                  j                  «      ƒ d{  –—†  y7 Œ­w)z"Roll back the current transaction.N)r[   r<   Úrollbackr8   s    r!   ro   zConnection.rollback�   s"   è ø€ à�m‰m˜DŸJ™J×/Ñ/Ó0×0Ò0úrm   c              ƒ   ó4  K  — | j                   €y	 | j                  | j                  j                  «      ƒ d{  –—†  	 | j                  «        d| _         y7 Œ# t        $ r t
        j                  d«       ‚ w xY w# | j                  «        d| _         w xY w­w)z9Complete queued queries/cursors and close the connection.Nz+exception occurred while closing connection)r.   r[   r<   re   Ú	ExceptionrK   Úinfor9   r8   s    r!   re   zConnection.close¡   sˆ   è ø€ ð ×ÑÐ#Øð	$Ø—-‘- §
¡
× 0Ñ 0Ó1×1Ñ1ð
 ×ÑÔ Ø#ˆDÕð 2ùÜò 	Ü�H‰HÐBÔCØð	ûð ×ÑÔ Ø#ˆDÕüs7   ‚B‘(A ¹AºA ¿BÁA Á A9Á9A< Á<BÂBc              ƒ   óŒ   K  — |€g }| j                  | j                  j                  ||«      ƒ d{  –—† }t        | |«      S 7 Œ­w)z6Helper to create a cursor and execute the given query.N)r[   r<   r@   r   rB   s       r!   r@   zConnection.execute°   sE   è ø€ ð
 ÐØˆJØ—}‘} T§Z¡Z×%7Ñ%7¸¸jÓI×IˆÜ�d˜FÓ#Ð#ð Jús   ‚/A±A²Ac              ƒ   ó`   K  — |€g }| j                  | j                  ||«      ƒ d{  –—† S 7 Œ­w)z/Helper to insert and get the last_insert_rowid.N)r[   rD   ©r3   r=   r>   s      r!   Úexecute_insertzConnection.execute_insertº   s2   è ø€ ð
 ÐØˆJØ—]‘] 4×#7Ñ#7¸¸jÓI×IÐIÐIúó   ‚%.§,¨.c              ƒ   ó`   K  — |€g }| j                  | j                  ||«      ƒ d{  –—† S 7 Œ­w)z2Helper to execute a query and return all the data.N)r[   rH   ru   s      r!   Úexecute_fetchallzConnection.execute_fetchallÃ   s2   è ø€ ð
 ÐØˆJØ—]‘] 4×#9Ñ#9¸3À
ÓK×KÐKÐKúrw   c              ƒ   ó„   K  — | j                  | j                  j                  ||«      ƒ d{  –—† }t        | |«      S 7 Œ­w)z;Helper to create a cursor and execute the given multiquery.N)r[   r<   Úexecutemanyr   rB   s       r!   r{   zConnection.executemanyÌ   s:   è ø€ ð
 —}‘} T§Z¡Z×%;Ñ%;¸SÀ*ÓM×MˆÜ�d˜FÓ#Ð#ð Nús   ‚+A ­>®A Ú
sql_scriptc              ƒ   ó‚   K  — | j                  | j                  j                  |«      ƒ d{  –—† }t        | |«      S 7 Œ­w)z4Helper to create a cursor and execute a user script.N)r[   r<   Úexecutescriptr   )r3   r|   rC   s      r!   r~   zConnection.executescriptÔ   s8   è ø€ ð —}‘} T§Z¡Z×%=Ñ%=¸zÓJ×JˆÜ�d˜FÓ#Ð#ð Kús   ‚*?¬=­?c              ƒ   ó>   K  — | j                   j                  «       S ­w)zInterrupt pending queries.)r<   Ú	interruptr8   s    r!   r€   zConnection.interruptÚ   s   è ø€ à�z‰z×#Ñ#Ó%Ð%ùs   ‚ÚnameÚ
num_paramsÚfuncÚdeterministicc              ƒ   ót   K  — | j                  | j                  j                  ||||¬«      ƒ d{  –—†  y7 Œ­w)a/  
        Create user-defined function that can be later used
        within SQL statements. Must be run within the same thread
        that query executions take place so instead of executing directly
        against the connection, we defer this to `run` function.

        If ``deterministic`` is true, the created function is marked as deterministic,
        which allows SQLite to perform additional optimizations. This flag is supported
        by SQLite 3.8.3 or higher, ``NotSupportedError`` will be raised if used with
        older versions.
        )r„   N)r[   r<   Úcreate_function)r3   r�   r‚   rƒ   r„   s        r!   r†   zConnection.create_functionÞ   s<   è ø€ ð �m‰mØ�J‰J×&Ñ&ØØØØ'ð ó 
÷ 	
ò 	
ús   ‚.8°6±8c                 ó.   — | j                   j                  S rF   )r<   Úin_transactionr8   s    r!   rˆ   zConnection.in_transactionô   s   € à�z‰z×(Ñ(Ð(r"   c                 ó.   — | j                   j                  S rF   ©r<   Úisolation_levelr8   s    r!   r‹   zConnection.isolation_levelø   s   € à�z‰z×)Ñ)Ð)r"   Úvaluec                 ó&   — || j                   _        y rF   rŠ   ©r3   rŒ   s     r!   r‹   zConnection.isolation_levelü   s   € à%*ˆ�
‰
Õ"r"   c                 ó.   — | j                   j                  S rF   ©r<   Úrow_factoryr8   s    r!   r‘   zConnection.row_factory   s   € à�z‰z×%Ñ%Ð%r"   Úfactoryc                 ó&   — || j                   _        y rF   r�   ©r3   r’   s     r!   r‘   zConnection.row_factory  s   € à!(ˆ�
‰
Õr"   c                 ó.   — | j                   j                  S rF   ©r<   Útext_factoryr8   s    r!   r—   zConnection.text_factory  s   € à�z‰z×&Ñ&Ð&r"   c                 ó&   — || j                   _        y rF   r–   r”   s     r!   r—   zConnection.text_factory  s   € à")ˆ�
‰
Õr"   c                 ó.   — | j                   j                  S rF   )r<   Útotal_changesr8   s    r!   rš   zConnection.total_changes  s   € à�z‰z×'Ñ'Ð'r"   c              ƒ   ól   K  — | j                  | j                  j                  |«      ƒ d {  –—†  y 7 Œ­wrF   )r[   r<   Úenable_load_extensionrŽ   s     r!   rœ   z Connection.enable_load_extension  s$   è ø€ Ø�m‰m˜DŸJ™J×<Ñ<¸eÓD×DÒDúó   ‚*4¬2­4Úpathc              ƒ   ól   K  — | j                  | j                  j                  |«      ƒ d {  –—†  y 7 Œ­wrF   )r[   r<   Úload_extension)r3   rž   s     r!   r    zConnection.load_extension  s$   è ø€ Ø�m‰m˜DŸJ™J×5Ñ5°tÓ<×<Ò<úr�   ÚhandlerÚnc              ƒ   ón   K  — | j                  | j                  j                  ||«      ƒ d {  –—†  y 7 Œ­wrF   )r[   r<   Úset_progress_handler)r3   r¡   r¢   s      r!   r¤   zConnection.set_progress_handler  s(   è ø€ ð �m‰m˜DŸJ™J×;Ñ;¸WÀaÓH×HÒHús   ‚+5­3®5c              ƒ   ól   K  — | j                  | j                  j                  |«      ƒ d {  –—†  y 7 Œ­wrF   )r[   r<   Úset_trace_callback)r3   r¡   s     r!   r¦   zConnection.set_trace_callback  s$   è ø€ Ø�m‰m˜DŸJ™J×9Ñ9¸7ÓC×CÒCúr�   c                ór  ‡ ‡K  — t        «       Šˆˆ fd„}‰ j                  |«      }t        j                  |«      }	 	 ‰j	                  «       }|€n|­–— Œ|ƒ d{  –—†  y# t
        $ rH |j                  «       rt        j                  d«       Y Œ;t        j                  d«      ƒ d{  –—†7   Y Œ\w xY w7 ŒY­w)z©
        Return an async iterator to dump the database in SQL text format.

        Example::

            async for line in db.iterdump():
                ...

        c                  óò   •— 	 ‰j                   j                  «       D ]  } ‰j                  | «       Œ ‰j                  d «       y # t        $ r( t        j                  d«       ‰j                  d «       ‚ w xY w)Nzexception while dumping db)r<   Úiterdumpr6   rq   rK   Ú	exception)ÚlineÚ
dump_queuer3   s    €€r!   Údumperz#Connection.iterdump.<locals>.dumper.  sh   ø€ ðØ ŸJ™J×/Ñ/Ö1�DØ×)Ñ)¨$Õ/ð 2à×%Ñ% dÕ+øäò Ü—‘Ð:Ô;Ø×%Ñ% dÔ+Øðús   ƒAA Á1A6Nziterdump completed unexpectedlyg{®Gáz„?)
r	   r[   rU   Úensure_futureÚ
get_nowaitr   r   rK   ÚwarningÚsleep)r3   r­   r   Útaskr«   r¬   s   `    @r!   r©   zConnection.iterdump"  s§   ùè ø€ ô "›Gˆ
õ		ð �m‰m˜FÓ#ˆÜ×$Ñ$ SÓ)ˆàð*Ø&0×&;Ñ&;Ó&=�Ø�<ØØ“
ð ð �
‰
øô ò *Ø—9‘9”;Ü—K‘KÐ AÔBÙä—m‘m DÓ)×)Ó)ð*úð 	úsX   „8B7½A! ÁB7ÁA! ÁB7ÁB5ÁB7Á!.B2ÂB7ÂB2Â)B,Â*B2Â/B7Â1B2Â2B7r   Úmaing      Ð?©ÚpagesÚprogressr�   r±   Útargetrµ   r¶   r±   c             ƒ   ó®   K  — t        |t        «      r|j                  }| j                  | j                  j                  |||||¬«      ƒ d{  –—†  y7 Œ­w)z¦
        Make a backup of the current database to the target database.

        Takes either a standard sqlite3 or aiosqlite Connection object as the target.
        r´   N)Ú
isinstancer   r<   r[   Úbackup)r3   r·   rµ   r¶   r�   r±   s         r!   rº   zConnection.backupL  sR   è ø€ ô �fœjÔ)Ø—\‘\ˆFà�m‰mØ�J‰J×ÑØØØØØð ó 
÷ 	
ò 	
ús   ‚AAÁAÁArF   )r   N)r   r   )F)<Ú__name__Ú
__module__Ú__qualname__r   Úsqlite3r   Úintr   rU   ÚAbstractEventLoopr,   r9   Úpropertyr<   Ústrr   ÚRowrD   r   rH   rS   r[   r]   r   r`   rc   ri   r   r   rC   rl   ro   re   r@   rv   ry   r{   r~   r€   Úboolr†   rˆ   r‹   ÚsetterÚIsolationLevelÚtyper‘   Úbytesr—   rš   rœ   r    r¤   r¦   r   r©   r   Úfloatrº   Ú__classcell__)r4   s   @r!   r   r   -   sy  ø„ ð
 59ñ	à˜B × 2Ñ 2Ð2Ñ3ðð ðð �w×0Ñ0Ñ1ð	ð
 
õò&4ð
 ð �w×)Ñ)ò  ó ð ð! 3ð !°Cð !¸HÀWÇ[Á[Ñ<Qó !ð
! Sð !°cð !¸hÀwÇ{Á{Ñ>Só !óQò4
óð+˜9 S¨$°Ð%<Ñ=ó +óóð ðD˜fò Dó ðDó/ó1ó$ð à>Bñ$Øð$Ø$,¨X°c©]Ñ$;ð$à	ò$ó ð$ð à>BñJØðJØ$,¨X°c©]Ñ$;ðJà	�'—+‘+Ñ	òJó ðJð à>BñLØðLØ$,¨X°c©]Ñ$;ðLà	�'—+‘+Ñ	òLó ðLð ð$Øð$Ø$,¨X°c©]Ñ$;ð$à	ò$ó ð$ð ð$¨cð $°fò $ó ð$ó
&ð
 QVñ
Øð
Ø%(ð
Ø08ð
ØIMð
à	ó
ð, ð) ò )ó ð)ð ð* ¨#¡ò *ó ð*ð ×Ñð+ ^ð +¸ò +ó ð+ð ð&˜X d™^ò &ó ð&ð ×Ñð) 8¨D¡>ð )°dò )ó ð)ð ð'˜h¨ w° |Ñ4ò 'ó ð'ð ×Ñð* H¨e¨W°c¨\Ñ$:ð *¸tò *ó ð*ð ð(˜sò (ó ð(ðE°ð E¸$ó Eð=¨ó =ðIØ  H¨S¡MÐ 1Ñ2ðIØ7:ðIà	óIð
D°ð D¸Tó Dð( ¨cÑ 2ó (ð\ Ø>BØØò
à�l G×$6Ñ$6Ð6Ñ7ð
ð ð	
ð
 ˜8 S¨#¨s O°TÐ$9Ñ:Ñ;ð
ð ð
ð ð
ð 
÷
r"   r   é@   )r(   r)   Údatabaser)   rZ   c                óp   ‡ ‡— |�t        dt        «       dt        j                  fˆ ˆfd„}t        ||«      S )z<Create and return a connection proxy to the sqlite database.z7aiosqlite.connect() no longer uses the `loop` parameterr   c                  ó°   •— t        ‰t        «      r‰} n-t        ‰t        «      r‰j                  d«      } nt        ‰«      } t	        j
                  | fi ‰¤ŽS )Nzutf-8)r¹   rÂ   rÈ   Údecoder¾   r   )ÚlocrÌ   rZ   s    €€r!   r'   zconnect.<locals>.connectorv  sG   ø€ Ü�h¤Ô$Ø‰CÜ˜¤%Ô(Ø—/‘/ 'Ó*‰Cä�h“-ˆCä�‰˜sÑ- fÑ-Ð-r"   )r   r2   r¾   r   )rÌ   r(   r)   rZ   r'   s   `  ` r!   r   r   g  s:   ù€ ð ÐÜØEÜô	
ð
.”w×)Ñ)ö .ô �i Ó1Ð1r"   ),Ú__doc__rU   Úloggingr¾   Úcollections.abcr   r   r   Ú	functoolsr   Úpathlibr   Úqueuer   r	   r
   Ú	threadingr   Útypingr   r   r   r   r   Úwarningsr   Úcontextr   rC   r   Ú__all__Ú	getLoggerrK   rÆ   ÚFuturer    rO   r%   Úobjectr7   r   rÂ   rÀ   r   rb   r"   r!   Ú<module>rß      sþ   ðñó Û Û ß >Ñ >Ý Ý ß +Ñ +Ý ß :Õ :Ý å #Ý â
-€à€g×Ñ˜Ó$€ð ˜'Ð"FÑGÑH€ð�G—N‘Nð ¨Cð °Dó ð�w—~‘~ð ¨-ð ¸Dó ñ  ›Ð ôw
�ô w
ðz	 Ø04ò	2Ø�C˜�IÑð2ð �7×,Ñ,Ñ
-ð	2ð
 ð2ð ô2r"   