Fix deleting non-existent stanza plugins.
This commit is contained in:
parent
6c57bb0553
commit
a4abdf9fa6
@ -488,7 +488,7 @@ class ElementBase(object):
|
|||||||
"""
|
"""
|
||||||
return self.init_plugin(attrib, lang)
|
return self.init_plugin(attrib, lang)
|
||||||
|
|
||||||
def _get_plugin(self, name, lang=None):
|
def _get_plugin(self, name, lang=None, check=False):
|
||||||
if lang is None:
|
if lang is None:
|
||||||
lang = self.get_lang()
|
lang = self.get_lang()
|
||||||
|
|
||||||
@ -501,12 +501,12 @@ class ElementBase(object):
|
|||||||
if (name, None) in self.plugins:
|
if (name, None) in self.plugins:
|
||||||
return self.plugins[(name, None)]
|
return self.plugins[(name, None)]
|
||||||
else:
|
else:
|
||||||
return self.init_plugin(name, lang)
|
return None if check else self.init_plugin(name, lang)
|
||||||
else:
|
else:
|
||||||
if (name, lang) in self.plugins:
|
if (name, lang) in self.plugins:
|
||||||
return self.plugins[(name, lang)]
|
return self.plugins[(name, lang)]
|
||||||
else:
|
else:
|
||||||
return self.init_plugin(name, lang)
|
return None if check else self.init_plugin(name, lang)
|
||||||
|
|
||||||
def init_plugin(self, attrib, lang=None, existing_xml=None, reuse=True):
|
def init_plugin(self, attrib, lang=None, existing_xml=None, reuse=True):
|
||||||
"""Enable and initialize a stanza plugin.
|
"""Enable and initialize a stanza plugin.
|
||||||
@ -862,7 +862,7 @@ class ElementBase(object):
|
|||||||
else:
|
else:
|
||||||
self._del_attr(attrib)
|
self._del_attr(attrib)
|
||||||
elif attrib in self.plugin_attrib_map:
|
elif attrib in self.plugin_attrib_map:
|
||||||
plugin = self._get_plugin(attrib, lang)
|
plugin = self._get_plugin(attrib, lang, check=True)
|
||||||
if not plugin:
|
if not plugin:
|
||||||
return self
|
return self
|
||||||
if plugin.is_extension:
|
if plugin.is_extension:
|
||||||
|
Loading…
Reference in New Issue
Block a user