Improved plugin mechanism
Tasks:
-
Create pydantic
base models for different plugin entry point types (config/models/plugins.py
) -
Use Python package entry_points
with namenomad.plugin
to automatically load plugin entry points from plugin packages (config/models/config.py
) -
Load part of plugin metadata (version, urls) directly from the package ( config/models/config.py
) -
Add plugin entry points to the info API endpoint ( nomad/app/v1/routers/info.py
) -
Report activated plugins entry points in the "About" page under the correct category: parser, package, normalizer, etc. ( About.js
) -
Refactor Normalizer
class to have an interface that is more similar to parsers (normalizing/normalizer.py
+ normalizers + submodules). -
Add a new documentation page for the new mechanismAdded later