Changeset 1171:9fdc5c7f22e7
- Timestamp:
- 05/19/08 22:59:57 (22 months ago)
- Author:
- Ronny Pfannschmidt <Ronny.Pfannschmidt@…>
- Branch:
- default
- Message:
-
got rid of the mess pida.core.plugins
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r1158
|
r1171
|
|
| 4 | 4 | |
| 5 | 5 | # PIDA Imports |
| 6 | | from pida.core.interfaces import IOptions, IEvents, ICommands, IActions, IFeatures |
| 7 | | from pida.core.plugins import Registry |
| 8 | 6 | from pida.core.events import EventsConfig |
| 9 | 7 | from pida.core.options import OptionsConfig |
-
|
r1165
|
r1171
|
|
| 1 | 1 | import os, imp, sys |
| 2 | 2 | |
| 3 | | from pida.core.interfaces import IService, IEditor, IPlugin |
| 4 | | from pida.core.plugins import Registry |
| 5 | 3 | from pida.core.service import Service |
| 6 | 4 | |
| … |
… |
|
| 111 | 109 | self._boss = boss |
| 112 | 110 | self._loader = ServiceLoader(self._boss) |
| 113 | | self._reg = Registry() |
| 114 | | self._plugin_objects = {} |
| | 111 | self._reg = {} |
| 115 | 112 | |
| 116 | 113 | def get_service(self, name): |
| 117 | | return self._reg.get_singleton(name) |
| | 114 | return self._reg[name] |
| 118 | 115 | |
| 119 | 116 | def get_services(self): |
| 120 | 117 | return sorted( |
| 121 | | self._reg.get_features(IService), |
| | 118 | self._reg.values(), |
| 122 | 119 | key=Service.sort_key) |
| 123 | 120 | |
| 124 | 121 | def get_plugins(self): |
| 125 | | return sorted( |
| 126 | | self._reg.get_features(IPlugin), |
| 127 | | key=Service.sort_key) |
| | 122 | services = self.get_services() |
| | 123 | return [s for s in services if not s.__module__.startswith('pida.services')] |
| 128 | 124 | |
| 129 | 125 | def get_services_not_plugins(self): |
| 130 | 126 | services = self.get_services() |
| 131 | | plugins = self.get_plugins() |
| 132 | | return [s for s in services if s not in plugins] |
| | 127 | return [s for s in services if s.__module__.startswith('pida.services')] |
| 133 | 128 | |
| 134 | 129 | def activate_services(self): |
| … |
… |
|
| 161 | 156 | plugin.stop_components() |
| 162 | 157 | plugin.stop() |
| 163 | | self._reg.unregister(self._plugin_objects[plugin_name]) |
| | 158 | del self._reg[plugin_name] |
| 164 | 159 | return plugin |
| 165 | 160 | else: |
| … |
… |
|
| 174 | 169 | |
| 175 | 170 | def _register_service(self, service): |
| 176 | | self._reg.register_plugin( |
| 177 | | instance=service, |
| 178 | | singletons=( |
| 179 | | service.get_name(), |
| 180 | | ), |
| 181 | | features=( |
| 182 | | IService, |
| 183 | | ) |
| 184 | | ) |
| 185 | | |
| 186 | | def _register_plugin(self, plugin): |
| 187 | | plugin_object = self._reg.register_plugin( |
| 188 | | instance=plugin, |
| 189 | | singletons=( |
| 190 | | plugin.get_name(), |
| 191 | | ), |
| 192 | | features=( |
| 193 | | IService, |
| 194 | | IPlugin, |
| 195 | | ) |
| 196 | | ) |
| 197 | | self._plugin_objects[plugin.get_name()] = plugin_object |
| | 171 | self._reg[service.get_name()] = service |
| | 172 | |
| | 173 | def _register_plugin(self, service): |
| | 174 | self._reg[service.get_name()] = service |
| 198 | 175 | |
| 199 | 176 | def _create_services(self): |
| … |
… |
|
| 239 | 216 | |
| 240 | 217 | def register_editor(self, service): |
| 241 | | self._reg.register_plugin( |
| 242 | | instance=service, |
| 243 | | singletons=( |
| 244 | | service.get_name(), |
| 245 | | IEditor, |
| 246 | | ), |
| 247 | | features=( |
| 248 | | IService, |
| 249 | | ) |
| 250 | | ) |
| | 218 | self._reg[service.get_name()] = service |
| 251 | 219 | |
| 252 | 220 | def stop(self): |