37 def __getattr__(self, name):
38
41
42
43 retval = None
44
45 if name == "__all__":
46 retval = cfgDb.keys()
47 elif name == "__spec__":
48 import importlib
49
50 retval = importlib.machinery.ModuleSpec(
51 name=__configurables_module_fullname__,
52 loader=self.__loader__,
53 )
54 elif name == "__package__":
55 retval = self.__name__
56 elif name == "__path__":
57 raise AttributeError("'module' object has no attribute '__path__'")
58 elif name in cfgDb.keys():
59 retval = confDbGetConfigurable(name)
60 elif name in aliases:
61 retval = aliases[name]
62 elif self.ignoreMissingConfigurables:
63 import logging
64
65 logging.getLogger(__configurables_module_fullname__).warning(
66 "Configurable class %s not in database", name
67 )
68 else:
69
70
71 raise AttributeError(
72 "module '%s' does not have attribute '%s'"
73 % (__configurables_module_fullname__, name)
74 )
75 return retval
76
77
78