Rename functions to better cope with naming standards
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
@@ -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
|
||||
^^^^^^^^^^
|
||||
|
||||
|
@@ -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,
|
||||
|
@@ -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',
|
||||
|
@@ -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()
|
||||
)
|
||||
|
||||
|
||||
|
@@ -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
|
||||
})
|
Reference in New Issue
Block a user