[Zope-CMF] SVN: Products.CMFDefault/trunk/Products/CMFDefault/__init__.py Move clashing imports into body of initialize().

yuppie y.2008 at wcm-solutions.de
Sun Dec 28 07:28:24 EST 2008


Hi Tres!


Tres Seaver wrote:
> Log message for revision 94389:
>   Move clashing imports into body of initialize().
> 
> Changed:
>   U   Products.CMFDefault/trunk/Products/CMFDefault/__init__.py

What are "clashing imports"? Can't they be fixed in an other way? I'd 
prefer to have less code in initialize(), not more.


Maybe related:

Running CMF trunk tests with Zope 2.10, I now get random test-module 
import failures like this one:

   Module: Products.CMFActionIcons.tests.test_exportimport

   Traceback (most recent call last):
     File "..\Products\CMFActionIcons\tests\test_exportimport.py", line 
24, in ?
       from Products.CMFCore.testing import ExportImportZCMLLayer
     File "..\Products\CMFCore\__init__.py", line 18, in ?
       import PortalFolder
     File "..\Products\CMFCore\PortalFolder.py", line 26, in ?
       from App.class_init import default__class_init__ as InitializeClass
     File "..\lib\python\App\class_init.py", line 16, in ?
       import AccessControl.Permission
     File "..\lib\python\AccessControl\Permission.py", line 18, in ?
       import string, Products, Globals
     File "..\lib\python\Globals\__init__.py", line 23, in ?
       import Acquisition, ComputedAttribute, App.PersistentExtra, os
     File "..\lib\python\App\PersistentExtra.py", line 24, in ?
       from class_init import default__class_init__
   ImportError: cannot import name default__class_init__


Digging a bit deeper, I found a circular import in Zope that causes 
these failures:

AccessControl.Permission uses ApplicationDefaultPermissions defined in 
App.class_init and App.class_init imports AccessControl.Permission.

AFAICS moving ApplicationDefaultPermissions to AccessControl.Permission 
would be the best way to fix this.


Cheers,

	Yuppie



More information about the Zope-CMF mailing list