Files
DeletedPosts/Bot/sqlitewrapper/__pycache__/model.cpython-39.pyc

116 lines
9.7 KiB
Plaintext
Raw Normal View History

2026-02-23 22:48:25 +00:00
a
h<10>d<EFBFBD> <00>@s<>ddlmZddlmZddlmZmZddlmZm Z m
Z
m Z m Z m Z dZGdd<07>d<07>ZGdd <09>d <09>ZGd
d <0B>d <0B>ZGd d <0A>d <0A>Zedkr<>dS)<10>)<01> annotations)<01>Path)<02>
Connection<EFBFBD>connect)<06> Generator<6F>Optional<61>Tuple<6C>List<73>Dict<63>Any)<03>Row<6F>Model<65>Datatypec@s<>eZdZddd<03>dd<05>Zdd<07>dd <09>Zdd<07>d
d <0B>Zd d<07>d d<0E>Zdd<07>dd<10>Zdd<07>dd<13>Zdd<07>dd<15>Z dd<07>dd<17>Z
dd<07>dd<19>Z ddd<1A>dd<1C>Z dS)r r <00>None)<02>attrs<72>returncKs |<01><00>D]\}}||j|<qdS<00>N)<02>items<6D>__dict__)<04>selfr<00>name<6D>value<75>r<00>@/home/pi/bots/DeletedPosts/CraftSleuthBot/sqlitewrapper/model.py<70>__init__sz Row.__init__zTuple[Any, ...]<5D>rcCst|j<01><02><00>Sr)<03>tupler<00>values<65>rrrrrsz
Row.valuescCst|j<01><02><00>Sr)rr<00>keysrrrrr!szRow.keyszDict[Any, Any]cCs|jSr<00>rrrrr<00>dict$szRow.dictcCs
|j<00><01>Sr)rrrrrrr'sz Row.items<6D>strcCsd|j<00>d<02>S)Nz<Row<6F>>r rrrr<00>__str__*sz Row.__str__cCst|<00>Sr<00>r"rrrr<00>__repr__-sz Row.__repr__cCs
d|_|S)Nr)<01>_Row__nrrrr<00>__iter__0sz Row.__iter__cCsDt|j<01><02><00>dd<01>}|jt|<01>kr(t<05>||j}|jd7_|S)N<><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)rrrr'<00>len<65> StopIteration)rr<00>datarrr<00>__next__4s 
z Row.__next__)<02>_Row__krcCs
|j|Srr )rr/rrr<00> __getitem__<szRow.__getitem__N) <0A>__name__<5F>
__module__<EFBFBD> __qualname__rrrr!rr$r&r(r.r0rrrrr sr c@s$eZdZdZdZdZdZdZdZdS)rzINTEGER PRIMARY KEYNZINTEGER<45>REALZTEXT<58>BLOB) r1r2r3<00>ID<49>NULL<4C>INTr4<00>STRr5rrrrr@s rc@s:eZdZddd<03>dd<05>Zdd<07>dd <09>Zd
dd <0B>d d <0A>ZdS)<0F>ConnectionManagerr"r)<02>dbrcCs||_t|j<00>|_dSr)r;r<00> _connection)rr;rrrrJszConnectionManager.__init__rrcCs|jSr)r<rrrr<00> __enter__NszConnectionManager.__enter__r )<02>argsrcGs|j<00><01>|j<00><02>dSr)r<<00>commit<69>close)rr>rrr<00>__exit__Qs
zConnectionManager.__exit__N)r1r2r3rr=rArrrrr:Isr:c@s<>eZdZddddd<05>dd<07>Zdd<08>d d
<EFBFBD>Zdd<08>d d <0C>Zd d<08>dd<0F>Zddd<10>dd<12>Zd.dddd<15>dd<17>Zdd<08>dd<19>Z ddd<1B>dd<1D>Z
ddd<10>dd<1F>Z ddd<1B>d d!<21>Z d"d#d$<24>d%d&<26>Z d'd<08>d(d)<29>Zdd'd<10>d*d+<2B>Zddd<10>d,d-<2D>ZdS)/r r"rr r)<04>db_name<6D> save_path<74>tablercKsX||_tt|<02>d|<01>d<02><04><01>|_||_tj|jd<d<04>dd<06>|<03><08>D<00><01>dd<07>|_ dS)Nz/.z.sqlite<74>id<69> css"|]\}}|<01>d|<02>d<01>VqdS)rF<00>,Nr)<03>.0r<00>datatyperrr<00> <genexpr>]sz!Model.__init__.<locals>.<genexpr>r))
rr"r<00>pathrDrr6<00>joinr<00> table_values)rrBrCrDrrrrWs 
<06><06>zModel.__init__rcCst|<00><01><00>}|jj<03>|<01><00>Sr)<04>list<73> fetch_all<6C> __class__r1)rr-rrrr$as z Model.__str__cCst|<00>Srr%rrrrr&eszModel.__repr__<5F>intcCs
t|j<01>Sr)<02>hashrKrrrr<00>__hash__hszModel.__hash__)<02>wherercKsLt|<01><01><00>}d}t|<02>D].\}}||<05>d<02>7}|t|<02>dkr|d7}q|S)N<>z = ?r*z AND )rr<00> enumerater+)rrTr<00> condition<6F>index<65>keyrrr<00>_get_conditionsks 
zModel._get_conditionsNzOptional[Tuple[Row, ...]])<03>queryrrcCsVt|j<01><01>8}|dur |<03>|<01>}n |<03>||<02>}|<04><03>Wd<00>S1sH0YdS)a<>Execute a query
:param query: An SQL Query
:type query: str
:param values: vales to be added, if any, defaults to None
:type values: Optional[Tuple[Row, ...]], optional
:raises Exception: If tha database has not been initialized
before trying to execute any queries
:return: Whatever the query would return
:rtype: Any
N)r:rK<00>executeZfetchall)rr[r<00>curr-rrrr\vs
  z Model.executecCs$d|j<00>d|j<01>d<03>}|<00>|<01>dS)zgCreate a table based on the `self.table` (**table) kwargs
