]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- use our new Cls.memoized_name._reset(self) method in place of all those __dict__...
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 23 Sep 2012 17:09:43 +0000 (13:09 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 23 Sep 2012 17:09:43 +0000 (13:09 -0400)
remove reset_memoized

lib/sqlalchemy/orm/state.py
lib/sqlalchemy/sql/expression.py
lib/sqlalchemy/sql/util.py
lib/sqlalchemy/util/__init__.py
lib/sqlalchemy/util/langhelpers.py
test/lib/profiles.txt

index 0f60c6712c786e2e3963ba219171b243c37677d9..9ef27f0d4f8f1e96566841c31e3e14171d1c32fe 100644 (file)
@@ -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):
index f00926e4d65bd7a9890ae9401ea3e3b19d2bdec0..63b1a4037d0acb5c4047558d9b699d8ed9456667 100644 (file)
@@ -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
index 35761def16e5a2a4bca8085fc3a53cf0f688e5f2..70ea4c751a7e4f6c45e0a1ff86ab81d7356d50bf 100644 (file)
@@ -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
 
index f476bf953fe3a1859f1c3abced9228a058930d08..7d012ff60dc4d3404b46df10089cfb06cb76beef 100644 (file)
@@ -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,\
index 7fe5d3e82923afdf6c64b6deb000cc0cd3d59516..e560b871abaa3a04b13164da287fbc552a204764 100644 (file)
@@ -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."""
index d58d2ac381e22003159dfa6be85e70071715f765..bcd30785463a4d78dc7cc59e95be7999b9af77aa 100644 (file)
@@ -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