I'm not 100% in either direction when it comes to a flag (as_generator) v. new method (get_units_generator). There's something kinda cool about the flag. It's both a pro and a con that it utilizes the fact that return types aren't statically typed.

I only mention that to put in context why this next comment is here: the variable return type leaves the docstrings in a weird place. This isn't entirely accurate to say a list is the rtype. I suppose you could loosen it to iterable. Maybe do that to make IDEs happy and then add a bit of text to the docstring body itself saying it will be a pre-loaded list or a generator depending on that flag and talk briefly about the implications of using either. It should be obvious to intermediate+ Python devs, but since this is a plugin API class we can't really assume that.