The plugin mechanism¶
This document discusses how plugins are integrated into earthkit-data.
Plugin as python packages using entry_points¶
A plugin can be added to earthkit-data by using the standard Python plugin mechanism based on entry_points.
This requires the plugin package to have a special section in its pyproject.toml file. During the installation of the package, the plugin registers itself thanks to the entry points in it configuration, making earthkit-data aware of the new capabilities. Users can then take advantage of the shared code through the enhanced from_source() etc. methods.
The following example shows how it can be done.
- Example:
Let us suppose our package is called earthkit-data-package-name and implements a
"sources"(note the plural form) plugin type . If it is apippackage usingsetuptoolswe need to add anentry_pointsblock topyproject.toml:entry-points."earthkit.data.sources".foo = "earthkit_data_package_name:FooClass" entry-points."earthkit.data.sources".bar = "earthkit_data_package_name:BarClass"
This block specifies that in the package the
FooClassclass implements the"foo"source, while theBarClassclass implements the"bar"source. In earthkit-data we will be able to use them as:from earthkit.data import from_source ds1 = from_source("foo", args1) ds2 = from_source("bar", args2)
See the individual documentation for each plugin type for detailed examples and the standard Python plugin documentation.