first commit
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
import sqlite3
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
class sql_database:
|
||||
def __init__ (self, db_name="database.db"):
|
||||
self.db_name = db_name
|
||||
|
||||
def connect(self):
|
||||
"""Create a database connection."""
|
||||
return sqlite3.connect(self.db_name)
|
||||
|
||||
def create_table(self):
|
||||
"""Create table and structure."""
|
||||
conn = self.connect()
|
||||
|
||||
conn.execute("""
|
||||
CREATE TABLE IF NOT EXISTS image (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
file_name TEXT NOT NULL,
|
||||
tag TEXT NOT NULL
|
||||
)
|
||||
""")
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
def add_entry(self, entry_file_name, entry_tag):
|
||||
"""Add new entry"""
|
||||
conn = self.connect()
|
||||
|
||||
try:
|
||||
conn.execute("""
|
||||
INSERT INTO image (file_name, tag)
|
||||
VALUES (?,?)
|
||||
""",(entry_file_name, entry_tag))
|
||||
|
||||
conn.commit()
|
||||
|
||||
except sqlite3.IntegrityError as e:
|
||||
print(f"Database error: {e}")
|
||||
|
||||
finally: conn.close()
|
||||
|
||||
def get_all_entry(self):
|
||||
"""Get all entry."""
|
||||
conn = self.connect()
|
||||
|
||||
cursor = conn.execute("""
|
||||
SELECT id, file_name, tag
|
||||
FROM image
|
||||
""")
|
||||
|
||||
all_entry = cursor.fetchall()
|
||||
|
||||
conn.close()
|
||||
|
||||
return all_entry
|
||||
|
||||
def get_entry(self, entry_id):
|
||||
"""Get an existing entry"""
|
||||
conn = self.connect()
|
||||
|
||||
cursor = conn.execute("""
|
||||
SELECT id, file_name,tag
|
||||
FROM image
|
||||
WHERE id = ?
|
||||
""", (entry_id,))
|
||||
|
||||
entry = cursor.fetchone()
|
||||
|
||||
conn.close()
|
||||
|
||||
return entry
|
||||
|
||||
def update_entry(self, entry_id, entry_file_name, entry_tag):
|
||||
"""Update an existing entry"""
|
||||
conn = self.connect()
|
||||
|
||||
conn.execute("""
|
||||
UPDATE image
|
||||
SET file_name = ?, tag = ?
|
||||
WHERE id = ?
|
||||
""", (entry_file_name, entry_tag, entry_id))
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
def delete_entry(self, entry_id):
|
||||
"""Delete an entry"""
|
||||
conn = self.connect()
|
||||
conn.execute("""
|
||||
DELETE FROM image
|
||||
WHERE id = ?
|
||||
""", (entry_id,))
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
def test(self):
|
||||
print()
|
||||
|
||||
def scan_folder(db:sql_database, dataset_path):
|
||||
for folder in dataset_path.iterdir():
|
||||
|
||||
if not folder.is_dir():
|
||||
continue
|
||||
|
||||
tag = folder.name
|
||||
for file_path in folder.iterdir():
|
||||
db.add_entry(entry_file_name=str(file_path),
|
||||
entry_tag=tag)
|
||||
if __name__ == "__main__":
|
||||
grape_db = sql_database("grape.db")
|
||||
|
||||
grape_db.create_table()
|
||||
|
||||
dataset_path = Path("database/data")
|
||||
|
||||
scan_folder(grape_db, dataset_path)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user