From de6e3bd891f7c76c7b1f7f541f743b44cde209db Mon Sep 17 00:00:00 2001 From: Matthew Badger Date: Sun, 30 Aug 2015 18:02:39 +0200 Subject: [PATCH] Corrected restructuring errors, database path Errors resulting from restructing have been fixed. In addition, sqlalchemy.url has been removed from the config file. This now uses the db_file config setting, and creates the sqlite db as required using the absolute path of the doll_db folder. --- .gitignore | 6 ++++-- doll/__init__.py | 2 +- doll/db_input_parser/__init__.py | 4 ++-- doll/db_input_parser/add_database_types.py | 6 ++++-- doll/db_input_parser/parse_dictionary.py | 3 ++- doll/db_input_parser/parse_inflections.py | 3 ++- doll/doll_db/__init__.py | 18 ++++++++++++------ doll/doll_db/config.py | 3 +-- doll/doll_db/model.py | 6 ++++-- requirements.txt | 1 + 10 files changed, 33 insertions(+), 19 deletions(-) create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore index 3594473..fd15244 100644 --- a/.gitignore +++ b/.gitignore @@ -130,7 +130,6 @@ publish/ *.publishproj # NuGet Packages Directory -## TODO: If you have NuGet Package Restore enabled, uncomment the next line #packages/ # Windows Azure Build Output @@ -219,4 +218,7 @@ pip-log.txt .idea/ __pycache__ *.pyc -*.pyo \ No newline at end of file +*.pyo + +# Database files +*.db diff --git a/doll/__init__.py b/doll/__init__.py index dd0ae23..f762ed8 100644 --- a/doll/__init__.py +++ b/doll/__init__.py @@ -1 +1 @@ -__author__ = 'Matthew' +__author__ = 'Matthew Badger' diff --git a/doll/db_input_parser/__init__.py b/doll/db_input_parser/__init__.py index 3477e53..d04b185 100644 --- a/doll/db_input_parser/__init__.py +++ b/doll/db_input_parser/__init__.py @@ -2,8 +2,8 @@ import os -from db_input_parser.add_database_types import create_type_contents -from db_input_parser.parse_dictionary import parse_dict_file +from doll.db_input_parser.add_database_types import create_type_contents +from doll.db_input_parser.parse_dictionary import parse_dict_file from doll.db_input_parser.parse_inflections import parse_inflect_file diff --git a/doll/db_input_parser/add_database_types.py b/doll/db_input_parser/add_database_types.py index d44529c..24faa07 100644 --- a/doll/db_input_parser/add_database_types.py +++ b/doll/db_input_parser/add_database_types.py @@ -5,8 +5,8 @@ __author__ = 'Matthew Badger' -from doll.doll_db import * - +from doll.doll_db import Connection +from doll.doll_db.model import * # Add the basic database types def create_type_contents(): @@ -188,4 +188,6 @@ def create_type_contents(): Connection.session.add(Language(code='E', name='English', description='English translations from Words')) + Connection.create_all() + Connection.session.commit() diff --git a/doll/db_input_parser/parse_dictionary.py b/doll/db_input_parser/parse_dictionary.py index 4bc189d..a3f45fe 100644 --- a/doll/db_input_parser/parse_dictionary.py +++ b/doll/db_input_parser/parse_dictionary.py @@ -1,6 +1,7 @@ __author__ = 'Matthew Badger' -from doll.doll_db import * +from doll.doll_db import Connection +from doll.doll_db.model import * def parse_dict_file(dict_file, commit_changes=False): diff --git a/doll/db_input_parser/parse_inflections.py b/doll/db_input_parser/parse_inflections.py index c215bb4..3509052 100644 --- a/doll/db_input_parser/parse_inflections.py +++ b/doll/db_input_parser/parse_inflections.py @@ -1,6 +1,7 @@ __author__ = 'Matthew Badger' -from doll.doll_db import * +from doll.doll_db import Connection +from doll.doll_db.model import * """Parses the inflections input file. diff --git a/doll/doll_db/__init__.py b/doll/doll_db/__init__.py index 371088e..ae22918 100644 --- a/doll/doll_db/__init__.py +++ b/doll/doll_db/__init__.py @@ -1,12 +1,12 @@ __author__ = 'Matthew Badger' + +from os.path import dirname from sqlalchemy import engine_from_config from sqlalchemy.orm import sessionmaker -from sqlalchemy.ext.declarative import declarative_base from doll.doll_db.config import config - -Base = declarative_base() +from doll.doll_db.model import * '''Connection class @@ -17,11 +17,17 @@ # Connects to the database class Connection: - __engine = engine_from_config(config, echo=False) + config = config - Base.metadata.create_all(__engine) + config['sqlalchemy.url'] = 'sqlite:///' + dirname(__file__) + '/doll.db' + + __engine = engine_from_config(config, echo=False) __Session = sessionmaker() __Session.configure(bind=__engine) - session = __Session() \ No newline at end of file + session = __Session() + + @staticmethod + def create_all(): + Base.metadata.create_all(Connection.__engine) \ No newline at end of file diff --git a/doll/doll_db/config.py b/doll/doll_db/config.py index 74fda86..d3605bf 100644 --- a/doll/doll_db/config.py +++ b/doll/doll_db/config.py @@ -1,6 +1,5 @@ config = { - 'db_file': 'doll_db/doll.db', - 'sqlalchemy.url': 'sqlite:///doll_db/doll.db', + 'db_file': 'doll.db', 'sqlalchemy.pool_recycle': '50', 'sqlalchemy.echo': 'false' } \ No newline at end of file diff --git a/doll/doll_db/model.py b/doll/doll_db/model.py index 07f5356..086cf7d 100644 --- a/doll/doll_db/model.py +++ b/doll/doll_db/model.py @@ -25,9 +25,11 @@ from sqlalchemy import Column, Integer, String, ForeignKey, Boolean, Unicode from sqlalchemy.orm import relationship, backref -from sqlalchemy.ext.declarative import declared_attr +from sqlalchemy.ext.declarative import declarative_base, declared_attr + + +Base = declarative_base() -from doll.doll_db import Base """Basic Type Classes diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..2554f80 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +sqlalchemy==1.0.8 \ No newline at end of file