summaryrefslogtreecommitdiff
path: root/src/mailman/database/pending.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/database/pending.py')
-rw-r--r--src/mailman/database/pending.py8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/mailman/database/pending.py b/src/mailman/database/pending.py
index 9c2da9064..2a0e5d09e 100644
--- a/src/mailman/database/pending.py
+++ b/src/mailman/database/pending.py
@@ -40,6 +40,7 @@ from mailman.config import config
from mailman.database.model import Model
from mailman.interfaces.pending import (
IPendable, IPended, IPendedKeyValue, IPendings)
+from mailman.utilities.modules import call_name
@@ -145,11 +146,8 @@ class Pendings:
for keyvalue in store.find(PendedKeyValue,
PendedKeyValue.pended_id == pending.id):
if keyvalue.value is not None and '\1' in keyvalue.value:
- typename, value = keyvalue.value.split('\1', 1)
- package, dot, classname = typename.rpartition('.')
- __import__(package)
- module = sys.modules[package]
- pendable[keyvalue.key] = getattr(module, classname)(value)
+ type_name, value = keyvalue.value.split('\1', 1)
+ pendable[keyvalue.key] = call_name(type_name, value)
else:
pendable[keyvalue.key] = keyvalue.value
if expunge: