first commit

This commit is contained in:
2026-10-11 10:00:59 +01:00
commit 08f5e6e36d
3624 changed files with 172 additions and 0 deletions
+121
View File
@@ -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)