Rename functions to better cope with naming standards

This commit is contained in:
Konsta Vesterinen
2014-04-21 11:51:49 +03:00
parent c5918545e3
commit d541a77dc1
6 changed files with 48 additions and 43 deletions

View File

@@ -7,7 +7,7 @@ Here you can see the full list of changes between each SQLAlchemy-Utils release.
0.25.3 (2014-04-21)
^^^^^^^^^^^^^^^^^^^
- Added support for primary key aliases in primary_keys function
- Added support for primary key aliases in get_primary_keys function
- Added get_columns utility function

View File

@@ -4,12 +4,6 @@ Model helpers
.. module:: sqlalchemy_utils.functions
declarative_base
^^^^^^^^^^^^^^^^
.. autofunction:: declarative_base
escape_like
^^^^^^^^^^^
@@ -22,6 +16,18 @@ get_columns
.. autofunction:: get_columns
get_declarative_base
^^^^^^^^^^^^^^^^^^^^
.. autofunction:: get_declarative_base
get_primary_keys
^^^^^^^^^^^^^^^^
.. autofunction:: primary_keys
query_entities
^^^^^^^^^^^^^^
@@ -46,12 +52,6 @@ naturally_equivalent
.. autofunction:: naturally_equivalent
primary_keys
^^^^^^^^^^^^
.. autofunction:: primary_keys
sort_query
^^^^^^^^^^

View File

@@ -3,21 +3,22 @@ from .batch import batch_fetch, with_backrefs
from .decorators import generates
from .exceptions import ImproperlyConfigured
from .functions import (
create_database,
create_mock_engine,
database_exists,
defer_except,
drop_database,
escape_like,
get_columns,
get_declarative_base,
get_primary_keys,
identity,
primary_keys,
naturally_equivalent,
render_statement,
render_expression,
create_mock_engine,
mock_engine,
naturally_equivalent,
render_expression,
render_statement,
sort_query,
table_name,
database_exists,
create_database,
drop_database
)
from .listeners import (
coercion_listener,
@@ -76,12 +77,13 @@ __all__ = (
generates,
generic_relationship,
get_columns,
get_declarative_base,
get_primary_keys,
identity,
instrumented_list,
merge,
mock_engine,
naturally_equivalent,
primary_keys,
proxy_dict,
render_expression,
render_statement,

View File

@@ -12,14 +12,14 @@ from .database import (
non_indexed_foreign_keys,
)
from .orm import (
declarative_base,
get_columns,
get_declarative_base,
get_primary_keys,
getdotattr,
has_changes,
identity,
naturally_equivalent,
query_entities,
primary_keys,
table_name,
)
@@ -27,11 +27,12 @@ __all__ = (
'create_database',
'create_mock_engine',
'database_exists',
'declarative_base',
'defer_except',
'drop_database',
'escape_like',
'get_columns',
'get_declarative_base',
'get_primary_keys',
'getdotattr',
'has_changes',
'identity',
@@ -40,7 +41,6 @@ __all__ = (
'mock_engine',
'naturally_equivalent',
'non_indexed_foreign_keys',
'primary_keys',
'QuerySorterException',
'render_expression',
'render_statement',

View File

@@ -14,7 +14,7 @@ from sqlalchemy.orm.query import _ColumnEntity
from sqlalchemy.orm.util import AliasedInsp
def primary_keys(mixed):
def get_primary_keys(mixed):
"""
Return an OrderedDict of all primary keys for given Table object,
declarative class or declarative class instance.
@@ -24,23 +24,25 @@ def primary_keys(mixed):
::
primary_keys(User)
get_primary_keys(User)
primary_keys(User())
get_primary_keys(User())
primary_keys(User.__table__)
get_primary_keys(User.__table__)
primary_keys(User.__mapper__)
get_primary_keys(User.__mapper__)
primary_keys(sa.orm.aliased(User))
get_primary_keys(sa.orm.aliased(User))
primary_keys(sa.orm.alised(User.__table__))
get_primary_keys(sa.orm.alised(User.__table__))
.. versionchanged: 0.25.3
Made the function return an ordered dictionary instead of generator.
This change was made to support primary key aliases.
Renamed this function to 'get_primary_keys', formerly 'primary_keys'
.. seealso:: :func:`get_columns`
"""
columns = OrderedDict()
@@ -272,7 +274,7 @@ def get_expr_attr(expr, attr_name):
return getattr(expr, attr_name)
def declarative_base(model):
def get_declarative_base(model):
"""
Returns the declarative base for given model class.
@@ -281,7 +283,7 @@ def declarative_base(model):
for parent in model.__bases__:
try:
parent.metadata
return declarative_base(parent)
return get_declarative_base(parent)
except AttributeError:
pass
return model
@@ -398,7 +400,7 @@ def identity(obj_or_class):
"""
return tuple(
getattr(obj_or_class, column_key)
for column_key in primary_keys(obj_or_class).keys()
for column_key in get_primary_keys(obj_or_class).keys()
)

View File

@@ -3,11 +3,11 @@ try:
except ImportError:
from ordereddict import OrderedDict
import sqlalchemy as sa
from sqlalchemy_utils import primary_keys
from sqlalchemy_utils import get_primary_keys
from tests import TestCase
class TestPrimaryKeys(TestCase):
class TestGetPrimaryKeys(TestCase):
def create_models(self):
class Building(self.Base):
__tablename__ = 'building'
@@ -17,27 +17,28 @@ class TestPrimaryKeys(TestCase):
self.Building = Building
def test_table(self):
assert primary_keys(self.Building.__table__) == OrderedDict({
assert get_primary_keys(self.Building.__table__) == OrderedDict({
'_id': self.Building.__table__.c._id
})
def test_declarative_class(self):
assert primary_keys(self.Building) == OrderedDict({
assert get_primary_keys(self.Building) == OrderedDict({
'id': self.Building.__table__.c._id
})
def test_declarative_object(self):
assert primary_keys(self.Building()) == OrderedDict({
assert get_primary_keys(self.Building()) == OrderedDict({
'id': self.Building.__table__.c._id
})
def test_class_alias(self):
assert primary_keys(sa.orm.aliased(self.Building())) == OrderedDict({
alias = sa.orm.aliased(self.Building)
assert get_primary_keys(alias) == OrderedDict({
'id': self.Building.__table__.c._id
})
def test_table_alias(self):
alias = sa.orm.aliased(self.Building.__table__)
assert primary_keys(alias) == OrderedDict({
assert get_primary_keys(alias) == OrderedDict({
'_id': alias.c._id
})