provided upon initialization
z$
CREATE TABLE IF NOT EXISTS z (
<20>
)
N)rrMr\)rr[rrr<00>init<69>s <04><04>z
Model.initr )<02>rowrcCs<>|j}t|<02>dt|<01><02><00>krJtd|<01><02><00>dt|j<00><02><00>dd<05><00>d<06><05><01>g}|<01><05>D]}|<03>d<07>qVd|j<07>d |<01><02><00>d
d <0B>|<03><01>d <0C>}|<00> ||<01><05><00>dS) aSave a row into the db. Example:
```
>>> row = Row(name='Pantelis', age=13)
>>> self.save(row)
```
:param row: A row object
:type row: Row
:raises ValueError: If the Row values does not match the db schema
r*z Row fields z do not much db schema Nr)z8. Consider adding 'Datatype.NULL' for the missing fields<64>?<3F>
INSERT INTO rF<00>
VALUES (
<20>, r^)
rDr+r<00>
ValueErrorrr<00>appendrrLr\)rr`<00>fields<64>marks<6B>_r[rrr<00>save<76>s <14>
  <04><06><08>z
Model.savecKs@t|<01><01><00>}|jfi|<01><01>}d|j<03>d|<03>d<03>}|<00>||<02>dS)aDelete a row from the db. Example:
```
>>> # Query: `DELETE FROM {self.name} WHERE name = ? AND age = ?`
>>> # This will delete every row with name='John' and age=15
>>> self.delete(name='John')
```
z
DELETE FROM <20>
WHERE
<20>
N)rrrZrr\)rrTrrWr[rrr<00>delete<74>s <04><02>z Model.deletecCsf|j}|j|d<01>g}|<01><02>D]}|<03>d<02>qd|j<04>d|<01><05><00>dd<06>|<03><01>d<07>}|<00>||<01><02><00>dS) aJAfter you picked and changed a row, use this instead of `save` in order
for the entry to preserver the same `id`. Example:
```
>>> row = self.get(name='john')
>>> row.name = 'Mary'
>>> self.edit(row)
```
:param row: _description_
:type row: Row
)rErarbrFrcrdr^N)rErmrrfrrrLr\)rr`rErhrir[rrr<00>edit<69>s    <04><06><08>z
Model.editz List[Any]z List[Row])r-rcCs^t|j<01><02><00>}g}|D]B}i}t|<04>D]\}}||||<q&|<03>tfi|<05><01><01>|<05><06>q|S)z<>Take a list of entries and convert it to a list of `Row`s
:param data: The list of entries
:type data: List[Any]
:return: A copy of the data as list or `Row`s
:rtype: List[Row]
)rrDrrVrfr <00>clear)rr-Z
table_keys<EFBFBD>rowsr`<00>structrX<00>colrrr<00>_entries_as_rows<77>s 
zModel._entries_as_rowszGenerator[Row, None, None]ccs.d|j<00><00>}|<00>|<01>}|<00>|<02>}|EdHdS)NzSELECT * FROM )rr\rs)rr[r-rprrrrO<00>s 

zModel.fetch_allcksTt|<01><01><00>}|jfi|<01><01>}d|j<03>d|<03>d<03>}|<00>||<02>}|<00>|<05>}|EdHdS)a<>Filter out data from the db based on the `where` conditions. Example
```
>>> data = self.filter(name='Pantelis', age=13)
>>> # Query created
>>> # SELECT * FROM test WHERE name = Pantelis AND age = 13
>>> for i in data:
... i
<Row{...}>
```
:yield: Row
:rtype: Generator[Row, None, None]
<20>
SELECT * FROM rkrlN)rrrZrr\rs)rrTrrWr[r-rprrr<00>filter<65>s <04><02> 
z Model.filterc Ksxt|<01><01><00>}|jfi|<01><01>}d|j<03>d|<03>d<03>}|<00>||<02>d}i}t|t|j<06><07><00><01>D]\}}|||<qXtfi|<06><01>S)z<>Find the first occurance matching the `where` condition(s) Example:
```
>>> self.get(name="Pantelis", age=12)
<Row{...}>
```
:return: A `Row` with the values of the matching row
:rtype: Row
rtrkrlr) rrrZrr\<00>ziprDrr ) rrTrrWr[r-r`rrrrr<00>gets
<04><02>
z Model.get)N)r1r2r3rr$r&rSrZr\r_rjrmrnrsrOrurwrrrrr Vs
  r <00>__main__N)<14>
__future__r<00>pathlibr<00>sqlite3rr<00>typingrrrr r
r <00>__all__r rr:r r1rrrr<00><module>s  
'  _