From ada761bf9a7922f83aab1a0b02211878c84f1bc2 Mon Sep 17 00:00:00 2001 From: Meleneth Date: Tue, 3 Jun 2025 16:05:51 -0700 Subject: [PATCH] Rearrange project layout and the database started working in there somewhere --- .gitignore | 2 ++ pyproject.toml | 31 +++++++++++++++++++ src/Application/__init__.py | 0 src/Database/Database.py | 19 ------------ src/Database/__init__.py | 0 src/Models/TravelDiary/__init__.py | 0 src/Models/__init__.py | 0 src/{Application => Pilgrim}/Application.py | 6 ++-- src/Pilgrim/Database.py | 21 +++++++++++++ .../TravelDiary => Pilgrim}/TravelDiary.py | 5 +-- src/Pilgrim/__init__.py | 6 ++++ src/Pilgrim/command.py | 6 ++++ src/main.py | 6 ---- 13 files changed, 71 insertions(+), 31 deletions(-) create mode 100644 .gitignore create mode 100644 pyproject.toml delete mode 100644 src/Application/__init__.py delete mode 100644 src/Database/Database.py delete mode 100644 src/Database/__init__.py delete mode 100644 src/Models/TravelDiary/__init__.py delete mode 100644 src/Models/__init__.py rename src/{Application => Pilgrim}/Application.py (53%) create mode 100644 src/Pilgrim/Database.py rename src/{Models/TravelDiary => Pilgrim}/TravelDiary.py (60%) create mode 100644 src/Pilgrim/__init__.py create mode 100644 src/Pilgrim/command.py delete mode 100644 src/main.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..08fdd16 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +database.db +__pycache__ diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..6f29a00 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,31 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + + +[project] +name = "Pilgrim" +version = "0.0.1" +authors = [ + { name="Gustavo Henrique Santos Souza de Miranda", email="gustavohssmiranda@gmail.com" } +] +description = "Pilgrim's Travel Log" +readme = "README.md" +requires-python = ">=3.10" +classifiers = [ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", +] +dependencies = [ + "sqlalchemy" +] +[template.plugins.default] +src-layout = true +[project.urls] +Homepage = "https://git.gustavomiranda.xyz/GHMiranda/Pilgrim" +Issues = "https://git.gustavomiranda.xyz/GHMiranda/Pilgrim" +[tool.hatch.build.targets.wheel] +packages = ["src/Pilgrim"] +[project.scripts] +pilgrim = "Pilgrim:main" diff --git a/src/Application/__init__.py b/src/Application/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/Database/Database.py b/src/Database/Database.py deleted file mode 100644 index a9b08c4..0000000 --- a/src/Database/Database.py +++ /dev/null @@ -1,19 +0,0 @@ -from sqlalchemy import create_engine -from sqlalchemy.ext.declarative import declarative_base -from sqlalchemy.orm import sessionmaker - -class Database: - def __init__(self): - self.engine = create_engine('sqlite:///database.db', echo=False,connect_args={"check_same_thread": False}) - self.Session = sessionmaker(bind=self.engine,autoflush=False,autocommit=False) - self.Base = declarative_base() - def create(self): - self.Base.metadata.create_all(self.engine) - def get_db(self): - db = self.Session() - try: - yield db - finally: - db.close() - - diff --git a/src/Database/__init__.py b/src/Database/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/Models/TravelDiary/__init__.py b/src/Models/TravelDiary/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/Models/__init__.py b/src/Models/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/Application/Application.py b/src/Pilgrim/Application.py similarity index 53% rename from src/Application/Application.py rename to src/Pilgrim/Application.py index cbdad0b..429798b 100644 --- a/src/Application/Application.py +++ b/src/Pilgrim/Application.py @@ -1,11 +1,9 @@ -from src.Database.Database import Database +from Pilgrim.Database import Database class Application: - database = Database() - def __init__(self): - pass + self.database = Database() def run(self): self.database.create() diff --git a/src/Pilgrim/Database.py b/src/Pilgrim/Database.py new file mode 100644 index 0000000..d28fdee --- /dev/null +++ b/src/Pilgrim/Database.py @@ -0,0 +1,21 @@ +from sqlalchemy import create_engine +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.orm import sessionmaker + +Base = declarative_base() + + +class Database: + def __init__(self): + self.engine = create_engine( + "sqlite:///database.db", + echo=False, + connect_args={"check_same_thread": False}, + ) + self.Session = sessionmaker(bind=self.engine, autoflush=False, autocommit=False) + + def create(self): + Base.metadata.create_all(self.engine) + + def get_db(self): + return self.Session() diff --git a/src/Models/TravelDiary/TravelDiary.py b/src/Pilgrim/TravelDiary.py similarity index 60% rename from src/Models/TravelDiary/TravelDiary.py rename to src/Pilgrim/TravelDiary.py index 3917bf1..ea03940 100644 --- a/src/Models/TravelDiary/TravelDiary.py +++ b/src/Pilgrim/TravelDiary.py @@ -1,8 +1,9 @@ from sqlalchemy import Column, String, Integer -from src.Application.Application import Application +from Pilgrim import Application, Base -class TravelDiary(Application.database.Base): + +class TravelDiary(Base): __tablename__ = "TravelDiary" id = Column(Integer, primary_key=True) name = Column(String) diff --git a/src/Pilgrim/__init__.py b/src/Pilgrim/__init__.py new file mode 100644 index 0000000..201964a --- /dev/null +++ b/src/Pilgrim/__init__.py @@ -0,0 +1,6 @@ +from Pilgrim.Application import Application +from Pilgrim.command import main +from Pilgrim.Database import Database, Base +from Pilgrim.TravelDiary import TravelDiary + +__all__ = ["Application", "Database", "TravelDiary", "main", "Base"] diff --git a/src/Pilgrim/command.py b/src/Pilgrim/command.py new file mode 100644 index 0000000..d132d04 --- /dev/null +++ b/src/Pilgrim/command.py @@ -0,0 +1,6 @@ +from Pilgrim import Application + + +def main(): + app = Application() + app.run() diff --git a/src/main.py b/src/main.py deleted file mode 100644 index 43d5d75..0000000 --- a/src/main.py +++ /dev/null @@ -1,6 +0,0 @@ -from src.Application.Application import Application - - -if __name__ == '__main__': - App = Application() - App.run()