In all the cases that I've hit so far, I've managed to move some offending section of code into its own module that both members of the circular import can import from instead. Not sure if that's workable here or not. Incidentally, that's basically the fix I implemented with the `Base` classes for `ApplicationBackend` and `CanvasBackend`, IIRC.