Trying to construct modelspace
This commit is contained in:
39
modelspace/ModelSpaceDatabase.py
Normal file
39
modelspace/ModelSpaceDatabase.py
Normal file
@@ -0,0 +1,39 @@
|
||||
import sqlite3 as sq
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
class ModelSpaceDatabase:
|
||||
def __init__(self, path):
|
||||
self.path = path
|
||||
self.con = sq.connect(Path(self.path) / "modelspace.db")
|
||||
self.con.autocommit = True
|
||||
self.cur = self.con.cursor()
|
||||
self.create(self.cur)
|
||||
|
||||
|
||||
@staticmethod
|
||||
def create(cur):
|
||||
cur.execute('CREATE TABLE IF NOT EXISTS files (uuid TEXT NOT NULL, file TEXT NOT NULL, PRIMARY KEY(uuid, file))')
|
||||
cur.execute('CREATE TABLE IF NOT EXISTS manual (uuid TEXT NOT NULL PRIMARY KEY)')
|
||||
cur.execute('CREATE TABLE IF NOT EXISTS deps (uuid TEXT NOT NULL PRIMARY KEY)')
|
||||
|
||||
def create_file(self, uuid, file): self.cur.execute('INSERT OR IGNORE INTO files (uuid, file) VALUES (?, ?)', (uuid, file))
|
||||
def delete_file(self, uuid, file): self.cur.execute('DELETE FROM files WHERE uuid = ? AND file = ?', (uuid, file))
|
||||
|
||||
def get_all_files(self): self.cur.execute('SELECT * FROM files'); return self.cur.fetchall()
|
||||
def get_files_by_uuid(self, uuid): self.cur.execute('SELECT file FROM files WHERE uuid = ?', (uuid,)); return self.cur.fetchall()
|
||||
def get_uuid_by_file(self, file): self.cur.execute('SELECT uuid FROM files WHERE file = ?', (file,)); return self.cur.fetchall()
|
||||
|
||||
def create_manual(self, uuid): self.cur.execute('INSERT OR IGNORE INTO manual (uuid) VALUES (?)', (uuid,))
|
||||
def delete_manual(self, uuid): self.cur.execute('DELETE FROM manual WHERE uuid = ?', (uuid,))
|
||||
def get_all_manuals(self): self.cur.execute('SELECT * FROM manual'); return self.cur.fetchall()
|
||||
|
||||
def create_deps(self, uuid): self.cur.execute('INSERT OR IGNORE INTO deps (uuid) VALUES (?)', (uuid,))
|
||||
def delete_deps(self, uuid): self.cur.execute('DELETE FROM deps WHERE uuid = ?', (uuid,))
|
||||
def get_all_deps(self): self.cur.execute('SELECT * FROM deps'); return self.cur.fetchall()
|
||||
|
||||
def get_files_count(self): self.cur.execute('SELECT COUNT(*) FROM files'); return self.cur.fetchone()[0]
|
||||
def get_manuals_count(self): self.cur.execute('SELECT COUNT(*) FROM manual'); return self.cur.fetchone()[0]
|
||||
def get_deps_count(self): self.cur.execute('SELECT COUNT(*) FROM deps'); return self.cur.fetchone()[0]
|
||||
|
||||
def clear_table(self, table_name): self.cur.execute(f'DELETE FROM {table_name}')
|
||||
Reference in New Issue
Block a user