From 9325bf01a6dd5f1eae5f1566a1fa3dfe6822c783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Tue, 28 Jun 2016 15:15:38 +0200 Subject: [PATCH] Add a basic database class with an SQLAlchemy declarative scheme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Ĺ abata --- rida/db.py | 38 +++++++++++++------------------------- 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/rida/db.py b/rida/db.py index 0ee3d3f3..d52a6150 100644 --- a/rida/db.py +++ b/rida/db.py @@ -25,39 +25,27 @@ """Database handler functions.""" -from sqlalchemy import Column, Integer, String +from sqlalchemy import Column, Integer, String, create_engine +from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() -class Database(object): +class Session(object): """Class for handling database connections.""" - def __init__(self, conf): - """...""" - if not isinstance(conf, rida.config.Config): - raise TypeError("Database requires a configuration object.") - self._conf = conf - - def connect_db(): - # TODO: implement this - - def disconnect_db(): - # TODO: implement this - - def get_db(): - # TODO: Implement this + def __init__(self, rdburl=None): + """Initialize the database object.""" + if not isinstance(rdburl, str): + rdburl = "sqlite:///rida.db" + engine = create_engine(rdburl) + Session = sessionmaker(bind=engine) + self._session = Session() @property - def conf(): - """Database configuration.""" - return self._conf - - @conf.setter - def conf(o): - if not isinstance(conf, rida.config.Config): - raise TypeError("Invalid data passed for conf") - self._conf = o + def session(self): + """Database session object.""" + return self._session class Module(Base): __tablename__ = "modules"