One can associate a container to a Python class from the configuration file.

This commit is contained in:
sebd 2005-05-10 12:53:01 +00:00
parent 2ecf549503
commit cd19cfb67b
1 changed files with 8 additions and 1 deletions

View File

@ -71,6 +71,13 @@ class DbXmlDatabase(dataholders.DataHolder):
parent = self,
uriPathFragment = name,
)
configuration = environs.getVar("configuration")
pythonClass = configuration.getConfigString(
"""yep:module[@name="%s"]/yep:container[@name="%s"]/@pythonClass""" % (__init__.__module__, name),
None
)
if pythonClass:
item.__class__ = configuration.convertStringToPythonClass(pythonClass, )
return item, uriPathFragments[1:]
return super(DbXmlDatabase, self).walkToItem(uriPathFragments, command, instruction)
@ -101,7 +108,7 @@ def __init__():
)
DbXmlDatabase._manager = dbxml.XmlManager(DbXmlDatabase._environment, dbxml.DBXML_ADOPT_DBENV)
DbXmlDatabase._containers = {}
for name in environs.getVar("configuration").getConfigList("""yep:module[@name="%s"]/yep:container/@name""" % __init__.__module__):
for name in configuration.getConfigList("""yep:module[@name="%s"]/yep:container/@name""" % __init__.__module__):
try:
container = DbXmlDatabase._manager.openContainer(
name, 0