If I have 2 very deep python package:
com.acme.some.thing, and com.acme.some.thing2.
Both of them use each other, so thing would import thing2, and thing2 would import thing.
However, in Python this will yield 'cannot import Name X' error due to cyclic import. The only way to let them use each other is to import specific function names, which takes a lot of space, if both modules have identical function names, this is again not possible.
I would always assume that import is just a shorthand for disambiguated names, and has no impact on interpretation. So cyclic import should have no impact at all. Why is it not allowed in Python?