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

139 lines
15 KiB
Plaintext
Raw Normal View History

2026-02-23 22:48:25 +00:00
<EFBFBD>
h<10>d<EFBFBD> <00><01><><00>ddlmZddlmZddlmZmZddlmZm Z m
Z
m Z m Z m Z dZGd<06>d<07><00>ZGd<08>d <09><00>ZGd
<EFBFBD>d <0B><00>ZGd <0C>d <0A><00>ZedkrdSdS)<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<01>^<00>eZdZdd<05>Zdd<07>Zdd<08>Zdd
<EFBFBD>Zdd <0B>Zdd <0A>Zdd<0E>Z dd<0F>Z
dd<10>Z dd<12>Z dS)r <00>attrsr <00>return<72>Nonec <01>N<00>|<01><00><00>D]\}}||j|<<00>dS<00>N)<02>items<6D>__dict__)<04>selfr<00>name<6D>values <20>@/home/pi/Bots/DeletedPosts/CraftSleuthBot/sqlitewrapper/model.py<70>__init__z Row.__init__s6<00><00> <20>;<3B>;<3B>=<3D>=<3D> (<28> (<28>K<EFBFBD>D<EFBFBD>%<25>"'<27>D<EFBFBD>M<EFBFBD>$<24> <1F> <1F> (<28> (<28><00>Tuple[Any, ...]c<01>N<00>t|j<00><00><00><00><00>Sr)<03>tupler<00>values<65>rs rr!z
Row.valuess<00><00><14>T<EFBFBD>]<5D>)<29>)<29>+<2B>+<2B>,<2C>,<2C>,rc<01>N<00>t|j<00><00><00><00><00>Sr)r r<00>keysr"s rr$zRow.keys!s<00><00><14>T<EFBFBD>]<5D>'<27>'<27>)<29>)<29>*<2A>*<2A>*r<00>Dict[Any, Any]c<01><00>|jSr<00>rr"s r<00>dictzRow.dict$s
<00><00><13>}<7D>rc<01>4<00>|j<00><00><00>Sr)rrr"s rrz Row.items's<00><00><13>}<7D>"<22>"<22>$<24>$<24>$r<00>strc<01><00>d|j<00>d<02>S)Nz<Row<6F>>r'r"s r<00>__str__z Row.__str__*s<00><00>&<26>d<EFBFBD>m<EFBFBD>&<26>&<26>&<26>&rc<01> <00>t|<00><00>Sr<00>r*r"s r<00>__repr__z Row.__repr__-<00><00><00><12>4<EFBFBD>y<EFBFBD>y<EFBFBD>rc<01><00>d|_|S)Nr)<01>_Row__nr"s r<00>__iter__z Row.__iter__0s<00><00><14><04><08><13> rc<01><><00>t|j<00><00><00><00><00>dd<01>}|jt |<01><00>krt
<00>||j}|xjdz c_|S)N<><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)r rr$r3<00>len<65> StopIteration)rr$<00>datas r<00>__next__z Row.__next__4s^<00><00><14>T<EFBFBD>]<5D>'<27>'<27>)<29>)<29>*<2A>*<2A>3<EFBFBD>B<EFBFBD>3<EFBFBD>/<2F><04> <0F>8<EFBFBD>s<EFBFBD>4<EFBFBD>y<EFBFBD>y<EFBFBD> <20> <20><1F> <1F><13>D<EFBFBD>H<EFBFBD>~<7E><04> <0C><08><08>A<EFBFBD> <0A><08><08><13> r<00>_Row__kc<01><00>|j|Srr')rr<s r<00> __getitem__zRow.__getitem__<s<00><00><13>}<7D>S<EFBFBD>!<21>!rN)rr rr)rr)rr%)rr <00>rr*)rr )r<r rr ) <0A>__name__<5F>
__module__<EFBFBD> __qualname__rr!r$r(rr-r0r4r;r><00>rrr r s<><00><00><00><00><00><00>(<28>(<28>(<28>(<28>-<2D>-<2D>-<2D>-<2D>+<2B>+<2B>+<2B>+<2B><1D><1D><1D><1D>%<25>%<25>%<25>%<25>'<27>'<27>'<27>'<27><19><19><19><19><14><14><14><14><14><14><14><14>"<22>"<22>"<22>"<22>"<22>"rr c<01>&<00>eZdZdZdZdZdZdZdZdS)rzINTEGER PRIMARY KEYN<59>INTEGER<45>REAL<41>TEXT<58>BLOB) r@rArB<00>ID<49>NULL<4C>INTrF<00>STRrHrCrrrr@s,<00><00><00><00><00><00> <1E>B<EFBFBD> <0F>D<EFBFBD>
<13>C<EFBFBD> <11>D<EFBFBD>
<10>C<EFBFBD> <11>D<EFBFBD>D<EFBFBD>Drrc<01>&<00>eZdZd d<05>Zd d<07>Zdd
<EFBFBD>Zd S)<0F>ConnectionManager<65>dbr*rrc<01>F<00>||_t|j<00><00>|_dSr)rOr<00> _connection)rrOs rrzConnectionManager.__init__Js!<00><00><14><04><07>"<22>4<EFBFBD>7<EFBFBD>+<2B>+<2B><04><18><18>rrc<01><00>|jSr)rQr"s r<00> __enter__zConnectionManager.__enter__Ns <00><00><13><1F>r<00>argsr c<01>j<00>|j<00><00><00>|j<00><00><00>dSr)rQ<00>commit<69>close)rrTs r<00>__exit__zConnectionManager.__exit__Qs2<00><00> <0C><18><1F><1F>!<21>!<21>!<21> <0C><18><1E><1E> <20> <20> <20> <20> rN)rOr*rr)rr)rTr rr)r@rArBrrSrXrCrrrNrNIsP<00><00><00><00><00><00>,<2C>,<2C>,<2C>,<2C> <20> <20> <20> <20>!<21>!<21>!<21>!<21>!<21>!rrNc<01><><00>eZdZd#d <09>Zd$d
<EFBFBD>Zd$d <0B>Zd%d <0A>Zd&d<0F>Zd'd(d<14>Zd)d<15>Z d*d<18>Z
d+d<19>Z d*d<1A>Z d,d<1E>Z d-d <20>Zd.d!<21>Zd/d"<22>ZdS)0r<00>db_namer*<00> save_pathr<00>tabler rrc <01><00>||_tt|<02>d|<01>d<02><04><00><00><00>|_||_t
j|jd<d<04>d<05>|<03><00><00>D<00><00><00><00>dd<06>|_ dS)Nz/.z.sqlite<74>id<69> c3<01>,K<00>|]\}}|<01>d|<02>d<01>V<00><00>dS)r_<00>,NrC)<03>.0r<00>datatypes r<00> <genexpr>z!Model.__init__.<locals>.<genexpr>]sH<00><00><00><00>%
<EFBFBD>%
<EFBFBD>&6<>t<EFBFBD>X<EFBFBD>t<EFBFBD> !<21> !<21>h<EFBFBD> !<21> !<21> !<21>%
<EFBFBD>%
<EFBFBD>%
<EFBFBD>%
<EFBFBD>%
<EFBFBD>%
rr6)
rr*r<00>pathr\rrI<00>joinr<00> table_values)rrZr[r\s rrzModel.__init__Ws<><00><00><1B><04> <09><17><04> <09>=<3D>=<3D>W<EFBFBD>=<3D>=<3D>=<3D>><3E>><3E>?<3F>?<3F><04> <09><1A><04>
<EFBFBD>#<23>;<3B><04>
<EFBFBD>4<EFBFBD><18><1F>H<EFBFBD>H<EFBFBD>%
<EFBFBD>%
<EFBFBD>:?<3F>+<2B>+<2B>-<2D>-<2D>%
<EFBFBD>%
<EFBFBD>%
<EFBFBD>
<EFBFBD>
<EFBFBD>
<0A>2<EFBFBD>#<23><0F><04><19><19>rc<01>d<00>t|<00><00><00><00><00>}|jj<00>|<01><00>Sr)<04>list<73> fetch_all<6C> __class__r@)rr:s rr-z Model.__str__as/<00><00><13>D<EFBFBD>N<EFBFBD>N<EFBFBD>$<24>$<24>%<25>%<25><04><16>.<2E>)<29>1<>4<EFBFBD>1<>1<>1rc<01> <00>t|<00><00>Srr/r"s rr0zModel.__repr__er1r<00>intc<01>*<00>t|j<00><00>Sr)<02>hashrer"s r<00>__hash__zModel.__hash__hs<00><00><13>D<EFBFBD>I<EFBFBD><EFBFBD><EFBFBD>r<00>wherec <01><><00>t|<01><00><00><00><00>}d}t|<02><00>D](\}}||<05>d<02>z }|t|<02><00>dz
kr|dz }<03>)|S)N<>z = ?r7z AND )r r$<00> enumerater8)rrqr$<00> condition<6F>index<65>keys r<00>_get_conditionszModel._get_conditionsksk<00><00><14>U<EFBFBD>Z<EFBFBD>Z<EFBFBD>\<5C>\<5C>"<22>"<22><04><16> <09>#<23>D<EFBFBD>/<2F>/<2F> %<25> %<25>J<EFBFBD>E<EFBFBD>3<EFBFBD> <15>C<EFBFBD><1C><1C><1C> %<25>I<EFBFBD><14><03>D<EFBFBD> <09> <09>A<EFBFBD> <0A>%<25>%<25><19>W<EFBFBD>$<24> <09><><18>rN<>queryr!<00>Optional[Tuple[Row, ...]]c<01><><00>t|j<00><00>5}|<02>|<03>|<01><00>}n|<03>||<02><00>}|<04><00><00>cddd<01><00>S#1swxYwYdS)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)rNre<00>execute<74>fetchall)rryr!<00>curr:s rr|z Model.executevs<><00><00><1F>t<EFBFBD>y<EFBFBD> )<29> )<29> #<23>S<EFBFBD><15>~<7E><1A>{<7B>{<7B>5<EFBFBD>)<29>)<29><04><04><1A>{<7B>{<7B>5<EFBFBD>&<26>1<>1<><04><17>=<3D>=<3D>?<3F>?<3F>  #<23> #<23> #<23> #<23> #<23> #<23> #<23> #<23> #<23> #<23> #<23> #<23><><EFBFBD><EFBFBD> #<23> #<23> #<23> #<23> #<23> #s<00>AA$<03>$A(<07>+A(c<01>V<00>d|j<00>d|j<00>d<03>}|<00>|<01><00>dS)zgCreate a table based on the `self.table` (**table) kwargs
provided upon initialization
z$
CREATE TABLE IF NOT EXISTS z (
<20>
)
N)rrgr|)rrys r<00>initz
Model.init<69>sG<00><00> <0C>$(<28>I<EFBFBD> <0C> <0C> <11> <1E> <0C> <0C> <0C><05>
<0A> <0C> <0C>U<EFBFBD><1B><1B><1B><1B>r<00>rowr c <01>><00>|j}t|<02><00>dz
t|<01><00><00><00><00>krTtd|<01><00><00><00>dt |j<00><00><00><00><00>dd<05><00>d<06><05><00><00>g}|<01><00><00>D]}|<03>d<07><00><00>d|j<00>d |<01><00><00><00>d
d <0B>|<03><00><00>d <0C>}|<00> ||<01><00><00><00><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
r7z Row fields z do not much db schema Nr6z8. Consider adding 'Datatype.NULL' for the missing fields<64>?<3F>
INSERT INTO r_<00>
VALUES (
<20>, r<>)
r\r8r$<00>
ValueErrorr r!<00>appendrrfr|)rr<><00>fields<64>marks<6B>_rys r<00>savez
Model.save<76>s3<00><00><16><1A><06> <0E>v<EFBFBD>;<3B>;<3B><11>?<3F>c<EFBFBD>#<23>(<28>(<28>*<2A>*<2A>o<EFBFBD>o<EFBFBD> -<2D> -<2D><1C>Z<01>3<EFBFBD>8<EFBFBD>8<EFBFBD>:<3A>:<3A>Z<01>Z<01><07><04>
<EFBFBD><0F><0F><19><19><1A><1A>3<EFBFBD>B<EFBFBD>3<EFBFBD><1F>Z<01>Z<01>Z<01>[<01>[<01> [<01><13><05><14><1A><1A><1C><1C> <1E> <1E>A<EFBFBD> <11>L<EFBFBD>L<EFBFBD><13> <1D> <1D> <1D> <1D> <0C><19>Y<EFBFBD> <0C> <0C>!$<24><18><18><1A><1A> <0C> <0C><12>Y<EFBFBD>Y<EFBFBD>u<EFBFBD> <1D> <1D> <0C> <0C> <0C><05> <0A> <0C> <0C>U<EFBFBD>C<EFBFBD>J<EFBFBD>J<EFBFBD>L<EFBFBD>L<EFBFBD>)<29>)<29>)<29>)<29>)rc <01><><00>t|<01><00><00><00><00>}|jdi|<01><01>}d|j<00>d|<03>d<03>}|<00>||<02><00>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>
NrC)r r!rxrr|)rrqr!rurys r<00>deletez Model.delete<74>sw<00><00><17>u<EFBFBD>|<7C>|<7C>~<7E>~<7E>&<26>&<26><06>(<28>D<EFBFBD>(<28>1<>1<>5<EFBFBD>1<>1<> <09> <0C><19>Y<EFBFBD> <0C> <0C><17> <0C> <0C> <0C><05>
<0A> <0C> <0C>U<EFBFBD>F<EFBFBD>#<23>#<23>#<23>#<23>#rc<01>X<00>|j}|<00>|<02><01><00>g}|<01><00><00>D]}|<03>d<02><00><00>d|j<00>d|<01><00><00><00>dd<06>|<03><00><00>d<07>}|<00>||<01><00><00><00><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
)r^r<>r<>r_r<>r<>r<>N)r^r<>r!r<>rr$rfr|)rr<>r^r<>r<>rys r<00>editz
Model.edit<69>s<><00><00><11>V<EFBFBD><02> <0C> <0B> <0B>r<EFBFBD> <0B><1A><1A><1A><12><05><14><1A><1A><1C><1C> <1E> <1E>A<EFBFBD> <11>L<EFBFBD>L<EFBFBD><13> <1D> <1D> <1D> <1D> <0C><19>Y<EFBFBD> <0C> <0C>!$<24><18><18><1A><1A> <0C> <0C><12>Y<EFBFBD>Y<EFBFBD>u<EFBFBD> <1D> <1D> <0C> <0C> <0C><05> <0A> <0C> <0C>U<EFBFBD>C<EFBFBD>J<EFBFBD>J<EFBFBD>L<EFBFBD>L<EFBFBD>)<29>)<29>)<29>)<29>)rr:<00> List[Any]<5D> List[Row]c<01>
<00>t|j<00><00><00><00><00>}g}|D]W}i}t|<04><00>D]\}}||||<<00>|<03>t di|<05><01><01><00>|<05><00><00><00>X|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]
rC)r r\r$rtr<>r <00>clear)rr:<00>
table_keys<EFBFBD>rowsr<73><00>structrv<00>cols r<00>_entries_as_rowszModel._entries_as_rows<77>s<><00><00><1B>4<EFBFBD>:<3A>?<3F>?<3F>,<2C>,<2C>-<2D>-<2D>
<EFBFBD><11><04><17> <1B> <1B>C<EFBFBD><17>F<EFBFBD>'<27><03>n<EFBFBD>n<EFBFBD> 0<> 0<>
<EFBFBD><05>s<EFBFBD>,/<2F><06>z<EFBFBD>%<25>(<28>)<29>)<29> <10>K<EFBFBD>K<EFBFBD><03> <0A> <0A>f<EFBFBD> <0A> <0A> &<26> &<26> &<26> <12>L<EFBFBD>L<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD><13> r<00>Generator[Row, None, None]c#<01><>K<00>d|j<00><00>}|<00>|<01><00>}|<00>|<02><00>}|Ed{V<00><02>dS)NzSELECT * FROM )rr|r<>)rryr:r<>s rrjzModel.fetch_all<6C>sN<00><00><00><00>,<2C><14><19>,<2C>,<2C><05><13>|<7C>|<7C>E<EFBFBD>"<22>"<22><04><13>$<24>$<24>T<EFBFBD>*<2A>*<2A><04><17><0F><0F><0F><0F><0F><0F><0F><0F>rc+<01><>K<00>t|<01><00><00><00><00>}|jdi|<01><01>}d|j<00>d|<03>d<03>}|<00>||<02><00>}|<00>|<05><00>}|Ed{V<00><02>dS)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 r<>r<>NrC)r r!rxrr|r<>)rrqr!ruryr:r<>s r<00>filterz Model.filter<65>s<><00><00><00><00><17>u<EFBFBD>|<7C>|<7C>~<7E>~<7E>&<26>&<26><06>(<28>D<EFBFBD>(<28>1<>1<>5<EFBFBD>1<>1<> <09> <0C><1B>y<EFBFBD> <0C> <0C><17> <0C> <0C> <0C><05> <14>|<7C>|<7C>E<EFBFBD>6<EFBFBD>*<2A>*<2A><04><13>$<24>$<24>T<EFBFBD>*<2A>*<2A><04><17><0F><0F><0F><0F><0F><0F><0F><0F>rc <01>L<00>t|<01><00><00><00><00>}|jdi|<01><01>}d|j<00>d|<03>d<03>}|<00>||<02><00>d}i}t |t|j<00><00><00><00><00><00><00>D]
\}}|||<<00> tdi|<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
r<>r<>r<>rrC) r r!rxrr|<00>zipr\r$r ) rrqr!ruryr:r<>rrs r<00>getz Model.gets<><00><00><17>u<EFBFBD>|<7C>|<7C>~<7E>~<7E>&<26>&<26><06>(<28>D<EFBFBD>(<28>1<>1<>5<EFBFBD>1<>1<> <09> <0C><1B>y<EFBFBD> <0C> <0C><17> <0C> <0C> <0C><05>
<14>|<7C>|<7C>E<EFBFBD>6<EFBFBD>*<2A>*<2A>1<EFBFBD>-<2D><04><10><03><1E>t<EFBFBD>U<EFBFBD>4<EFBFBD>:<3A>?<3F>?<3F>+<<3C>+<<3C>%=<3D>%=<3D>><3E>><3E> <1E> <1E>K<EFBFBD>E<EFBFBD>4<EFBFBD><1D>C<EFBFBD><04>I<EFBFBD>I<EFBFBD><12>z<EFBFBD>z<EFBFBD>S<EFBFBD>z<EFBFBD>z<EFBFBD>r)rZr*r[rr\r rrr?)rrm)rqr rr*r)ryr*r!rzrr )rr)r<>r rr)rqr rr)r:r<>rr<>)rr<>)rqr rr<>)rqr rr )r@rArBrr-r0rprxr|r<>r<>r<>r<>r<>rjr<>r<>rCrrrrVs1<00><00><00><00><00><00><0F><0F><0F><0F>2<>2<>2<>2<><19><19><19><19><1F><1F><1F><1F> <19> <19> <19> <19>#<23>#<23>#<23>#<23>#<23>& <1C> <1C> <1C> <1C>*<2A>*<2A>*<2A>*<2A>:$<24>$<24>$<24>$<24>$*<2A>*<2A>*<2A>*<2A>8<14><14><14><14>0<18><18><18><18><18><18><18><18>8<1A><1A><1A><1A><1A>rr<00>__main__N)<14>
__future__r<00>pathlibr<00>sqlite3rr<00>typingrrr r
r r <00>__all__r rrNrr@rCrr<00><module>r<>sl<00><01>"<22>"<22>"<22>"<22>"<22>"<22><18><18><18><18><18><18><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02> <02><07>$"<22>$"<22>$"<22>$"<22>$"<22>$"<22>$"<22>$"<22>N<12><12><12><12><12><12><12><12>
!<21>
!<21>
!<21>
!<21>
!<21>
!<21>
!<21>
!<21>[<1A>[<1A>[<1A>[<1A>[<1A>[<1A>[<1A>[<1A>| <0C>z<EFBFBD><19><19><08>D<EFBFBD><1A>r