mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Slight performance improvement by not doing some checking in production mode
These changes save a few hundred ms but every little bit helps. ticket 1023
This commit is contained in:
parent
1717d638fc
commit
b02b77f8d7
@ -74,7 +74,8 @@ class SetProxy(ReadOnly):
|
|||||||
if type(s) not in allowed:
|
if type(s) not in allowed:
|
||||||
raise TypeError('%r not in %r' % (type(s), allowed))
|
raise TypeError('%r not in %r' % (type(s), allowed))
|
||||||
self.__s = s
|
self.__s = s
|
||||||
lock(self)
|
if not is_production_mode(self):
|
||||||
|
lock(self)
|
||||||
|
|
||||||
def __len__(self):
|
def __len__(self):
|
||||||
"""
|
"""
|
||||||
@ -293,9 +294,11 @@ class Registrar(DictProxy):
|
|||||||
|
|
||||||
def __base_iter(self):
|
def __base_iter(self):
|
||||||
for (base, sub_d) in self.__allowed.iteritems():
|
for (base, sub_d) in self.__allowed.iteritems():
|
||||||
assert inspect.isclass(base)
|
if not is_production_mode(self):
|
||||||
|
assert inspect.isclass(base)
|
||||||
name = base.__name__
|
name = base.__name__
|
||||||
assert not hasattr(self, name)
|
if not is_production_mode(self):
|
||||||
|
assert not hasattr(self, name)
|
||||||
setattr(self, name, MagicDict(sub_d))
|
setattr(self, name, MagicDict(sub_d))
|
||||||
yield (name, base)
|
yield (name, base)
|
||||||
|
|
||||||
@ -308,7 +311,8 @@ class Registrar(DictProxy):
|
|||||||
|
|
||||||
:param klass: The plugin class to find bases for.
|
:param klass: The plugin class to find bases for.
|
||||||
"""
|
"""
|
||||||
assert inspect.isclass(klass)
|
if not is_production_mode(self):
|
||||||
|
assert inspect.isclass(klass)
|
||||||
found = False
|
found = False
|
||||||
for (base, sub_d) in self.__allowed.iteritems():
|
for (base, sub_d) in self.__allowed.iteritems():
|
||||||
if issubclass(klass, base):
|
if issubclass(klass, base):
|
||||||
@ -599,7 +603,8 @@ class API(DictProxy):
|
|||||||
self.module = str(p.klass.__module__)
|
self.module = str(p.klass.__module__)
|
||||||
self.plugin = '%s.%s' % (self.module, self.name)
|
self.plugin = '%s.%s' % (self.module, self.name)
|
||||||
self.bases = tuple(b.__name__ for b in p.bases)
|
self.bases = tuple(b.__name__ for b in p.bases)
|
||||||
lock(self)
|
if not is_production_mode(self):
|
||||||
|
lock(self)
|
||||||
|
|
||||||
plugins = {}
|
plugins = {}
|
||||||
def plugin_iter(base, subclasses):
|
def plugin_iter(base, subclasses):
|
||||||
@ -608,7 +613,8 @@ class API(DictProxy):
|
|||||||
if klass not in plugins:
|
if klass not in plugins:
|
||||||
plugins[klass] = PluginInstance(klass)
|
plugins[klass] = PluginInstance(klass)
|
||||||
p = plugins[klass]
|
p = plugins[klass]
|
||||||
assert base not in p.bases
|
if not is_production_mode(self):
|
||||||
|
assert base not in p.bases
|
||||||
p.bases.append(base)
|
p.bases.append(base)
|
||||||
yield p.instance
|
yield p.instance
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user