I think that for this case would be more clear if you use 'normal' code instead of a generator expression.

It would look something like:
```python
for key in sorted(self._msg_store.keys()):
    if key in self._new or key in self._dirty:
        yield self.get_message(*key)
```

But it may be just my opinion.