Viewing File: /opt/alt/python38/lib64/python3.8/site-packages/playhouse/__pycache__/apsw_ext.cpython-38.pyc

U

SW@s\dZddlZddlTddlmZddlmZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZGdddeZGdddeZddZGdddeZGddde	ZGdd d eZGd!d"d"eZ
Gd#d$d$e
ZdS)%an
Peewee integration with APSW, "another python sqlite wrapper".

Project page: https://rogerbinns.github.io/apsw/

APSW is a really neat library that provides a thin wrapper on top of SQLite's
C interface.

Here are just a few reasons to use APSW, taken from the documentation:

* APSW gives all functionality of SQLite, including virtual tables, virtual
  file system, blob i/o, backups and file control.
* Connections can be shared across threads without any additional locking.
* Transactions are managed explicitly by your code.
* APSW can handle nested transactions.
* Unicode is handled correctly.
* APSW is faster.
N)*)_sqlite_date_part)_sqlite_date_trunc)_sqlite_regexp)BooleanField)	DateField)
DateTimeField)DecimalField)logger	savepoint)	TimeFieldtransaction)SqliteExtDatabase)VirtualCharField)VirtualField)VirtualFloatField)VirtualIntegerField)VirtualModelc@seZdZdddZddZdS)rdeferredcCs||_||_dSN)db	lock_type)selfrrr/apsw_ext.py__init__)sztransaction.__init__cCs|j|jdSr)rbeginrrrrr_begin-sztransaction._beginN)r)__name__
__module____qualname__rr rrrrr(s
rcseZdZd,fdd	ZddZddZdd	Zfd
dZdd
ZddZ	ddZ
ddZddZddZ
ddZd-ddZddZdd Zd.d"d#Zd$d%Zd&d'Zd/d(d)Zd0d*d+ZZS)1APSWDatabaseNcs$||_i|_tt|j|f|dSr)timeout_modulessuperr$r)rdatabaser%kwargs	__class__rrr2szAPSWDatabase.__init__cCs||j|<dSrr&)rmod_namemod_instrrrregister_module7szAPSWDatabase.register_modulecCs|j|=dSrr,)rr-rrrunregister_module:szAPSWDatabase.unregister_modulecKsNtj|f|}|jdk	r$||jz||Wn|YnX|Sr)apswZ
Connectionr%Zsetbusytimeout_add_conn_hooksclose)rr(r)connrrr_connect=s
zAPSWDatabase._connectcstt||||dSr)r'r$r2
_load_modules)rr4r*rrr2HszAPSWDatabase._add_conn_hookscCs$|jD]\}}|||q
|Sr)r&itemsZcreatemodule)rr4r-r.rrrr6LszAPSWDatabase._load_modulescs4|jD]$\}\}fdd}|||q
dS)Ncs}||j|jfSr)stepZfinalize)instanceklassrrmake_aggregateSsz5APSWDatabase._load_aggregates.<locals>.make_aggregate)Z_aggregatesr7Zcreateaggregatefunction)rr4name
num_paramsr<rr:r_load_aggregatesQszAPSWDatabase._load_aggregatescCs$|jD]\}}|||q
dSr)Z_collationsr7Zcreatecollation)rr4r=fnrrr_load_collationsXszAPSWDatabase._load_collationscCs*|jD]\}\}}||||q
dSr)Z
_functionsr7Zcreatescalarfunction)rr4r=r@r>rrr_load_functions\szAPSWDatabase._load_functionscCs$|d|jD]}||qdSNT)enableloadextension_extensions
loadextension)rr4	extensionrrr_load_extensions`s

zAPSWDatabase._load_extensionscCs4|j||s0|}|d||dSrC)rEaddZ	is_closedZget_connrDrF)rrGr4rrrload_extensiones

zAPSWDatabase.load_extensioncCs|||pd|S)Nr)execute)rcursorsqlparamsrrr_execute_sqllszAPSWDatabase._execute_sqlTc	Cs<t||f||}||||W5QRX|Sr)r
debugZexception_wrapper
get_cursorrO)rrMrNZrequire_commitrLrrrexecute_sqlps

zAPSWDatabase.execute_sqlcCs|jjr|SdSr)Z_metaZauto_increment
getconnectionZlast_insert_rowid)rrLZmodelrrrlast_insert_idwszAPSWDatabase.last_insert_idcCs|Sr)rSZchanges)rrLrrr
rows_affected{szAPSWDatabase.rows_affectedrcCs|d|dS)Nz	begin %s;rQrKrrrrrr~szAPSWDatabase.begincCs|ddS)Nzcommit;rVrrrrcommitszAPSWDatabase.commitcCs|ddS)Nz	rollback;rVrrrrrollbackszAPSWDatabase.rollbackcCs
t||SrrrWrrrrszAPSWDatabase.transactioncCs
t||Srr)rZsidrrrrszAPSWDatabase.savepoint)N)NT)r)r)N)r!r"r#rr/r0r5r2r6r?rArBrHrJrOrRrTrUrrXrYrr
__classcell__rrr*rr$1s(


r$cCs|dk	rt|SdSr)str)svrrrnhsr^cseZdZfddZZS)rcs(tt||}|dk	r$|r dp"dSdS)Nr)r'rdb_value)rr]r*rrr`szBooleanField.db_value)r!r"r#r`rZrrr*rrsrc@seZdZeZdS)rNr!r"r#r^r`rrrrrsrc@seZdZeZdS)r
Nrarrrrr
sr
c@seZdZeZdS)rNrarrrrrsrc@seZdZeZdS)r	Nrarrrrr	sr	)__doc__r1ZpeeweerrrrZ
_BooleanFieldrZ
_DateFieldrZ_DateTimeFieldr	Z
_DecimalFieldr
rr
Z
_TimeFieldrZ_transactionZplayhouse.sqlite_extrrrrrrr$r^rrrr<module>s6	]
Back to Directory File Manager