I must confess I am now confused by the program flow. The message is regularised here in the ```__init__``` and then again in ```__getitem__```. I suspect that the boolean keyword arg means that this initial call does some preliminary work, then the second regularisation does the rest. Perhaps it would be better to drop the kwarg and split the regularise function into two separate calls e.g.
```python
def regularise(grib_message):
    regularise_the_first_pass(grib_message)
    regularise_the_rest(grib_message)
```
That way, the deferred code path can call the first here and the second in __getitem__, while the non-deferred path can just call both here.