Remove deprecated defer_except

This commit is contained in:
Konsta Vesterinen
2015-01-04 22:15:11 +02:00
parent 0bb3da80fc
commit 2143490f92
5 changed files with 6 additions and 38 deletions

View File

@@ -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)
^^^^^^^^^^^^^^^^^^^

View File

@@ -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,

View File

@@ -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',

View File

@@ -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

View File

@@ -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'