Столкнулся с проблемой, подозреваю что у меня происходит цикличный импорт. Имеется следующее древо:

Содержимое файлов:
Пакет auth:
auth/__init__.py
auth_blpr = True from . import views as auth_views
auth/views.py
from models.user import User
Пакет models:
models/__init__.py - пустой
models/user.py
from index import database class User: pass
Пакет shop:
shop/__init__.py
shop_blpr = True from . import views as shop_views
shop/views.py
from models.user import User
Собственно index.py - точка входа:
database = 'spam' from auth import auth_blpr # если закомментировать эту строку ... from shop import shop_blpr # ... или эту то все в порядке!!!
Получаю следующее:
Traceback (most recent call last):
File “/home/komarov/PycharmProjects/untitled/index.py”, line 3, in <module>
from auth import auth_blpr
File “/home/komarov/PycharmProjects/untitled/auth/__init__.py”, line 3, in <module>
from . import views as auth_views
File “/home/komarov/PycharmProjects/untitled/auth/views.py”, line 1, in <module>
from models.user import User
File “/home/komarov/PycharmProjects/untitled/models/user.py”, line 1, in <module>
from index import database
File “/home/komarov/PycharmProjects/untitled/index.py”, line 4, in <module>
from shop import shop_blpr
File “/home/komarov/PycharmProjects/untitled/shop/__init__.py”, line 3, in <module>
from . import views as shop_views
File “/home/komarov/PycharmProjects/untitled/shop/views.py”, line 1, in <module>
from models.user import User
ImportError: cannot import name ‘User’
Причем, если закомментировать одну из строк в index.py, как показано выше - все нормально.
Никак не могу понять почему так происходит. Люди добрые, подскажите пожалуйста. Проектик прикрепил архивом.