From: Mike Bayer Date: Tue, 13 Jul 2010 15:55:08 +0000 (-0400) Subject: - pull out type() ahead of time to cut down on fn calls. X-Git-Tag: rel_0_6_3~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb890eb402fea95f8fbe66622d40ba8189cb2b45;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - 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). --- 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__'