py.lib

Yohn Y. 2020-08-02 Parent:cab7fedf8432 Child:f3e62028e5d3

14:50ff84d0bc56 Go to Latest

py.lib/db/sqlite.py

* db/sqlite.py: Импортируем полезные классы для реакции на ошибки

History
1 # coding: utf-8
2 import sqlite3
3 from sqlite3 import Error, IntegrityError
5 class DB:
6 def __init__(self, db_file):
7 self._con = sqlite3.connect(db_file)
8 self._ex = self._con.execute
9 self.commit = self._con.commit
10 self.rollback = self._con.rollback
12 # DB PREP
13 self._ex("PRAGMA journal=WAL")
14 self.commit()
16 def __del__(self):
17 try:
18 self.rollback()
19 self._con.close()
20 except:
21 pass
23 def __call__(self, *a, **kwa):
24 cur = self._con.cursor()
25 cur.execute(*a, **kwa)
26 return cur
28 def cq(self, *a, **wa):
29 try:
30 res = self(*a, **wa)
31 self.commit()
32 return res
33 except Error as e:
34 self.rollback()
35 raise e