[PyQt] How to handle circular imports
Phil Thompson
phil at riverbankcomputing.com
Thu Jul 9 21:53:09 BST 2009
On Thu, 9 Jul 2009 22:32:28 +0200, "Jakob Simon-Gaarde" <sip at skolesys.dk>
wrote:
> 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?
Only by redesigning your module structure to remove the circular
dependencies.
> 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
Phil
More information about the PyQt
mailing list