In what order are `__init__` functions called?

If a module C contains

using A
using B

I know that C.__init__ is called last. But is there any promise about the order of A.__init__ and B.__init__?

It may currently happen in that order if A does not itself use B somewhere down the line, but I don’t think this is a guaranteed feature of the API so it may not be good design to rely on it. Cf this discussion