Description
As an Improver developer I want to know which IMPROVER plugins are not lazy so that I can modify them and later take advantage of exciting new technologies such as Dask.
Related issues: #215.
Ideally, each plug-in should work in a lazy manner, i.e., no computation should be triggered and the dask graph should be constructed. The actual computation should be triggered at the point of saving the data to disk.
In order to get a rough estimate of how things look like with respect to being ready for Iris 2 and Dask, Tomek grepped through the code base for direct access to the cube .data
attribute, which prevents the data from staying lazy. Currently, direct access to the cube .data attribute occurs in over 1/3 of IMPROVER files under lib (excluding unit tests) and 1/2 of unit tests (but that 1/3 of files accounts for almost 2/3 of lines of code).
Acceptance criteria:
- Document where
cube.data
is accessed directly. - Open follow-on tickets to modify the non-lazy code.