Remove deprecated defer_except
This commit is contained in:
@@ -4,6 +4,12 @@ Changelog
|
||||
Here you can see the full list of changes between each SQLAlchemy-Utils release.
|
||||
|
||||
|
||||
0.29.2 (2015-01-xx)
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- Removed deprecated defer_except (SQLAlchemy's own load_only should be used from now on)
|
||||
|
||||
|
||||
0.29.1 (2015-01-03)
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
@@ -15,7 +15,6 @@ from .functions import (
|
||||
create_database,
|
||||
create_mock_engine,
|
||||
database_exists,
|
||||
defer_except,
|
||||
dependent_objects,
|
||||
drop_database,
|
||||
escape_like,
|
||||
@@ -102,7 +101,6 @@ __all__ = (
|
||||
create_database,
|
||||
create_mock_engine,
|
||||
database_exists,
|
||||
defer_except,
|
||||
dependent_objects,
|
||||
drop_database,
|
||||
escape_like,
|
||||
|
@@ -1,4 +1,3 @@
|
||||
from .defer_except import defer_except
|
||||
from .mock import create_mock_engine, mock_engine
|
||||
from .render import render_expression, render_statement
|
||||
from .sort_query import (
|
||||
@@ -47,7 +46,6 @@ __all__ = (
|
||||
'create_database',
|
||||
'create_mock_engine',
|
||||
'database_exists',
|
||||
'defer_except',
|
||||
'dependent_objects',
|
||||
'drop_database',
|
||||
'escape_like',
|
||||
|
@@ -1,25 +0,0 @@
|
||||
from sqlalchemy import inspect
|
||||
from sqlalchemy.orm import defer
|
||||
from sqlalchemy.orm.properties import ColumnProperty
|
||||
|
||||
|
||||
def defer_except(query, columns):
|
||||
"""
|
||||
Deferred loads all columns in given query, except the ones given.
|
||||
|
||||
This function is very useful when working with models with myriad of
|
||||
columns and you want to deferred load many columns.
|
||||
|
||||
>>> from sqlalchemy_utils import defer_except
|
||||
>>> query = session.query(Article)
|
||||
>>> query = defer_except(Article, [Article.id, Article.name])
|
||||
|
||||
:param columns: columns not to deferred load
|
||||
"""
|
||||
model = query._entities[0].entity_zero.class_
|
||||
for property_ in inspect(model).attrs:
|
||||
if isinstance(property_, ColumnProperty):
|
||||
column = property_.columns[0]
|
||||
if column.name not in columns:
|
||||
query = query.options(defer(property_.key))
|
||||
return query
|
@@ -1,9 +0,0 @@
|
||||
from sqlalchemy_utils import defer_except
|
||||
from tests import TestCase
|
||||
|
||||
|
||||
class TestDeferExcept(TestCase):
|
||||
def test_supports_properties_as_strings(self):
|
||||
query = self.session.query(self.Article)
|
||||
query = defer_except(query, ['id'])
|
||||
assert str(query) == 'SELECT article.id AS article_id \nFROM article'
|
Reference in New Issue
Block a user