plugins
Discovers and loads third-party Optiland plugins via entry points.
A plugin package declares one or more of the optiland.surfaces,
optiland.materials, or optiland.analyses entry-point groups in its
own pyproject.toml and exposes a zero-argument callable that registers
itself against the relevant Optiland registry – typically
GeometryFactory.register for a new surface geometry, or
MaterialRegistry.register/register_file for a glass catalog. This
module does not define new registration APIs: it only makes the existing
register() calls (added by the prior SOLID pass) discoverable from
outside the package, without requiring a source edit to Optiland itself.
Loading is lazy and memoized per group – each group’s entry points are resolved and invoked at most once per process, triggered by the first factory access rather than at import time, so installing Optiland with no plugins present pays no cost.
Functions
|
Load and invoke every entry point registered under group, once. |