[PyQt] How to handle circular imports

Jakob Simon-Gaarde sip at skolesys.dk
Thu Jul 9 21:56:21 BST 2009


Hey again.

Solved it. 
I placed all shared objects between the different modules in one single Common 
module, so I always only have to import the same module to gain access to the 
cross module dependent objects.

/ Jakob Simon-Gaarde

Torsdag den 9. juli 2009 22:32:28 skrev Jakob Simon-Gaarde:
> Hey there.
>
> I have a problem regarding sip that I guess is probably trivial.
>
> I have an C++ API which is contained in one library file. I am over half
> way though making python bindings. In the process of making these bindings
> I decided to split them op into 7 modules that each handle there logical
> partition of the problem domain, ie UserService, GroupService, RoleService,
> etc.
>
> Until now it has been smooth, I created sip definitions for 20% of the
> UserService module and when implementing the RoleService I needed
> specifications from the UserService (UserItem) so I %Import'ed the
> UserService Module in RoleService. Everything worked as it should.
>
> Then when I wanted to define the remaining 80% of the UserService module I
> also needed definitions from RoleService in UserService (RoleItem)... But,
> but, but here I ran into problems, cause when I in the RoleService module's
> sip definitions already imported UserService, I got a circular import when
> I started importing RoleService in UserService.
>
> Is this possible to work around?
>
> the prob:
> this is what happens in sip while processing module A:
> A imports B which then import A
>
> cause A depends on specs from B and B depends on specs from A
>
> / Jakob Simon-Gaarde
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20090709/66b03b40/attachment-0001.bin


More information about the PyQt mailing list