py.lib
2019-09-30
Parent:8dcee5f5df4f
py.lib/awNet/db/sqlite.py
. Убиваем ненужное
| awgur@0 | 1 # -*- coding: utf-8 -*- |
| awgur@0 | 2 # Dep |
| awgur@0 | 3 from sqlite3 import connect as _sqlite_connect |
| awgur@0 | 4 # Exceptions |
| awgur@0 | 5 from sqlite3 import Warning, Error, DatabaseError, IntegrityError, ProgrammingError |
| awgur@0 | 6 |
| awgur@0 | 7 # --- # PROCS # --- # |
| awgur@0 | 8 def GetDB(db_file): |
| awgur@0 | 9 def func(): |
| awgur@0 | 10 return DB(db_file) |
| awgur@0 | 11 return func |
| awgur@0 | 12 |
| awgur@0 | 13 # --- # CLASS # --- # |
| awgur@0 | 14 class DB: |
| awgur@0 | 15 def __init__(self, db_file): |
| awgur@0 | 16 self._con = None |
| awgur@0 | 17 self._con = _sqlite_connect(db_file) |
| awgur@0 | 18 self.q = self._con.execute |
| awgur@0 | 19 self.qm = self._con.executemany |
| awgur@0 | 20 self.commit = self._con.commit |
| awgur@0 | 21 self.rollback = self._con.rollback |
| awgur@0 | 22 |
| awgur@0 | 23 # DB PREP |
| awgur@0 | 24 self.cq("PRAGMA journal=WAL") |
| awgur@0 | 25 |
| awgur@1 | 26 def __call__(self, *a, **wa): |
| awgur@1 | 27 return self.q(*a, **wa) |
| awgur@0 | 28 |
| awgur@0 | 29 def __del__(self): |
| awgur@0 | 30 if self._con == None: return |
| awgur@0 | 31 try: |
| awgur@0 | 32 self.rollback() |
| awgur@0 | 33 self._con.close() |
| awgur@0 | 34 except Error: |
| awgur@0 | 35 pass |
| awgur@0 | 36 except Warning: |
| awgur@0 | 37 pass |
| awgur@0 | 38 |
| awgur@0 | 39 def cq(self, *a, **wa): |
| awgur@0 | 40 try: |
| awgur@0 | 41 res = self.q(*a, **wa) |
| awgur@0 | 42 self.commit() |
| awgur@0 | 43 return res |
| awgur@0 | 44 except Exception as e: |
| awgur@0 | 45 self.rollback() |
| awgur@0 | 46 raise e |
| awgur@0 | 47 |
| awgur@0 | 48 def cqm(self, *a, **wa): |
| awgur@0 | 49 try: |
| awgur@0 | 50 res = self.qm(*a, **wa) |
| awgur@0 | 51 self.commit() |
| awgur@0 | 52 return res |
| awgur@0 | 53 except Exception as e: |
| awgur@0 | 54 self.rollback() |
| awgur@0 | 55 raise e |