Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplify netcdf loading rules/actions #6316

Open
pp-mo opened this issue Feb 18, 2025 · 0 comments
Open

Simplify netcdf loading rules/actions #6316

pp-mo opened this issue Feb 18, 2025 · 0 comments

Comments

@pp-mo
Copy link
Member

pp-mo commented Feb 18, 2025

In the course of working on loading tolerance work for #5165 (comment) within the 3.12 sprint work, we have been reminded that the original work to replace Pyke rules with our own "custom rules engine" approach has effectively left a lot of inefficient and complex (non-functional) scaffolding in place

The netcdf loading "actions" code was written this way, basically, to maximise similarities with what went before, but it leaves considerable opportunities to simplify + improve.

(1) We (I!) wrote a lot of code designed to replicate the firing of the equivalent original logic rules (here for example), allowing us to debug the operation of the code and compare it to the original implementation, in case problems arose with loading some files (compared to older Iris versions).
In practice no such problems really happened, so this complex debugging/logging is pretty redundant (as it was in the original rules code, really).

(2) Likewise, the way the "facts" of the current loading case (per cube) are stored in a database is pretty cumbersome + obscure (notably here), and could be usefully streamlined.

So in both those areas, there's a big opportunity to simplify the code and improve maintainability, and probably efficiency too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

1 participant