Für gewöhnlich bekommt man diese Meldung:

ImportError: cannot import name 'xyz' from partially initialized module 'abc' (most likely due to a circular import) (module in which the issue happens)

Das Problem ist, das der Parser versucht ein Modul A zu laden und dabei alle Abhängigkeiten aufzulösen und dazu B lädt bevor A komplett geladen ist.
B wiederum muss A laden, was bereits halb geladen ist und das resultiert in einer Loop.

Circular Import wegen Typing

from __future__ import annotation
from typing import TYPE_CHECKING

if TYPE_CHECKING:
   import whateverlib resulting else in circular import

rest of code