This commit is contained in:
Lance Edgar 2012-04-10 14:21:41 -05:00
commit 17f2dfe1d1
4 changed files with 36 additions and 32 deletions

View file

@ -33,7 +33,7 @@ import sqlalchemy.exc
from sqlalchemy import MetaData from sqlalchemy import MetaData
# from sqlalchemy.orm import clear_mappers # from sqlalchemy.orm import clear_mappers
import migrate.versioning.api # import migrate.versioning.api
# from migrate.versioning.schema import ControlledSchema # from migrate.versioning.schema import ControlledSchema
# import rattail # import rattail
@ -50,11 +50,11 @@ from edbob.db import exceptions
from edbob.db import Session from edbob.db import Session
# from edbob.db.classes import ActiveExtension # from edbob.db.classes import ActiveExtension
from edbob.db.model import Base, ActiveExtension from edbob.db.model import Base, ActiveExtension
from edbob.db.util import ( # from edbob.db.util import (
get_database_version, # get_database_version,
get_repository_path, # get_repository_path,
get_repository_version, # get_repository_version,
) # )
from edbob.modules import import_module_path from edbob.modules import import_module_path
from edbob.util import entry_point_map, requires_impl from edbob.util import entry_point_map, requires_impl

View file

@ -29,8 +29,8 @@
import os.path import os.path
import sqlalchemy.exc import sqlalchemy.exc
import migrate.versioning.api # import migrate.versioning.api
import migrate.exceptions # import migrate.exceptions
# import rattail # import rattail
# from rattail.db import exc as exceptions # from rattail.db import exc as exceptions
@ -62,29 +62,29 @@ from edbob.db.model import Base
# return True # return True
def get_database_version(engine=None, extension=None): # def get_database_version(engine=None, extension=None):
""" # """
Returns a SQLAlchemy-Migrate version number found in the database # Returns a SQLAlchemy-Migrate version number found in the database
represented by ``engine``. # represented by ``engine``.
If no engine is provided, :attr:`edbob.db.engine` is assumed. # If no engine is provided, :attr:`edbob.db.engine` is assumed.
If ``extension`` is provided, the version for its schema is returned; # If ``extension`` is provided, the version for its schema is returned;
otherwise the core schema is assumed. # otherwise the core schema is assumed.
""" # """
if engine is None: # if engine is None:
engine = edbob.db.engine # engine = edbob.db.engine
try: # try:
version = migrate.versioning.api.db_version( # version = migrate.versioning.api.db_version(
str(engine.url), get_repository_path(extension)) # str(engine.url), get_repository_path(extension))
except (sqlalchemy.exc.NoSuchTableError, # except (sqlalchemy.exc.NoSuchTableError,
migrate.exceptions.DatabaseNotControlledError): # migrate.exceptions.DatabaseNotControlledError):
raise exceptions.CoreSchemaNotInstalled(engine) # raise exceptions.CoreSchemaNotInstalled(engine)
return version # return version
def get_repository_path(extension=None): def get_repository_path(extension=None):
@ -102,14 +102,14 @@ def get_repository_path(extension=None):
return os.path.dirname(extension.schema.__file__) return os.path.dirname(extension.schema.__file__)
def get_repository_version(extension=None): # def get_repository_version(extension=None):
""" # """
Returns the version of the SQLAlchemy-Migrate repository for ``extension``. # Returns the version of the SQLAlchemy-Migrate repository for ``extension``.
If no extension is provided, ``edbob``'s core repository is assumed. # If no extension is provided, ``edbob``'s core repository is assumed.
""" # """
return migrate.versioning.api.version(get_repository_path(extension)) # return migrate.versioning.api.version(get_repository_path(extension))
def install_core_schema(engine=None): def install_core_schema(engine=None):

View file

@ -26,7 +26,10 @@
``edbob.pyramid.grids`` -- Grid Tables ``edbob.pyramid.grids`` -- Grid Tables
""" """
from collections import OrderedDict try:
from collections import OrderedDict
except ImportError:
from ordereddict import OrderedDict
from sqlalchemy.orm import Query from sqlalchemy.orm import Query
from sqlalchemy.orm.attributes import InstrumentedAttribute from sqlalchemy.orm.attributes import InstrumentedAttribute

View file

@ -83,6 +83,7 @@ if sys.version_info < (2, 7):
# package # low high # package # low high
'argparse', # 1.2.1 'argparse', # 1.2.1
'ordereddict', # 1.1
] ]