| 369 | self.impls.clear() |
| 370 | |
| 371 | def load(self, name: str) -> Any: |
| 372 | if name in self.impls: |
| 373 | return self.impls[name]() |
| 374 | |
| 375 | if self.auto_fn: |
| 376 | loader = self.auto_fn(name) |
| 377 | if loader: |
| 378 | self.impls[name] = loader |
| 379 | return loader() |
| 380 | |
| 381 | for impl in compat.importlib_metadata_get(self.group): |
| 382 | if impl.name == name: |
| 383 | self.impls[name] = impl.load |
| 384 | return impl.load() |
| 385 | |
| 386 | raise exc.NoSuchModuleError( |
| 387 | "Can't load plugin: %s:%s" % (self.group, name) |
| 388 | ) |
| 389 | |
| 390 | def register(self, name: str, modulepath: str, objname: str) -> None: |
| 391 | def load(): |