diff options
-rw-r--r-- | lib/sqlalchemy/orm/state.py | 6 | ||||
-rw-r--r-- | lib/sqlalchemy/sql/expression.py | 8 | ||||
-rw-r--r-- | lib/sqlalchemy/sql/util.py | 4 | ||||
-rw-r--r-- | lib/sqlalchemy/util/__init__.py | 2 | ||||
-rw-r--r-- | lib/sqlalchemy/util/langhelpers.py | 3 | ||||
-rw-r--r-- | test/lib/profiles.txt | 16 |
6 files changed, 18 insertions, 21 deletions
diff --git a/lib/sqlalchemy/orm/state.py b/lib/sqlalchemy/orm/state.py index 0f60c6712..9ef27f0d4 100644 --- a/lib/sqlalchemy/orm/state.py +++ b/lib/sqlalchemy/orm/state.py @@ -325,12 +325,12 @@ class InstanceState(interfaces._InspectionAttr): self.committed_state.clear() - self.__dict__.pop('_pending_mutations', None) + InstanceState._pending_mutations._reset(self) # clear out 'parents' collection. not # entirely clear how we can best determine # which to remove, or not. - self.__dict__.pop('parents', None) + InstanceState.parents._reset(self) for key in self.manager: impl = self.manager[key].impl @@ -502,7 +502,7 @@ class InstanceState(interfaces._InspectionAttr): for state, dict_ in iter: state.committed_state.clear() - state.__dict__.pop('_pending_mutations', None) + InstanceState._pending_mutations._reset(state) callables = state.callables for key in list(callables): diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index f00926e4d..63b1a4037 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -1604,8 +1604,8 @@ class ClauseElement(Visitable): """ c = self.__class__.__new__(self.__class__) c.__dict__ = self.__dict__.copy() - c.__dict__.pop('_cloned_set', None) - c.__dict__.pop('comparator', None) + ClauseElement._cloned_set._reset(c) + ColumnElement.comparator._reset(c) # this is a marker that helps to "equate" clauses to each other # when a Select returns its list of FROM clauses. the cloning @@ -2410,7 +2410,7 @@ class ColumnCollection(util.OrderedProperties): # pop out memoized proxy_set as this # operation may very well be occurring # in a _make_proxy operation - value.__dict__.pop('proxy_set', None) + ColumnElement.proxy_set._reset(value) self._all_cols.add(value) self._data[key] = value @@ -3432,7 +3432,7 @@ class FunctionElement(Executable, ColumnElement, FromClause): def _copy_internals(self, clone=_clone, **kw): self.clause_expr = clone(self.clause_expr, **kw) self._reset_exported() - util.reset_memoized(self, 'clauses') + FunctionElement.clauses._reset(self) def select(self): """Produce a :func:`~.expression.select` construct diff --git a/lib/sqlalchemy/sql/util.py b/lib/sqlalchemy/sql/util.py index 35761def1..70ea4c751 100644 --- a/lib/sqlalchemy/sql/util.py +++ b/lib/sqlalchemy/sql/util.py @@ -420,7 +420,7 @@ class Annotated(object): element.c self.__dict__ = element.__dict__.copy() - self.__dict__.pop('comparator', None) + expression.ColumnElement.comparator._reset(self) self.__element = element self._annotations = values @@ -432,7 +432,7 @@ class Annotated(object): def _with_annotations(self, values): clone = self.__class__.__new__(self.__class__) clone.__dict__ = self.__dict__.copy() - clone.__dict__.pop('comparator', None) + expression.ColumnElement.comparator._reset(self) clone._annotations = values return clone diff --git a/lib/sqlalchemy/util/__init__.py b/lib/sqlalchemy/util/__init__.py index f476bf953..7d012ff60 100644 --- a/lib/sqlalchemy/util/__init__.py +++ b/lib/sqlalchemy/util/__init__.py @@ -22,7 +22,7 @@ from .langhelpers import iterate_attributes, class_hierarchy, \ getargspec_init, format_argspec_init, format_argspec_plus, \ get_func_kwargs, get_cls_kwargs, decorator, as_interface, \ memoized_property, memoized_instancemethod, \ - reset_memoized, group_expirable_memoized_property, importlater, \ + group_expirable_memoized_property, importlater, \ monkeypatch_proxied_specials, asbool, bool_or_str, coerce_kw_type,\ duck_type_collection, assert_arg_type, symbol, dictlike_iteritems,\ classproperty, set_creation_order, warn_exception, warn, NoneType,\ diff --git a/lib/sqlalchemy/util/langhelpers.py b/lib/sqlalchemy/util/langhelpers.py index 7fe5d3e82..e560b871a 100644 --- a/lib/sqlalchemy/util/langhelpers.py +++ b/lib/sqlalchemy/util/langhelpers.py @@ -567,9 +567,6 @@ class memoized_instancemethod(object): oneshot.__doc__ = self.__doc__ return oneshot -def reset_memoized(instance, name): - instance.__dict__.pop(name, None) - class group_expirable_memoized_property(object): """A family of @memoized_properties that can be expired in tandem.""" diff --git a/test/lib/profiles.txt b/test/lib/profiles.txt index d58d2ac38..bcd307854 100644 --- a/test/lib/profiles.txt +++ b/test/lib/profiles.txt @@ -101,14 +101,14 @@ test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_sqlite_pysqlite_nocext # TEST: test.aaa_profiling.test_orm.MergeTest.test_merge_no_load -test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.5_sqlite_pysqlite_nocextensions 106,20 -test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.6_sqlite_pysqlite_nocextensions 98,16 -test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.7_mysql_mysqldb_cextensions 98,16 -test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.7_mysql_mysqldb_nocextensions 98,16 -test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.7_postgresql_psycopg2_cextensions 98,16 -test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.7_postgresql_psycopg2_nocextensions 98,16 -test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.7_sqlite_pysqlite_cextensions 98,16 -test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.7_sqlite_pysqlite_nocextensions 98,16 +test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.5_sqlite_pysqlite_nocextensions 108,22 +test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.6_sqlite_pysqlite_nocextensions 100,18 +test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.7_mysql_mysqldb_cextensions 100,18 +test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.7_mysql_mysqldb_nocextensions 100,18 +test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.7_postgresql_psycopg2_cextensions 100,18 +test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.7_postgresql_psycopg2_nocextensions 100,18 +test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.7_sqlite_pysqlite_cextensions 100,18 +test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 2.7_sqlite_pysqlite_nocextensions 100,18 # TEST: test.aaa_profiling.test_pool.QueuePoolTest.test_first_connect |