class OpenStackConnection_x: someProp=0 ks=False nova=False catalogData="" novaURL="" """ It's important not to initalise any of the submodules during the init cycle becuase thic causes cirtucalr import loops The initalise function exists for this reas and should be caled by the client application using this module """ def __init__(self) -> None: pass def initalise(self) -> None: from myOpenstackApp.keystone import myopenstack_keystone from myOpenstackApp.nova import myopenstack_nova self.ks=myopenstack_keystone(self) self.nova=myopenstack_nova(self) pass def something(_self): print(1) _self.ks.getCatalog() _self.nova.showNovaURL()