Predicate Cyclic::failing_import_due_to_cycle

Whether importing module ‘first’ before importing module ‘other’ will fail at runtime, due to an AttributeError at ‘use’ (in module ‘other’) caused by ‘first.attr’ not being defined as its definition can occur after the import ‘other’ in ‘first’.

predicate failing_import_due_to_cycle(PythonModuleObject first, PythonModuleObject other, Stmt imp, ControlFlowNode defn, Expr use, string attr)