From d4c593208a074d180ff7245fcfc9ea2530ff6c56 Mon Sep 17 00:00:00 2001 From: Richard Bronkhorst Date: Fri, 9 Jun 2023 13:19:47 +0200 Subject: [PATCH] First setup of the store --- base.py | 13 ------------- command_line.py | 2 +- commander.py | 20 ++++++++++---------- models/__init__.py | 0 models/base.py | 18 ++++++++++++++++++ models/sector.py | 14 +++----------- models/setting.py | 17 +++++------------ models/system.py | 12 +++--------- models/waypoint.py | 13 +++---------- store.py | 12 ++++++++---- 10 files changed, 51 insertions(+), 70 deletions(-) delete mode 100644 base.py create mode 100644 models/__init__.py create mode 100644 models/base.py diff --git a/base.py b/base.py deleted file mode 100644 index 8e36c84..0000000 --- a/base.py +++ /dev/null @@ -1,13 +0,0 @@ -from sqlalchemy import create_engine -from sqlalchemy.ext.declarative import declarative_base -from sqlalchemy.orm import sessionmaker - -def get_session(fil): - fil = 'data/store.db' - - engine = create_engine('sqlite:///' + fil) - - Session = sessionmaker(bind=engine) - return engine, Session - -Base = declarative_base() diff --git a/command_line.py b/command_line.py index 939205a..75903fe 100644 --- a/command_line.py +++ b/command_line.py @@ -28,7 +28,7 @@ class CommandLine: self.stopping = True def prompt(self): - return '> hh' + return '> ' def handle_not_found(self, c, args): print(f'command not found; {c}') diff --git a/commander.py b/commander.py index fd942cc..d6bd555 100644 --- a/commander.py +++ b/commander.py @@ -1,16 +1,16 @@ -#!/usr/bin/env python3 -import logging -import argparse from store import Store -import importlib -import sys from command_line import CommandLine +import argparse class Commander(CommandLine): + def __init__(self, store_dir): + self.store_dir = store_dir + self.store = Store(store_dir) + super().__init__() + def do_foo(self): - store_file = 'data/store.db' - s = Store(store_file) - s.foo() - + self.store.foo() -Commander().run() +def main(args): + args = parser.parse_args() + main(args) diff --git a/models/__init__.py b/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/models/base.py b/models/base.py new file mode 100644 index 0000000..6a306e4 --- /dev/null +++ b/models/base.py @@ -0,0 +1,18 @@ +class Base: + symbol: str + + def __init__(self, symbol, store): + self.symbol = symbol + self.store = store + + def path(self): + raise NotImplementedError('path') + + def ext(self): + raise NotImplementedError('extension') + + def type(self): + return self.__class__.__name__ + + def __str__(self): + return f'{self.symbol}.{self.ext()}' diff --git a/models/sector.py b/models/sector.py index 7281f70..4b40969 100644 --- a/models/sector.py +++ b/models/sector.py @@ -1,13 +1,5 @@ -from sqlalchemy import Column, String, Integer, Date - -from base import Base - +from .base import Base class Sector(Base): - __tablename__ = 'sectors' - - id = Column(Integer, primary_key=True) - symbol = Column(String) - magic = Column(Integer) - def __init__(self, symbol): - self.symbol = symbol + def ext(self): + return 'sct' diff --git a/models/setting.py b/models/setting.py index a0cb089..cf57116 100644 --- a/models/setting.py +++ b/models/setting.py @@ -1,15 +1,8 @@ -from sqlalchemy import Column, String, Integer, Date - -from base import Base +from .base import Base class Setting(Base): - __tablename__ = 'settings' - - id = Column(Integer, primary_key=True) - name = Column(String) - value = Column(String) - - def __init__(self, name, value): - self.name = name - self.value = value + name: str + value: str + def ext(self): + return 'set' diff --git a/models/system.py b/models/system.py index a039981..d15db70 100644 --- a/models/system.py +++ b/models/system.py @@ -1,13 +1,7 @@ -from sqlalchemy import Column, String, Integer, Date -from base import Base +from .base import Base class System(Base): - __tablename__ = 'systems' - - id = Column(Integer, primary_key=True) - symbol = Column(String) - - def __init__(self, symbol): - self.symbol = symbol + def ext(self): + return 'stm' diff --git a/models/waypoint.py b/models/waypoint.py index 811a714..13dc849 100644 --- a/models/waypoint.py +++ b/models/waypoint.py @@ -1,13 +1,6 @@ -from sqlalchemy import Column, String, Integer, Date - -from base import Base +from .base import Base class Waypoint(Base): - __tablename__ = 'waypoints' - - id = Column(Integer, primary_key=True) - symbol = Column(String) - - def __init__(self, symbol): - self.symbol = symbol + def ext(self): + return 'way' diff --git a/store.py b/store.py index bdd9b61..72bdbe3 100644 --- a/store.py +++ b/store.py @@ -1,10 +1,14 @@ -from base import get_session, Base +from models.base import Base +from models.waypoint import Waypoint from models.sector import Sector from models.system import System +from models.setting import Setting + class Store: def __init__(self, fil): - self.engine, self.session = get_session(fil) - Base.metadata.create_all(self.engine) + pass def foo(self): - print('goo') + w = Waypoint('jdjdj', self) + print(w.__dict__) +