Skip to content

Investigate lazy-data compliance in IMPROVER #479

Open
@MoseleyS

Description

@MoseleyS

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions