From eb890eb402fea95f8fbe66622d40ba8189cb2b45 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 13 Jul 2010 11:55:08 -0400 Subject: [PATCH] - pull out type() ahead of time to cut down on fn calls. Would replace this with set(dir(self)) but not sure if some class schemes may have issues with dir() (also for low numbers of args, not using the set() probably faster). --- lib/sqlalchemy/ext/declarative.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/sqlalchemy/ext/declarative.py b/lib/sqlalchemy/ext/declarative.py index ff0dc6bfc2..909fb5cbaf 100755 --- a/lib/sqlalchemy/ext/declarative.py +++ b/lib/sqlalchemy/ext/declarative.py @@ -1162,11 +1162,12 @@ def _declarative_constructor(self, **kwargs): attributes of the instance's class are allowed. These could be, for example, any mapped columns or relationships. """ + cls_ = type(self) for k in kwargs: - if not hasattr(type(self), k): + if not hasattr(cls_, k): raise TypeError( "%r is an invalid keyword argument for %s" % - (k, type(self).__name__)) + (k, cls_.__name__)) setattr(self, k, kwargs[k]) _declarative_constructor.__name__ = '__init__' -- 2.47.2