initial commit
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# Coded by [email protected]
|
||||
|
||||
# Import modules
|
||||
from os import path
|
||||
from threading import Lock
|
||||
from sqlite3 import connect
|
||||
# Import packages
|
||||
from core.paths import DATABASE_DIR
|
||||
|
||||
|
||||
class DatabaseManager(object):
|
||||
""" Database manager """
|
||||
def __init__(self, db_file):
|
||||
# Check if path exists
|
||||
db_location = path.join(DATABASE_DIR, db_file)
|
||||
assert path.exists(db_location), f"Failed connect to database {db_file}"
|
||||
# Connect to database
|
||||
self.connection = connect(
|
||||
db_location,
|
||||
check_same_thread=False
|
||||
)
|
||||
# Create lock and cursor
|
||||
self.lock = Lock()
|
||||
self.cursor = self.connection.cursor()
|
||||
|
||||
def execute(self, sql: str, values: list = [], commit_changes: bool = False) -> list:
|
||||
""" Execute sql commands """
|
||||
if commit_changes is True:
|
||||
self.lock.acquire(commit_changes)
|
||||
self.cursor.execute(sql, values)
|
||||
self.connection.commit()
|
||||
self.lock.release()
|
||||
return []
|
||||
else:
|
||||
self.cursor.execute(sql, values)
|
||||
return self.cursor.fetchall()
|
||||
Reference in New Issue
Block a user