[Checkins] SVN: Products.CMFCore/trunk/Products/CMFCore/ Cleaned up / normalized imports:

Tres Seaver tseaver at palladion.com
Sat Dec 27 15:52:41 EST 2008


Log message for revision 94384:
  Cleaned up / normalized imports:
  
  o Don't import from Globals;  instead, use real locations.
  
  o Make other imports use the actual source module, rather than an
    intermediate (e.g., prefer importing 'ClassSecurityInfo' from
    'AccessControl.SecurityInfo' rather than from 'AccessControl').
  
  o Avoid relative imports, which will break in later versions of Python.
  

Changed:
  U   Products.CMFCore/trunk/Products/CMFCore/ActionInformation.py
  U   Products.CMFCore/trunk/Products/CMFCore/ActionProviderBase.py
  U   Products.CMFCore/trunk/Products/CMFCore/ActionsTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
  U   Products.CMFCore/trunk/Products/CMFCore/CMFBTreeFolder.py
  U   Products.CMFCore/trunk/Products/CMFCore/CMFCatalogAware.py
  U   Products.CMFCore/trunk/Products/CMFCore/CachingPolicyManager.py
  U   Products.CMFCore/trunk/Products/CMFCore/CatalogTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/ContentTypeRegistry.py
  U   Products.CMFCore/trunk/Products/CMFCore/CookieCrumbler.py
  U   Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py
  U   Products.CMFCore/trunk/Products/CMFCore/DiscussionTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/DynamicType.py
  U   Products.CMFCore/trunk/Products/CMFCore/Expression.py
  U   Products.CMFCore/trunk/Products/CMFCore/FSDTMLMethod.py
  U   Products.CMFCore/trunk/Products/CMFCore/FSFile.py
  U   Products.CMFCore/trunk/Products/CMFCore/FSImage.py
  U   Products.CMFCore/trunk/Products/CMFCore/FSObject.py
  U   Products.CMFCore/trunk/Products/CMFCore/FSPageTemplate.py
  U   Products.CMFCore/trunk/Products/CMFCore/FSPropertiesObject.py
  U   Products.CMFCore/trunk/Products/CMFCore/FSPythonScript.py
  U   Products.CMFCore/trunk/Products/CMFCore/FSReSTMethod.py
  U   Products.CMFCore/trunk/Products/CMFCore/FSSTXMethod.py
  U   Products.CMFCore/trunk/Products/CMFCore/FSZSQLMethod.py
  U   Products.CMFCore/trunk/Products/CMFCore/MemberDataTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/MembershipTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/PortalContent.py
  U   Products.CMFCore/trunk/Products/CMFCore/PortalFolder.py
  U   Products.CMFCore/trunk/Products/CMFCore/PortalObject.py
  U   Products.CMFCore/trunk/Products/CMFCore/RegistrationTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/Skinnable.py
  U   Products.CMFCore/trunk/Products/CMFCore/SkinsContainer.py
  U   Products.CMFCore/trunk/Products/CMFCore/SkinsTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/TypesTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/URLTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/UndoTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/permissions.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_DirectoryView.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSecurity.py
  U   Products.CMFCore/trunk/Products/CMFCore/utils.py

-=-
Modified: Products.CMFCore/trunk/Products/CMFCore/ActionInformation.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/ActionInformation.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/ActionInformation.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -17,9 +17,9 @@
 
 from UserDict import UserDict
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import aq_base, aq_inner, aq_parent
-from Globals import InitializeClass
+from App.class_init import default__class_init__ as InitializeClass
 from OFS.ObjectManager import IFAwareObjectManager
 from OFS.OrderedFolder import OrderedFolder
 from OFS.PropertyManager import PropertyManager
@@ -27,13 +27,13 @@
 from zope.i18nmessageid import Message
 from zope.interface import implements
 
-from Expression import Expression
-from interfaces import IAction
-from interfaces import IActionCategory
-from interfaces import IActionInfo
-from permissions import View
-from utils import _checkPermission
-from utils import getToolByName
+from Products.CMFCore.Expression import Expression
+from Products.CMFCore.interfaces import IAction
+from Products.CMFCore.interfaces import IActionCategory
+from Products.CMFCore.interfaces import IActionInfo
+from Products.CMFCore.permissions import View
+from Products.CMFCore.utils import _checkPermission
+from Products.CMFCore.utils import getToolByName
 
 _unchanged = [] # marker
 

Modified: Products.CMFCore/trunk/Products/CMFCore/ActionProviderBase.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/ActionProviderBase.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/ActionProviderBase.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -17,19 +17,19 @@
 
 from warnings import warn
 
-from AccessControl import ClassSecurityInfo
-from Globals import DTMLFile
-from Globals import InitializeClass
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from zope.interface import implements
 
-from ActionInformation import ActionInfo
-from ActionInformation import ActionInformation
-from ActionInformation import getOAI
-from exceptions import AccessControl_Unauthorized
-from Expression import getExprContext
-from interfaces import IActionProvider
-from permissions import ManagePortal
-from utils import _dtmldir
+from Products.CMFCore.ActionInformation import ActionInfo
+from Products.CMFCore.ActionInformation import ActionInformation
+from Products.CMFCore.ActionInformation import getOAI
+from Products.CMFCore.exceptions import AccessControl_Unauthorized
+from Products.CMFCore.Expression import getExprContext
+from Products.CMFCore.interfaces import IActionProvider
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.utils import _dtmldir
 
 
 class ActionProviderBase:

Modified: Products.CMFCore/trunk/Products/CMFCore/ActionsTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/ActionsTool.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/ActionsTool.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -17,20 +17,20 @@
 
 from warnings import warn
 
-from AccessControl import ClassSecurityInfo
-from Globals import DTMLFile
-from Globals import InitializeClass
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.ObjectManager import IFAwareObjectManager
 from OFS.OrderedFolder import OrderedFolder
 from zope.interface import implements
 
-from ActionProviderBase import ActionProviderBase
-from interfaces import IActionCategory
-from interfaces import IActionProvider
-from interfaces import IActionsTool
-from permissions import ManagePortal
-from utils import _dtmldir
-from utils import UniqueObject
+from Products.CMFCore.ActionProviderBase import ActionProviderBase
+from Products.CMFCore.interfaces import IActionCategory
+from Products.CMFCore.interfaces import IActionProvider
+from Products.CMFCore.interfaces import IActionsTool
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import UniqueObject
 
 
 class ActionsTool(UniqueObject, IFAwareObjectManager, OrderedFolder,

Modified: Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2008-12-27 20:52:41 UTC (rev 94384)
@@ -4,6 +4,16 @@
 2.2.0 (unreleased)
 ------------------
 
+- Cleaned up / normalized imports:
+
+  o Don't import from Globals;  instead, use real locations.
+
+  o Make other imports use the actual source module, rather than an
+    intermediate (e.g., prefer importing 'ClassSecurityInfo' from
+    'AccessControl.SecurityInfo' rather than from 'AccessControl').
+
+  o Avoid relative imports, which will break in later versions of Python.
+
 - Added `icon_expr` as a new property to type information. This allows you
   to specify the `content_icon` as an expression and store it. This avoids
   creating the expression on the fly at rendering time.

Modified: Products.CMFCore/trunk/Products/CMFCore/CMFBTreeFolder.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CMFBTreeFolder.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/CMFBTreeFolder.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -17,13 +17,13 @@
 """
 
 from AccessControl.SecurityInfo import ClassSecurityInfo
-from Globals import InitializeClass
+from App.class_init import default__class_init__ as InitializeClass
 from Products.BTreeFolder2.BTreeFolder2 import BTreeFolder2Base
 from zope.component.factory import Factory
 
-from permissions import AddPortalFolders
-from PortalFolder import PortalFolder
-from PortalFolder import PortalFolderBase
+from Products.CMFCore.permissions import AddPortalFolders
+from Products.CMFCore.PortalFolder import PortalFolder
+from Products.CMFCore.PortalFolder import PortalFolderBase
 
 
 def manage_addCMFBTreeFolder(dispatcher, id, title='', REQUEST=None):

Modified: Products.CMFCore/trunk/Products/CMFCore/CMFCatalogAware.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CMFCatalogAware.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/CMFCatalogAware.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -17,11 +17,11 @@
 
 import logging
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import aq_base
 from ExtensionClass import Base
-from Globals import DTMLFile
-from Globals import InitializeClass
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.interfaces import IObjectClonedEvent
 from OFS.interfaces import IObjectWillBeMovedEvent
 from zope.app.container.interfaces import IObjectAddedEvent
@@ -31,16 +31,16 @@
 from zope.lifecycleevent.interfaces import IObjectCopiedEvent
 from zope.lifecycleevent.interfaces import IObjectCreatedEvent
 
-from interfaces import ICallableOpaqueItem
-from interfaces import ICatalogAware
-from interfaces import IOpaqueItemManager
-from interfaces import IWorkflowAware
-from permissions import AccessContentsInformation
-from permissions import ManagePortal
-from permissions import ModifyPortalContent
-from utils import _dtmldir
-from utils import _getAuthenticatedUser
-from utils import getToolByName
+from Products.CMFCore.interfaces import ICallableOpaqueItem
+from Products.CMFCore.interfaces import ICatalogAware
+from Products.CMFCore.interfaces import IOpaqueItemManager
+from Products.CMFCore.interfaces import IWorkflowAware
+from Products.CMFCore.permissions import AccessContentsInformation
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.permissions import ModifyPortalContent
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import _getAuthenticatedUser
+from Products.CMFCore.utils import getToolByName
 
 logger = logging.getLogger('CMFCore.CMFCatalogAware')
 

Modified: Products.CMFCore/trunk/Products/CMFCore/CachingPolicyManager.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CachingPolicyManager.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/CachingPolicyManager.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,33 +15,33 @@
 $Id$
 """
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from App.Common import rfc1123_date
 from DateTime.DateTime import DateTime
-from Globals import DTMLFile
-from Globals import InitializeClass
-from Globals import PersistentMapping
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.Cache import Cache
 from OFS.Cache import CacheManager
 from OFS.Cache import getVerifiedManagerIds
 from OFS.Cache import ZCM_MANAGERS
 from OFS.interfaces import IObjectWillBeMovedEvent
 from OFS.SimpleItem import SimpleItem
+from Persistence import PersistentMapping
 from Products.PageTemplates.Expressions import getEngine
 from Products.PageTemplates.Expressions import SecureModuleImporter
 from zope.app.container.interfaces import IObjectMovedEvent
 from zope.interface import implements
 
-from Expression import Expression
-from interfaces import ICachingPolicy
-from interfaces import ICachingPolicyManager
-from permissions import ManagePortal
-from permissions import View
-from utils import _dtmldir
-from utils import _setCacheHeaders
-from utils import _ViewEmulator
-from utils import getToolByName
-from utils import registerToolInterface
+from Products.CMFCore.Expression import Expression
+from Products.CMFCore.interfaces import ICachingPolicy
+from Products.CMFCore.interfaces import ICachingPolicyManager
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.permissions import View
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import _setCacheHeaders
+from Products.CMFCore.utils import _ViewEmulator
+from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.utils import registerToolInterface
 
 # This is lame :(
 # This listing is used to decide whether to wrap an object inside a "fake view"

Modified: Products.CMFCore/trunk/Products/CMFCore/CatalogTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CatalogTool.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/CatalogTool.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,13 +15,13 @@
 $Id$
 """
 
-from AccessControl import ClassSecurityInfo
-from AccessControl import getSecurityManager
 from AccessControl.PermissionRole import rolesForPermissionOn
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from AccessControl.SecurityManagement import getSecurityManager
 from Acquisition import aq_base
-from DateTime import DateTime
-from Globals import DTMLFile
-from Globals import InitializeClass
+from DateTime.DateTime import DateTime
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from Products.PluginIndexes.common import safe_callable
 from Products.ZCatalog.ZCatalog import ZCatalog
 from zope.interface import implements
@@ -30,18 +30,18 @@
 from zope.interface.declarations import ObjectSpecification
 from zope.interface.declarations import ObjectSpecificationDescriptor
 
-from ActionProviderBase import ActionProviderBase
-from interfaces import ICatalogTool
-from interfaces import IIndexableObjectWrapper
-from permissions import AccessInactivePortalContent
-from permissions import ManagePortal
-from permissions import View
-from utils import _checkPermission
-from utils import _dtmldir
-from utils import _getAuthenticatedUser
-from utils import _mergedLocalRoles
-from utils import getToolByName
-from utils import UniqueObject
+from Products.CMFCore.ActionProviderBase import ActionProviderBase
+from Products.CMFCore.interfaces import ICatalogTool
+from Products.CMFCore.interfaces import IIndexableObjectWrapper
+from Products.CMFCore.permissions import AccessInactivePortalContent
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.permissions import View
+from Products.CMFCore.utils import _checkPermission
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import _getAuthenticatedUser
+from Products.CMFCore.utils import _mergedLocalRoles
+from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.utils import UniqueObject
 
 
 class IndexableObjectSpecification(ObjectSpecificationDescriptor):

Modified: Products.CMFCore/trunk/Products/CMFCore/ContentTypeRegistry.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/ContentTypeRegistry.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/ContentTypeRegistry.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,21 +15,23 @@
 $Id$
 """
 
-import re, os, urllib
+import os
+import re
+import urllib
 
-from AccessControl import ClassSecurityInfo
-from Globals import DTMLFile
-from Globals import InitializeClass
-from Globals import PersistentMapping
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.SimpleItem import SimpleItem
+from Persistence import PersistentMapping
 from zope.interface import implements
 from ZPublisher.mapply import mapply
 
-from interfaces import IContentTypeRegistry
-from interfaces import IContentTypeRegistryPredicate
-from permissions import ManagePortal
-from utils import _dtmldir
-from utils import getToolByName
+from Products.CMFCore.interfaces import IContentTypeRegistry
+from Products.CMFCore.interfaces import IContentTypeRegistryPredicate
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import getToolByName
 
 
 class MajorMinorPredicate( SimpleItem ):

Modified: Products.CMFCore/trunk/Products/CMFCore/CookieCrumbler.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CookieCrumbler.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/CookieCrumbler.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -18,20 +18,22 @@
 from base64 import encodestring, decodestring
 from urllib import quote, unquote
 
-from Acquisition import aq_inner, aq_parent
-from DateTime import DateTime
-from AccessControl import ClassSecurityInfo, Permissions
-from ZPublisher import BeforeTraverse
-import Globals
-from Globals import HTMLFile
-from ZPublisher.HTTPRequest import HTTPRequest
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from AccessControl.Permissions import view_management_screens
+from Acquisition import aq_inner
+from Acquisition import aq_parent
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import HTMLFile
+from DateTime.DateTime import DateTime
 from OFS.Folder import Folder
+from OFS.interfaces import IObjectWillBeMovedEvent
 from zExceptions import Redirect
 from zope.interface import implements
 from zope.app.container.interfaces import IObjectMovedEvent
-from OFS.interfaces import IObjectWillBeMovedEvent
+from ZPublisher import BeforeTraverse
+from ZPublisher.HTTPRequest import HTTPRequest
 
-from interfaces import ICookieCrumbler
+from Products.CMFCore.interfaces import ICookieCrumbler
 
 
 # Constants.
@@ -40,7 +42,7 @@
 ATTEMPT_RESUME = 2     # Attempt to resume session
 
 ModifyCookieCrumblers = 'Modify Cookie Crumblers'
-ViewManagementScreens = Permissions.view_management_screens
+ViewManagementScreens = view_management_screens
 
 
 class CookieCrumblerDisabled(Exception):
@@ -387,7 +389,7 @@
                 return p.get('label', id)
         return id
 
-Globals.InitializeClass(CookieCrumbler)
+InitializeClass(CookieCrumbler)
 
 
 def handleCookieCrumblerEvent(ob, event):

Modified: Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -17,32 +17,30 @@
 
 import logging
 import re
-from os import path, listdir, stat
-from os.path import abspath
+import os
 from sys import platform
 from warnings import warn
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import aq_inner, aq_parent
-from Globals import DevelopmentMode
-from Globals import DTMLFile
-from Globals import HTMLFile
-from Globals import InitializeClass
-from Globals import Persistent
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
+from App.special_dtml import HTMLFile
 from OFS.Folder import Folder
 from OFS.ObjectManager import bad_id
+from Persistence import Persistent
 from zope.interface import implements
 
-from FSMetadata import FSMetadata
-from FSObject import BadFile
-from interfaces import IDirectoryView
-from permissions import AccessContentsInformation as ACI
-from permissions import ManagePortal
-from utils import _dtmldir
-from utils import normalize
-from utils import getPackageName
-from utils import getPackageLocation
-from utils import ProductsPath
+from Products.CMFCore.FSMetadata import FSMetadata
+from Products.CMFCore.FSObject import BadFile
+from Products.CMFCore.interfaces import IDirectoryView
+from Products.CMFCore.permissions import AccessContentsInformation as ACI
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import normalize
+from Products.CMFCore.utils import getPackageName
+from Products.CMFCore.utils import getPackageLocation
+from Products.CMFCore.utils import ProductsPath
 
 logger = logging.getLogger('CMFCore.DirectoryView')
 
@@ -59,7 +57,7 @@
 def _filtered_listdir(path, ignore):
     return [ name
              for name
-             in listdir(path)
+             in os.listdir(path)
              if name not in ignore and not ignore_re.match(name) ]
 
 class _walker:
@@ -67,16 +65,16 @@
         # make a dict for faster lookup
         self.ignore = dict([(x, None) for x in ignore])
 
-    def __call__(self, listdir, dirname, names):
+    def __call__(self, dirlist, dirname, names):
         # filter names inplace, so filtered directories don't get visited
         names[:] = [ name
                      for name
                      in names
                      if name not in self.ignore and not ignore_re.match(name) ]
         # append with stat info
-        results = [ (name, stat(path.join(dirname,name))[8])
+        results = [ (name, os.stat(os.path.join(dirname,name))[8])
                     for name in names ]
-        listdir.extend(results)
+        dirlist.extend(results)
 
 
 def _generateKey(package, subdir):
@@ -89,7 +87,7 @@
 
 def _findProductForPath(path, subdir=None):
     # like minimalpath, but raises an error if path is not inside a product
-    p = abspath(path)
+    p = os.path.abspath(path)
     for ppath in ProductsPath:
         if p.startswith(ppath):
             dirpath = p[len(ppath)+1:]
@@ -119,8 +117,8 @@
             self._walker = _walker(self.ignore)
         subdirs = []
         for entry in _filtered_listdir(self._filepath, ignore=self.ignore):
-           entry_filepath = path.join(self._filepath, entry)
-           if path.isdir(entry_filepath):
+           entry_filepath = os.path.join(self._filepath, entry)
+           if os.path.isdir(entry_filepath):
                subdirs.append(entry)
         self.subdirs = tuple(subdirs)
 
@@ -142,7 +140,7 @@
         """
         types = {}
         try:
-            f = open( path.join(self._filepath, '.objects'), 'rt' )
+            f = open( os.path.join(self._filepath, '.objects'), 'rt' )
         except IOError:
             pass
         else:
@@ -157,36 +155,32 @@
                     types[obname.strip()] = meta_type.strip()
         return types
 
-    if DevelopmentMode:
-
-        def _changed(self):
-            mtime=0
-            filelist=[]
-            try:
-                mtime = stat(self._filepath)[8]
-                if platform == 'win32':
-                    # some Windows directories don't change mtime
-                    # when a file is added to or deleted from them :-(
-                    # So keep a list of files as well, and see if that
-                    # changes
-                    path.walk(self._filepath, self._walker, filelist)
-                    filelist.sort()
-            except:
-                logger.exception("Error checking for directory modification")
-
-            if mtime != self._v_last_read or filelist != self._v_last_filelist:
-                self._v_last_read = mtime
-                self._v_last_filelist = filelist
-
-                return 1
-
+    def _changed(self):
+        import Globals  # for data
+        if not Globals.DevelopmentMode:
             return 0
+        mtime=0
+        filelist=[]
+        try:
+            mtime = os.stat(self._filepath)[8]
+            if platform == 'win32':
+                # some Windows directories don't change mtime
+                # when a file is added to or deleted from them :-(
+                # So keep a list of files as well, and see if that
+                # changes
+                os.path.walk(self._filepath, self._walker, filelist)
+                filelist.sort()
+        except:
+            logger.exception("Error checking for directory modification")
 
-    else:
+        if mtime != self._v_last_read or filelist != self._v_last_filelist:
+            self._v_last_read = mtime
+            self._v_last_filelist = filelist
 
-        def _changed(self):
-            return 0
+            return 1
 
+        return 0
+
     def getContents(self, registry):
         changed = self._changed()
         if self.data is None or changed:
@@ -208,8 +202,8 @@
         for entry in _filtered_listdir(self._filepath, ignore=self.ignore):
             if not self._isAllowableFilename(entry):
                 continue
-            entry_filepath = path.join(self._filepath, entry)
-            if path.isdir(entry_filepath):
+            entry_filepath = os.path.join(self._filepath, entry)
+            if os.path.isdir(entry_filepath):
                 # Add a subdirectory only if it was previously registered,
                 # unless register_subdirs is set.
                 entry_reg_key = '/'.join((self._reg_key, entry))
@@ -244,7 +238,7 @@
                 pos = entry.rfind('.')
                 if pos >= 0:
                     name = entry[:pos]
-                    ext = path.normcase(entry[pos + 1:])
+                    ext = os.path.normcase(entry[pos + 1:])
                 else:
                     name = entry
                     ext = ''
@@ -335,12 +329,12 @@
         # file system directory to become a FSDV.
         if not isinstance(_prefix, basestring):
             package = getPackageName(_prefix)
-            filepath = path.join(getPackageLocation(package), name)
+            filepath = os.path.join(getPackageLocation(package), name)
         else:
             warn('registerDirectory() called with deprecated _prefix type. '
                  'Support for paths will be removed in CMF 2.3. Please use '
                  'globals instead.', DeprecationWarning, stacklevel=2)
-            filepath = path.join(_prefix, name)
+            filepath = os.path.join(_prefix, name)
             (package, name) = _findProductForPath(_prefix, name)
         reg_key = _generateKey(package, name)
         self.registerDirectoryByKey(filepath, reg_key, subdirs, ignore)
@@ -351,7 +345,7 @@
         self._directories[reg_key] = info
         if subdirs:
             for entry in info.getSubdirs():
-                entry_filepath = path.join(filepath, entry)
+                entry_filepath = os.path.join(filepath, entry)
                 entry_reg_key = '/'.join((reg_key, entry))
                 self.registerDirectoryByKey(entry_filepath, entry_reg_key,
                                             subdirs, ignore)

Modified: Products.CMFCore/trunk/Products/CMFCore/DiscussionTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/DiscussionTool.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/DiscussionTool.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -17,24 +17,24 @@
 
 import urllib
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import Implicit
 from DateTime.DateTime import DateTime
-from Globals import DTMLFile
-from Globals import InitializeClass
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.SimpleItem import SimpleItem
 from zope.interface import implements
 
-from ActionProviderBase import ActionProviderBase
-from interfaces import IOldstyleDiscussable
-from interfaces import IOldstyleDiscussionTool
-from permissions import AccessContentsInformation
-from permissions import ManagePortal
-from permissions import ReplyToItem
-from permissions import View
-from utils import _dtmldir
-from utils import getToolByName
-from utils import UniqueObject
+from Products.CMFCore.ActionProviderBase import ActionProviderBase
+from Products.CMFCore.interfaces import IOldstyleDiscussable
+from Products.CMFCore.interfaces import IOldstyleDiscussionTool
+from Products.CMFCore.permissions import AccessContentsInformation
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.permissions import ReplyToItem
+from Products.CMFCore.permissions import View
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.utils import UniqueObject
 
 
 class OldDiscussable(Implicit):

Modified: Products.CMFCore/trunk/Products/CMFCore/DynamicType.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/DynamicType.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/DynamicType.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -17,14 +17,14 @@
 
 from urllib import quote
 
-from AccessControl import ClassSecurityInfo
-from Globals import InitializeClass
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from App.class_init import default__class_init__ as InitializeClass
 from zope.app.publisher.browser import queryDefaultViewName
 from zope.component import queryMultiAdapter
 from zope.interface import implements
 
-from interfaces import IDynamicType
-from utils import getToolByName
+from Products.CMFCore.interfaces import IDynamicType
+from Products.CMFCore.utils import getToolByName
 
 
 class DynamicType:

Modified: Products.CMFCore/trunk/Products/CMFCore/Expression.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/Expression.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/Expression.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,14 +15,16 @@
 $Id$
 """
 
-from AccessControl import ClassSecurityInfo
-from Acquisition import aq_base, aq_inner, aq_parent
-from Globals import InitializeClass
-from Globals import Persistent
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from Acquisition import aq_base
+from Acquisition import aq_inner
+from Acquisition import aq_parent
+from App.class_init import default__class_init__ as InitializeClass
+from Persistence import Persistent
 from Products.PageTemplates.Expressions import getEngine
 from Products.PageTemplates.Expressions import SecureModuleImporter
 
-from utils import getToolByName
+from Products.CMFCore.utils import getToolByName
 
 
 class Expression(Persistent):

Modified: Products.CMFCore/trunk/Products/CMFCore/FSDTMLMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/FSDTMLMethod.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/FSDTMLMethod.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,28 +15,30 @@
 $Id$
 """
 
-import Globals
-from AccessControl import ClassSecurityInfo
-from AccessControl import getSecurityManager
 from AccessControl.DTML import RestrictedDTML
 from AccessControl.Role import RoleManager
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from AccessControl.SecurityManagement import getSecurityManager
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
+from App.special_dtml import HTML
 from OFS.Cache import Cacheable
 from OFS.DTMLMethod import DTMLMethod, decapitate, guess_content_type
 
-from DirectoryView import registerFileExtension
-from DirectoryView import registerMetaType
-from FSObject import FSObject
-from permissions import FTPAccess
-from permissions import View
-from permissions import ViewManagementScreens
-from utils import _checkConditionalGET
-from utils import _dtmldir
-from utils import _setCacheHeaders
+from Products.CMFCore.DirectoryView import registerFileExtension
+from Products.CMFCore.DirectoryView import registerMetaType
+from Products.CMFCore.FSObject import FSObject
+from Products.CMFCore.permissions import FTPAccess
+from Products.CMFCore.permissions import View
+from Products.CMFCore.permissions import ViewManagementScreens
+from Products.CMFCore.utils import _checkConditionalGET
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import _setCacheHeaders
 
 _marker = object()
 
 
-class FSDTMLMethod(RestrictedDTML, RoleManager, FSObject, Globals.HTML):
+class FSDTMLMethod(RestrictedDTML, RoleManager, FSObject, HTML):
 
     """FSDTMLMethods act like DTML methods but are not directly
     modifiable from the management interface.
@@ -59,7 +61,7 @@
     security.declareObjectProtected(View)
 
     security.declareProtected(ViewManagementScreens, 'manage_main')
-    manage_main = Globals.DTMLFile('custdtml', _dtmldir)
+    manage_main = DTMLFile('custdtml', _dtmldir)
 
     def __init__(self, id, filepath, fullname=None, properties=None):
         FSObject.__init__(self, id, filepath, fullname, properties)
@@ -93,7 +95,7 @@
     def read_raw(self):
         if not self._reading:
             self._updateFromFS()
-        return Globals.HTML.read_raw(self)
+        return HTML.read_raw(self)
 
     #### The following is mainly taken from OFS/DTMLMethod.py ###
 
@@ -127,7 +129,7 @@
         security=getSecurityManager()
         security.addContext(self)
         try:
-            r = Globals.HTML.__call__(self, client, REQUEST, **kw)
+            r = HTML.__call__(self, client, REQUEST, **kw)
 
             if client is None:
                 # Called as subtemplate, so don't need error propagation!
@@ -195,7 +197,7 @@
     security.declareProtected(ViewManagementScreens, 'manage_haveProxy')
     manage_haveProxy = DTMLMethod.manage_haveProxy.im_func
 
-Globals.InitializeClass(FSDTMLMethod)
+InitializeClass(FSDTMLMethod)
 
 registerFileExtension('dtml', FSDTMLMethod)
 registerMetaType('DTML Method', FSDTMLMethod)

Modified: Products.CMFCore/trunk/Products/CMFCore/FSFile.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/FSFile.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/FSFile.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -17,23 +17,24 @@
 
 import codecs
 
-import Globals
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.Cache import Cacheable
 from OFS.Image import File
 from zope.contenttype import guess_content_type
 
-from DirectoryView import registerFileExtension
-from DirectoryView import registerMetaType
-from FSObject import FSObject
-from permissions import FTPAccess
-from permissions import View
-from permissions import ViewManagementScreens
-from utils import _checkConditionalGET
-from utils import _dtmldir
-from utils import _FSCacheHeaders
-from utils import _setCacheHeaders
-from utils import _ViewEmulator
+from Products.CMFCore.DirectoryView import registerFileExtension
+from Products.CMFCore.DirectoryView import registerMetaType
+from Products.CMFCore.FSObject import FSObject
+from Products.CMFCore.permissions import FTPAccess
+from Products.CMFCore.permissions import View
+from Products.CMFCore.permissions import ViewManagementScreens
+from Products.CMFCore.utils import _checkConditionalGET
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import _FSCacheHeaders
+from Products.CMFCore.utils import _setCacheHeaders
+from Products.CMFCore.utils import _ViewEmulator
 
 
 class FSFile(FSObject):
@@ -51,7 +52,7 @@
     security.declareObjectProtected(View)
 
     security.declareProtected(ViewManagementScreens, 'manage_main')
-    manage_main = Globals.DTMLFile('custfile', _dtmldir)
+    manage_main = DTMLFile('custfile', _dtmldir)
 
     def __init__(self, id, filepath, fullname=None, properties=None):
         id = fullname or id # Use the whole filename.
@@ -164,7 +165,7 @@
     security.declareProtected(FTPAccess, 'manage_FTPget')
     manage_FTPget = index_html
 
-Globals.InitializeClass(FSFile)
+InitializeClass(FSFile)
 
 registerFileExtension('doc', FSFile)
 registerFileExtension('txt', FSFile)

Modified: Products.CMFCore/trunk/Products/CMFCore/FSImage.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/FSImage.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/FSImage.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,22 +15,24 @@
 $Id$
 """
 
-import Globals
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.Cache import Cacheable
-from OFS.Image import Image, getImageInfo
+from OFS.Image import getImageInfo
+from OFS.Image import Image
 
-from DirectoryView import registerFileExtension
-from DirectoryView import registerMetaType
-from FSObject import FSObject
-from permissions import FTPAccess
-from permissions import View
-from permissions import ViewManagementScreens
-from utils import _checkConditionalGET
-from utils import _dtmldir
-from utils import _FSCacheHeaders
-from utils import _setCacheHeaders
-from utils import _ViewEmulator
+from Products.CMFCore.DirectoryView import registerFileExtension
+from Products.CMFCore.DirectoryView import registerMetaType
+from Products.CMFCore.FSObject import FSObject
+from Products.CMFCore.permissions import FTPAccess
+from Products.CMFCore.permissions import View
+from Products.CMFCore.permissions import ViewManagementScreens
+from Products.CMFCore.utils import _checkConditionalGET
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import _FSCacheHeaders
+from Products.CMFCore.utils import _setCacheHeaders
+from Products.CMFCore.utils import _ViewEmulator
 
 
 class FSImage(FSObject):
@@ -52,7 +54,7 @@
     security.declareObjectProtected(View)
 
     security.declareProtected(ViewManagementScreens, 'manage_main')
-    manage_main = Globals.DTMLFile('custimage', _dtmldir)
+    manage_main = DTMLFile('custimage', _dtmldir)
 
     def __init__(self, id, filepath, fullname=None, properties=None):
         id = fullname or id # Use the whole filename.
@@ -153,7 +155,7 @@
     security.declareProtected(FTPAccess, 'manage_FTPget')
     manage_FTPget = index_html
 
-Globals.InitializeClass(FSImage)
+InitializeClass(FSImage)
 
 registerFileExtension('gif', FSImage)
 registerFileExtension('jpg', FSImage)

Modified: Products.CMFCore/trunk/Products/CMFCore/FSObject.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/FSObject.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/FSObject.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,25 +15,26 @@
 $Id$
 """
 
-from os import path, stat
+import os
 
-import Globals
-from AccessControl import ClassSecurityInfo
 from AccessControl.Permission import Permission
 from AccessControl.Role import RoleManager
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import aq_base
 from Acquisition import aq_inner
 from Acquisition import aq_parent
 from Acquisition import Implicit
-from DateTime import DateTime
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import HTML
+from DateTime.DateTime import DateTime
 from OFS.Cache import Cacheable
 from OFS.SimpleItem import Item
 from Products.PythonScripts.standard import html_quote
 
-from permissions import ManagePortal
-from permissions import View
-from permissions import ViewManagementScreens
-from utils import getToolByName
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.permissions import View
+from Products.CMFCore.permissions import ViewManagementScreens
+from Products.CMFCore.utils import getToolByName
 
 
 class FSObject(Implicit, Item, RoleManager, Cacheable):
@@ -70,7 +71,7 @@
         self._filepath = filepath
 
         try:
-             self._file_mod_time = stat(filepath)[8]
+             self._file_mod_time = os.stat(filepath)[8]
         except:
              pass
         self._readFile(0)
@@ -166,10 +167,11 @@
     # Refresh our contents from the filesystem if that is newer and we are
     # running in debug mode.
     def _updateFromFS(self):
+        import Globals # for data
         parsed = self._parsed
         if not parsed or Globals.DevelopmentMode:
             try:
-                mtime = stat(self._filepath)[8]
+                mtime = os.stat(self._filepath)[8]
             except:
                 mtime = 0
             if not parsed or mtime != self._file_mod_time:
@@ -182,7 +184,7 @@
     security.declareProtected(View, 'get_size')
     def get_size(self):
         """Get the size of the underlying file."""
-        return path.getsize(self._filepath)
+        return os.path.getsize(self._filepath)
 
     security.declareProtected(View, 'getModTime')
     def getModTime(self):
@@ -199,7 +201,7 @@
         self._updateFromFS()
         return self._filepath
 
-Globals.InitializeClass(FSObject)
+InitializeClass(FSObject)
 
 
 class BadFile(FSObject):
@@ -239,7 +241,7 @@
 
     security = ClassSecurityInfo()
 
-    showError = Globals.HTML( BAD_FILE_VIEW )
+    showError = HTML( BAD_FILE_VIEW )
     security.declareProtected(ManagePortal, 'manage_showError')
     def manage_showError( self, REQUEST ):
         """
@@ -275,4 +277,4 @@
         """
         return self.exc_str
 
-Globals.InitializeClass( BadFile )
+InitializeClass( BadFile )

Modified: Products.CMFCore/trunk/Products/CMFCore/FSPageTemplate.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/FSPageTemplate.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/FSPageTemplate.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -17,26 +17,29 @@
 
 import re
 
-import Globals
-from AccessControl import ClassSecurityInfo
-from AccessControl import getSecurityManager
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from AccessControl.SecurityManagement import getSecurityManager
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.Cache import Cacheable
 from Products.PageTemplates.PageTemplate import PageTemplate
-from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate, Src
+from Products.PageTemplates.utils import encodingFromXMLPreamble
+from Products.PageTemplates.utils import charsetFromMetaEquiv
+from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
+from Products.PageTemplates.ZopePageTemplate import Src
 from Shared.DC.Scripts.Script import Script
 
-from DirectoryView import registerFileExtension
-from DirectoryView import registerMetaType
-from FSObject import FSObject
-from permissions import FTPAccess
-from permissions import View
-from permissions import ViewManagementScreens
-from utils import _checkConditionalGET
-from utils import _dtmldir
-from utils import _setCacheHeaders
+from Products.CMFCore.DirectoryView import registerFileExtension
+from Products.CMFCore.DirectoryView import registerMetaType
+from Products.CMFCore.FSObject import FSObject
+from Products.CMFCore.permissions import FTPAccess
+from Products.CMFCore.permissions import View
+from Products.CMFCore.permissions import ViewManagementScreens
+from Products.CMFCore.utils import _checkConditionalGET
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import _setCacheHeaders
 
 
-from Products.PageTemplates.utils import encodingFromXMLPreamble, charsetFromMetaEquiv
 
 xml_detect_re = re.compile('^\s*<\?xml\s+(?:[^>]*?encoding=["\']([^"\'>]+))?')
 _marker = object()
@@ -58,7 +61,7 @@
     security.declareObjectProtected(View)
 
     security.declareProtected(ViewManagementScreens, 'manage_main')
-    manage_main = Globals.DTMLFile('custpt', _dtmldir)
+    manage_main = DTMLFile('custpt', _dtmldir)
 
     # Declare security for unprotected PageTemplate methods.
     security.declarePrivate('pt_edit', 'write')
@@ -111,7 +114,8 @@
                     elif self.content_type.startswith('text/xml'):
                         charset = encodingFromXMLPreamble(data)
                     else:
-                        raise ValueError('Unsupported content-type: %s' % self.content_type)
+                        raise ValueError('Unsupported content-type: %s'
+                                            % self.content_type)
 
                 if not isinstance(data, unicode):
                     data = unicode(data, charset)
@@ -245,7 +249,7 @@
 
 setattr(FSPageTemplate, 'source.xml',  FSPageTemplate.source_dot_xml)
 setattr(FSPageTemplate, 'source.html', FSPageTemplate.source_dot_xml)
-Globals.InitializeClass(FSPageTemplate)
+InitializeClass(FSPageTemplate)
 
 registerFileExtension('pt', FSPageTemplate)
 registerFileExtension('zpt', FSPageTemplate)

Modified: Products.CMFCore/trunk/Products/CMFCore/FSPropertiesObject.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/FSPropertiesObject.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/FSPropertiesObject.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,9 +15,11 @@
 $Id$
 """
 
-import Globals
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import ImplicitAcquisitionWrapper
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
+import Globals  # for data
 from OFS.Folder import Folder
 from OFS.PropertyManager import PropertyManager
 from ZPublisher.Converters import get_converter
@@ -40,7 +42,7 @@
     security = ClassSecurityInfo()
 
     security.declareProtected(ViewManagementScreens, 'manage_main')
-    manage_main = Globals.DTMLFile('custprops', _dtmldir)
+    manage_main = DTMLFile('custprops', _dtmldir)
 
     # Declare all (inherited) mutating methods private.
     security.declarePrivate('manage_addProperty')
@@ -138,7 +140,7 @@
             self._updateFromFS()
             return self
 
-Globals.InitializeClass(FSPropertiesObject)
+InitializeClass(FSPropertiesObject)
 
 registerFileExtension('props', FSPropertiesObject)
 registerMetaType('Properties Object', FSPropertiesObject)

Modified: Products.CMFCore/trunk/Products/CMFCore/FSPythonScript.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/FSPythonScript.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/FSPythonScript.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -18,23 +18,23 @@
 from difflib import unified_diff
 import new
 
-from AccessControl import ClassSecurityInfo
-from AccessControl import getSecurityManager
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from AccessControl.SecurityManagement import getSecurityManager
 from ComputedAttribute import ComputedAttribute
-from Globals import DTMLFile
-from Globals import InitializeClass
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.Cache import Cacheable
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from Products.PythonScripts.PythonScript import PythonScript
 from Shared.DC.Scripts.Script import Script
 
-from DirectoryView import registerFileExtension
-from DirectoryView import registerMetaType
-from FSObject import FSObject
-from permissions import FTPAccess
-from permissions import View
-from permissions import ViewManagementScreens
-from utils import _dtmldir
+from Products.CMFCore.DirectoryView import registerFileExtension
+from Products.CMFCore.DirectoryView import registerMetaType
+from Products.CMFCore.FSObject import FSObject
+from Products.CMFCore.permissions import FTPAccess
+from Products.CMFCore.permissions import View
+from Products.CMFCore.permissions import ViewManagementScreens
+from Products.CMFCore.utils import _dtmldir
 
 _marker = object()
 

Modified: Products.CMFCore/trunk/Products/CMFCore/FSReSTMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/FSReSTMethod.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/FSReSTMethod.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,12 +15,12 @@
 
 $Id$
 """
-
-from AccessControl import ClassSecurityInfo
 from docutils.core import publish_parts
 from docutils.writers.html4css1 import Writer
-from Globals import DTMLFile
-from Globals import InitializeClass
+
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
 from Products.ZReST.ZReST import Warnings
 

Modified: Products.CMFCore/trunk/Products/CMFCore/FSSTXMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/FSSTXMethod.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/FSSTXMethod.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -16,10 +16,10 @@
 $Id$
 """
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from DocumentTemplate.DT_HTML import HTML as DTML_HTML
-from Globals import DTMLFile
-from Globals import InitializeClass
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.DTMLDocument import DTMLDocument
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
 from zope.structuredtext import stx2html

Modified: Products.CMFCore/trunk/Products/CMFCore/FSZSQLMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/FSZSQLMethod.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/FSZSQLMethod.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -17,17 +17,19 @@
 
 import logging
 
-import Globals
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import ImplicitAcquisitionWrapper
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
+import Globals # for data
 from Products.ZSQLMethods.SQL import SQL
 
-from DirectoryView import registerFileExtension
-from DirectoryView import registerMetaType
-from FSObject import FSObject
-from permissions import View
-from permissions import ViewManagementScreens
-from utils import _dtmldir
+from Products.CMFCore.DirectoryView import registerFileExtension
+from Products.CMFCore.DirectoryView import registerMetaType
+from Products.CMFCore.FSObject import FSObject
+from Products.CMFCore.permissions import View
+from Products.CMFCore.permissions import ViewManagementScreens
+from Products.CMFCore.utils import _dtmldir
 
 logger = logging.getLogger('CMFCore.FSZSQLMethod')
 
@@ -55,7 +57,7 @@
     manage=None
 
     security.declareProtected(ViewManagementScreens, 'manage_customise')
-    manage_customise = Globals.DTMLFile('custzsql', _dtmldir)
+    manage_customise = DTMLFile('custzsql', _dtmldir)
 
     def __init__(self, id, filepath, fullname=None, properties=None):
         FSObject.__init__(self, id, filepath, fullname, properties)
@@ -144,7 +146,7 @@
                 logger.exception("Error during __of__")
                 raise
 
-Globals.InitializeClass(FSZSQLMethod)
+InitializeClass(FSZSQLMethod)
 
 registerFileExtension('zsql', FSZSQLMethod)
 registerMetaType('Z SQL Method', FSZSQLMethod)

Modified: Products.CMFCore/trunk/Products/CMFCore/MemberDataTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/MemberDataTool.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/MemberDataTool.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,26 +15,26 @@
 $Id$
 """
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import aq_inner, aq_parent, aq_base
 from BTrees.OOBTree import OOBTree
-from Globals import DTMLFile
-from Globals import InitializeClass
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.PropertyManager import PropertyManager
 from OFS.SimpleItem import SimpleItem
 from zope.interface import implements
 from ZPublisher.Converters import type_converters
 
-from exceptions import BadRequest
-from interfaces import IMemberData
-from interfaces import IMemberDataTool
-from permissions import ManagePortal
-from permissions import SetOwnProperties
-from permissions import ViewManagementScreens
-from utils import _dtmldir
-from utils import getToolByName
-from utils import registerToolInterface
-from utils import UniqueObject
+from Products.CMFCore.exceptions import BadRequest
+from Products.CMFCore.interfaces import IMemberData
+from Products.CMFCore.interfaces import IMemberDataTool
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.permissions import SetOwnProperties
+from Products.CMFCore.permissions import ViewManagementScreens
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.utils import registerToolInterface
+from Products.CMFCore.utils import UniqueObject
 
 _marker = []  # Create a new marker object.
 

Modified: Products.CMFCore/trunk/Products/CMFCore/MembershipTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/MembershipTool.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/MembershipTool.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -17,37 +17,37 @@
 import logging
 from warnings import warn
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from AccessControl.requestmethod import postonly
 from AccessControl.User import nobody
 from Acquisition import aq_base
 from Acquisition import aq_inner
 from Acquisition import aq_parent
-from Globals import DTMLFile
-from Globals import InitializeClass
-from Globals import MessageDialog
-from Globals import PersistentMapping
+from App.class_init import default__class_init__ as InitializeClass
+from App.Dialogs import MessageDialog
+from App.special_dtml import DTMLFile
 from OFS.Folder import Folder
+from Persistence import PersistentMapping
 from ZODB.POSException import ConflictError
 from zope.component import getUtility
 from zope.interface import implements
 
-from exceptions import AccessControl_Unauthorized
-from exceptions import BadRequest
-from interfaces import IMembershipTool
-from interfaces import ISiteRoot
-from permissions import AccessContentsInformation
-from permissions import ChangeLocalRoles
-from permissions import ListPortalMembers
-from permissions import ManagePortal
-from permissions import ManageUsers
-from permissions import SetOwnPassword
-from permissions import View
-from utils import _checkPermission
-from utils import _dtmldir
-from utils import _getAuthenticatedUser
-from utils import getToolByName
-from utils import UniqueObject
+from Products.CMFCore.exceptions import AccessControl_Unauthorized
+from Products.CMFCore.exceptions import BadRequest
+from Products.CMFCore.interfaces import IMembershipTool
+from Products.CMFCore.interfaces import ISiteRoot
+from Products.CMFCore.permissions import AccessContentsInformation
+from Products.CMFCore.permissions import ChangeLocalRoles
+from Products.CMFCore.permissions import ListPortalMembers
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.permissions import ManageUsers
+from Products.CMFCore.permissions import SetOwnPassword
+from Products.CMFCore.permissions import View
+from Products.CMFCore.utils import _checkPermission
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import _getAuthenticatedUser
+from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.utils import UniqueObject
 
 logger = logging.getLogger('CMFCore.MembershipTool')
 

Modified: Products.CMFCore/trunk/Products/CMFCore/PortalContent.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/PortalContent.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/PortalContent.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,20 +15,20 @@
 $Id$
 """
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import aq_base
-from Globals import InitializeClass
+from App.class_init import default__class_init__ as InitializeClass
 from OFS.SimpleItem import SimpleItem
 from zope.interface import implements
 
-from CMFCatalogAware import CMFCatalogAware
-from DynamicType import DynamicType
-from exceptions import NotFound
-from exceptions import ResourceLockedError
-from interfaces import IContentish
-from permissions import FTPAccess
-from permissions import View
-from utils import Message as _
+from Products.CMFCore.CMFCatalogAware import CMFCatalogAware
+from Products.CMFCore.DynamicType import DynamicType
+from Products.CMFCore.exceptions import NotFound
+from Products.CMFCore.exceptions import ResourceLockedError
+from Products.CMFCore.interfaces import IContentish
+from Products.CMFCore.permissions import FTPAccess
+from Products.CMFCore.permissions import View
+from Products.CMFCore.utils import Message as _
 
 
 class PortalContent(DynamicType, CMFCatalogAware, SimpleItem):

Modified: Products.CMFCore/trunk/Products/CMFCore/PortalFolder.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/PortalFolder.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/PortalFolder.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -20,32 +20,32 @@
 import re
 from warnings import warn
 
-from AccessControl import ClassSecurityInfo
-from AccessControl import getSecurityManager
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from AccessControl.SecurityManagement import getSecurityManager
 from Acquisition import aq_parent, aq_inner, aq_base
-from Globals import InitializeClass
+from App.class_init import default__class_init__ as InitializeClass
 from OFS.Folder import Folder
 from OFS.OrderSupport import OrderSupport
 from zope.component.factory import Factory
 from zope.interface import implements
 
-from CMFCatalogAware import CMFCatalogAware
-from DynamicType import DynamicType
-from exceptions import AccessControl_Unauthorized
-from exceptions import BadRequest
-from exceptions import zExceptions_Unauthorized
-from interfaces import IFolderish
-from interfaces import IMutableMinimalDublinCore
-from interfaces import ISiteRoot
-from permissions import AddPortalContent
-from permissions import AddPortalFolders
-from permissions import DeleteObjects
-from permissions import ListFolderContents
-from permissions import ManagePortal
-from permissions import ManageProperties
-from permissions import View
-from utils import _checkPermission
-from utils import getToolByName
+from Products.CMFCore.CMFCatalogAware import CMFCatalogAware
+from Products.CMFCore.DynamicType import DynamicType
+from Products.CMFCore.exceptions import AccessControl_Unauthorized
+from Products.CMFCore.exceptions import BadRequest
+from Products.CMFCore.exceptions import zExceptions_Unauthorized
+from Products.CMFCore.interfaces import IFolderish
+from Products.CMFCore.interfaces import IMutableMinimalDublinCore
+from Products.CMFCore.interfaces import ISiteRoot
+from Products.CMFCore.permissions import AddPortalContent
+from Products.CMFCore.permissions import AddPortalFolders
+from Products.CMFCore.permissions import DeleteObjects
+from Products.CMFCore.permissions import ListFolderContents
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.permissions import ManageProperties
+from Products.CMFCore.permissions import View
+from Products.CMFCore.utils import _checkPermission
+from Products.CMFCore.utils import getToolByName
 
 
 class PortalFolderBase(DynamicType, CMFCatalogAware, Folder):

Modified: Products.CMFCore/trunk/Products/CMFCore/PortalObject.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/PortalObject.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/PortalObject.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,23 +15,23 @@
 $Id$
 """
 
+from App.class_init import default__class_init__ as InitializeClass
 from five.localsitemanager.registry import PersistentComponents
-from Globals import InitializeClass
 from Products.Five.component.interfaces import IObjectManagerSite
 from zope.app.publication.zopepublication import BeforeTraverseEvent
 from zope.component.interfaces import ComponentLookupError
 from zope.event import notify
 from zope.interface import implements
 
-from interfaces import ISiteRoot
-from permissions import AddPortalMember
-from permissions import SetOwnPassword
-from permissions import SetOwnProperties
-from permissions import MailForgottenPassword
-from permissions import RequestReview
-from permissions import ReviewPortalContent
-from PortalFolder import PortalFolder
-from Skinnable import SkinnableObjectManager
+from Products.CMFCore.interfaces import ISiteRoot
+from Products.CMFCore.permissions import AddPortalMember
+from Products.CMFCore.permissions import SetOwnPassword
+from Products.CMFCore.permissions import SetOwnProperties
+from Products.CMFCore.permissions import MailForgottenPassword
+from Products.CMFCore.permissions import RequestReview
+from Products.CMFCore.permissions import ReviewPortalContent
+from Products.CMFCore.PortalFolder import PortalFolder
+from Products.CMFCore.Skinnable import SkinnableObjectManager
 
 PORTAL_SKINS_TOOL_ID = 'portal_skins'
 

Modified: Products.CMFCore/trunk/Products/CMFCore/RegistrationTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/RegistrationTool.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/RegistrationTool.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,26 +15,26 @@
 $Id$
 """
 
+from random import choice
 import re
-from random import choice
 
-from AccessControl import ClassSecurityInfo
 from AccessControl.requestmethod import postonly
-from Globals import DTMLFile
-from Globals import InitializeClass
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.SimpleItem import SimpleItem
 from zope.interface import implements
 
-from interfaces import IRegistrationTool
-from permissions import AddPortalMember
-from permissions import MailForgottenPassword
-from permissions import ManagePortal
-from utils import _checkPermission
-from utils import _dtmldir
-from utils import _limitGrantedRoles
-from utils import getToolByName
-from utils import Message as _
-from utils import UniqueObject
+from Products.CMFCore.interfaces import IRegistrationTool
+from Products.CMFCore.permissions import AddPortalMember
+from Products.CMFCore.permissions import MailForgottenPassword
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.utils import _checkPermission
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import _limitGrantedRoles
+from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.utils import Message as _
+from Products.CMFCore.utils import UniqueObject
 
 
 class RegistrationTool(UniqueObject, SimpleItem):

Modified: Products.CMFCore/trunk/Products/CMFCore/Skinnable.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/Skinnable.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/Skinnable.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -22,9 +22,9 @@
 from thread import get_ident
 from warnings import warn
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import aq_base
-from Globals import InitializeClass
+from App.class_init import default__class_init__ as InitializeClass
 from OFS.ObjectManager import ObjectManager
 from ZODB.POSException import ConflictError
 

Modified: Products.CMFCore/trunk/Products/CMFCore/SkinsContainer.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/SkinsContainer.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/SkinsContainer.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,14 +15,14 @@
 $Id$
 """
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import aq_base
-from Globals import InitializeClass
+from App.class_init import default__class_init__ as InitializeClass
 from zope.interface import implements
 
-from exceptions import SkinPathError
-from interfaces import ISkinsContainer
-from permissions import AccessContentsInformation
+from Products.CMFCore.exceptions import SkinPathError
+from Products.CMFCore.interfaces import ISkinsContainer
+from Products.CMFCore.permissions import AccessContentsInformation
 
 
 class SkinsContainer:

Modified: Products.CMFCore/trunk/Products/CMFCore/SkinsTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/SkinsTool.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/SkinsTool.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -14,34 +14,34 @@
 
 $Id$
 """
+from difflib import unified_diff
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import aq_base
 from DateTime import DateTime
-from Globals import DTMLFile
-from Globals import InitializeClass
-from Globals import PersistentMapping
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
+import Globals  # for data
 from OFS.DTMLMethod import DTMLMethod
 from OFS.Folder import Folder
 from OFS.Image import Image
-from OFS.ObjectManager import REPLACEABLE
+from Persistence import PersistentMapping
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
 from Products.PythonScripts.PythonScript import PythonScript
 from zope.interface import implements
 
-from ActionProviderBase import ActionProviderBase
-from DirectoryView import base_ignore
-from DirectoryView import ignore
-from DirectoryView import ignore_re
-from interfaces import ISkinsTool
-from permissions import AccessContentsInformation
-from permissions import ManagePortal
-from permissions import View
-from SkinsContainer import SkinsContainer
-from utils import _dtmldir
-from utils import getToolByName
-from utils import UniqueObject
-from difflib import unified_diff
+from Products.CMFCore.ActionProviderBase import ActionProviderBase
+from Products.CMFCore.DirectoryView import base_ignore
+from Products.CMFCore.DirectoryView import ignore
+from Products.CMFCore.DirectoryView import ignore_re
+from Products.CMFCore.interfaces import ISkinsTool
+from Products.CMFCore.permissions import AccessContentsInformation
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.permissions import View
+from Products.CMFCore.SkinsContainer import SkinsContainer
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.utils import UniqueObject
 
 def modifiedOptions():
     # Remove the existing "Properties" option and add our own.
@@ -221,7 +221,7 @@
         return None
 
     # Make the PUT_factory replaceable
-    PUT_factory__replaceable__ = REPLACEABLE
+    PUT_factory__replaceable__ = Globals.REPLACEABLE
 
 
     security.declarePrivate('testSkinPath')

Modified: Products.CMFCore/trunk/Products/CMFCore/TypesTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/TypesTool.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/TypesTool.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -18,13 +18,12 @@
 import logging
 from warnings import warn
 
-import Products
-from AccessControl import ClassSecurityInfo
-from AccessControl import getSecurityManager
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from AccessControl.SecurityManagement import getSecurityManager
 from Acquisition import aq_base
 from Acquisition import aq_get
-from Globals import DTMLFile
-from Globals import InitializeClass
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.Folder import Folder
 from OFS.ObjectManager import IFAwareObjectManager
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile
@@ -38,23 +37,23 @@
 from zope.interface import implements
 from zope.lifecycleevent import ObjectCreatedEvent
 
-from ActionProviderBase import ActionProviderBase
-from exceptions import AccessControl_Unauthorized
-from exceptions import BadRequest
-from exceptions import zExceptions_Unauthorized
-from Expression import Expression
-from interfaces import IAction
-from interfaces import ITypeInformation
-from interfaces import ITypesTool
-from permissions import AccessContentsInformation
-from permissions import AddPortalContent
-from permissions import ManagePortal
-from permissions import View
-from utils import _checkPermission
-from utils import _dtmldir
-from utils import _wwwdir
-from utils import SimpleItemWithProperties
-from utils import UniqueObject
+from Products.CMFCore.ActionProviderBase import ActionProviderBase
+from Products.CMFCore.exceptions import AccessControl_Unauthorized
+from Products.CMFCore.exceptions import BadRequest
+from Products.CMFCore.exceptions import zExceptions_Unauthorized
+from Products.CMFCore.Expression import Expression
+from Products.CMFCore.interfaces import IAction
+from Products.CMFCore.interfaces import ITypeInformation
+from Products.CMFCore.interfaces import ITypesTool
+from Products.CMFCore.permissions import AccessContentsInformation
+from Products.CMFCore.permissions import AddPortalContent
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.permissions import View
+from Products.CMFCore.utils import _checkPermission
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import _wwwdir
+from Products.CMFCore.utils import SimpleItemWithProperties
+from Products.CMFCore.utils import UniqueObject
 
 logger = logging.getLogger('CMFCore.TypesTool')
 
@@ -626,6 +625,7 @@
     def all_meta_types(self, interfaces=None):
         # this is a workaround and should be removed again if allowedTypes
         # have an interface we can use in _product_interfaces
+        import Products
         all = TypesTool.inheritedAttribute('all_meta_types')(self)
         others = [ mt for mt in Products.meta_types
                    if mt['name'] in allowedTypes ]
@@ -640,6 +640,7 @@
         """Create a TypeInformation in self.
         """
         # BBB: typeinfo_name is ignored
+        import Products
         if not id:
             raise BadRequest('An id is required.')
         for mt in Products.meta_types:

Modified: Products.CMFCore/trunk/Products/CMFCore/URLTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/URLTool.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/URLTool.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,20 +15,20 @@
 $Id$
 """
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import aq_inner
 from Acquisition import aq_parent
-from Globals import DTMLFile
-from Globals import InitializeClass
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.SimpleItem import SimpleItem
 from zope.interface import implements
 
-from ActionProviderBase import ActionProviderBase
-from interfaces import IURLTool
-from permissions import ManagePortal
-from permissions import View
-from utils import _dtmldir
-from utils import UniqueObject
+from Products.CMFCore.ActionProviderBase import ActionProviderBase
+from Products.CMFCore.interfaces import IURLTool
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.permissions import View
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import UniqueObject
 
 
 class URLTool(UniqueObject, SimpleItem, ActionProviderBase):

Modified: Products.CMFCore/trunk/Products/CMFCore/UndoTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/UndoTool.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/UndoTool.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,21 +15,21 @@
 $Id$
 """
 
-from AccessControl import ClassSecurityInfo
-from Globals import DTMLFile
-from Globals import InitializeClass
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.SimpleItem import SimpleItem
 from zope.interface import implements
 
-from exceptions import AccessControl_Unauthorized
-from interfaces import IUndoTool
-from permissions import ListUndoableChanges
-from permissions import ManagePortal
-from utils import _checkPermission
-from utils import _dtmldir
-from utils import _getAuthenticatedUser
-from utils import registerToolInterface
-from utils import UniqueObject
+from Products.CMFCore.exceptions import AccessControl_Unauthorized
+from Products.CMFCore.interfaces import IUndoTool
+from Products.CMFCore.permissions import ListUndoableChanges
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.utils import _checkPermission
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import _getAuthenticatedUser
+from Products.CMFCore.utils import registerToolInterface
+from Products.CMFCore.utils import UniqueObject
 
 
 class UndoTool(UniqueObject, SimpleItem):

Modified: Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -18,32 +18,32 @@
 import sys
 from warnings import warn
 
-from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from AccessControl.requestmethod import postonly
 from Acquisition import aq_base, aq_inner, aq_parent
-from Globals import DTMLFile
-from Globals import InitializeClass
-from Globals import PersistentMapping
+from App.class_init import default__class_init__ as InitializeClass
+from App.special_dtml import DTMLFile
 from OFS.Folder import Folder
 from OFS.ObjectManager import IFAwareObjectManager
+from Persistence import PersistentMapping
 from zope.event import notify
 from zope.interface import implements
 
-from ActionProviderBase import ActionProviderBase
-from interfaces import IConfigurableWorkflowTool
-from interfaces import IWorkflowDefinition
-from interfaces import IWorkflowTool
-from permissions import ManagePortal
-from utils import _dtmldir
-from utils import getToolByName
-from utils import Message as _
-from utils import UniqueObject
-from WorkflowCore import ActionRaisedExceptionEvent
-from WorkflowCore import ActionSucceededEvent
-from WorkflowCore import ActionWillBeInvokedEvent
-from WorkflowCore import ObjectDeleted
-from WorkflowCore import ObjectMoved
-from WorkflowCore import WorkflowException
+from Products.CMFCore.ActionProviderBase import ActionProviderBase
+from Products.CMFCore.interfaces import IConfigurableWorkflowTool
+from Products.CMFCore.interfaces import IWorkflowDefinition
+from Products.CMFCore.interfaces import IWorkflowTool
+from Products.CMFCore.permissions import ManagePortal
+from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.utils import Message as _
+from Products.CMFCore.utils import UniqueObject
+from Products.CMFCore.WorkflowCore import ActionRaisedExceptionEvent
+from Products.CMFCore.WorkflowCore import ActionSucceededEvent
+from Products.CMFCore.WorkflowCore import ActionWillBeInvokedEvent
+from Products.CMFCore.WorkflowCore import ObjectDeleted
+from Products.CMFCore.WorkflowCore import ObjectMoved
+from Products.CMFCore.WorkflowCore import WorkflowException
 
 _marker = []  # Create a new marker object.
 

Modified: Products.CMFCore/trunk/Products/CMFCore/permissions.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/permissions.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/permissions.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -15,12 +15,11 @@
 $Id$
 """
 
-import Products
-from AccessControl import ModuleSecurityInfo
 from AccessControl import Permissions
 from AccessControl.Permission import _registeredPermissions
 from AccessControl.Permission import pname
-from Globals import ApplicationDefaultPermissions
+from AccessControl.SecurityInfo import ModuleSecurityInfo
+from App.class_init import ApplicationDefaultPermissions
 
 
 security = ModuleSecurityInfo('Products.CMFCore.permissions')
@@ -61,6 +60,7 @@
     '''
     Sets the defaults roles for a permission.
     '''
+    import Products
     # XXX This ought to be in AccessControl.SecurityInfo.
     registered = _registeredPermissions
     if not registered.has_key(permission):

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_DirectoryView.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_DirectoryView.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_DirectoryView.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -6,8 +6,6 @@
 from os.path import join
 from tempfile import mktemp
 
-from Globals import DevelopmentMode
-
 from Products.CMFCore.tests import _globals
 from Products.CMFCore.tests.base.dummy import DummyFolder
 from Products.CMFCore.tests.base.testcase import FSDVTest
@@ -285,10 +283,8 @@
         self.failUnless(isinstance(testfolder, DummyDirectoryViewSurrogate))
 
 
-if DevelopmentMode:
+class DebugModeTests(WritableFSDVTest):
 
-  class DebugModeTests(WritableFSDVTest):
-
     def setUp( self ):
         WritableFSDVTest.setUp(self)
         self.test1path = join(self.skin_path_name,'test1.py')
@@ -318,7 +314,8 @@
     def test_NewFolder( self ):
         # See if a new folder shows up
         from Products.CMFCore.DirectoryView import DirectoryViewSurrogate
-        self.failUnless(isinstance(self.ob.fake_skin.test3,DirectoryViewSurrogate))
+        self.failUnless(isinstance(self.ob.fake_skin.test3,
+                                   DirectoryViewSurrogate))
         self.ob.fake_skin.test3.objectIds()
 
     def test_DeleteMethod( self ):
@@ -350,20 +347,17 @@
         rmdir(self.test3path)
         self.failIf(hasattr(self.ob.fake_skin,'test3'))
 
-else:
 
-    class DebugModeTests(unittest.TestCase):
-        pass
-
-
 def test_suite():
-    return unittest.TestSuite((
-        unittest.makeSuite(DirectoryViewPathTests),
-        unittest.makeSuite(DirectoryViewTests),
-        unittest.makeSuite(DirectoryViewIgnoreTests),
-        unittest.makeSuite(DirectoryViewFolderTests),
-        unittest.makeSuite(DebugModeTests),
-        ))
+    import Globals # for data
+    tests = [unittest.makeSuite(DirectoryViewPathTests),
+             unittest.makeSuite(DirectoryViewTests),
+             unittest.makeSuite(DirectoryViewIgnoreTests),
+             unittest.makeSuite(DirectoryViewFolderTests),
+            ]
+    if Globals.DevelopmentMode:
+        tests.append(unittest.makeSuite(DebugModeTests))
+    return unittest.TestSuite(tests)
 
 if __name__ == '__main__':
     unittest.main(defaultTest='test_suite')

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSecurity.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSecurity.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSecurity.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -21,7 +21,6 @@
 from time import sleep
 
 from AccessControl.Permission import Permission
-from Globals import DevelopmentMode
 
 from Products.CMFCore.tests.base.testcase import LogInterceptor
 from Products.CMFCore.tests.base.testcase import RequestTest
@@ -78,8 +77,10 @@
         # check a normal method is as we'd expect
         self._checkSettings(self.ob.fake_skin.test1,'View',1,[])
         # now do some checks on the method with FS permissions
-        self._checkSettings(self.ob.fake_skin.test4,'View',1,['Manager','Owner'])
-        self._checkSettings(self.ob.fake_skin.test4,'Access contents information',0,[])
+        self._checkSettings(self.ob.fake_skin.test4,
+                            'View',1,['Manager','Owner'])
+        self._checkSettings(self.ob.fake_skin.test4,
+                            'Access contents information',0,[])
 
     def test_invalidPermissionNames( self ):
         import logging
@@ -102,85 +103,81 @@
         # check baseline
         self._checkSettings(self.ob.fake_skin.test5,'View',1,[])
 
-if DevelopmentMode:
+class DebugModeTests( FSSecurityBase ):
 
-    class DebugModeTests( FSSecurityBase ):
+    def test_addPRM( self ):
+        # Test adding of a .metadata
+        # baseline
+        self._checkSettings(self.ob.fake_skin.test5,'View',1,[])
+        # add
+        self._writeFile('test5.py.metadata',
+                        '[security]\nView = 1:Manager')
+        # test
+        self._checkSettings(self.ob.fake_skin.test5,'View',1,['Manager'])
 
-        def test_addPRM( self ):
-            # Test adding of a .metadata
-            # baseline
-            self._checkSettings(self.ob.fake_skin.test5,'View',1,[])
-            # add
-            self._writeFile('test5.py.metadata',
-                            '[security]\nView = 1:Manager')
-            # test
-            self._checkSettings(self.ob.fake_skin.test5,'View',1,['Manager'])
+    def test_delPRM( self ):
+        # Test deleting of a .metadata
+        # baseline
+        self._checkSettings(self.ob.fake_skin.test5,'View',1,[])
+        self._writeFile('test5.py.metadata',
+                        '[security]\nView = 1:Manager')
+        self._checkSettings(self.ob.fake_skin.test5,'View',1,['Manager'])
+        # delete
+        self._deleteFile('test5.py.metadata')
+        # test
+        self._checkSettings(self.ob.fake_skin.test5,'View',1,[])
 
-        def test_delPRM( self ):
-            # Test deleting of a .metadata
-            # baseline
-            self._checkSettings(self.ob.fake_skin.test5,'View',1,[])
-            self._writeFile('test5.py.metadata',
-                            '[security]\nView = 1:Manager')
-            self._checkSettings(self.ob.fake_skin.test5,'View',1,['Manager'])
-            # delete
-            self._deleteFile('test5.py.metadata')
-            # test
-            self._checkSettings(self.ob.fake_skin.test5,'View',1,[])
+    def test_editPRM( self ):
+        # Test editing a .metadata
+        # we need to wait a second here or the mtime will actually
+        # have the same value as set in the last test.
+        # Maybe someone brainier than me can figure out a way to make this
+        # suck less :-(
+        sleep(1)
 
-        def test_editPRM( self ):
-            # Test editing a .metadata
-            # we need to wait a second here or the mtime will actually
-            # have the same value as set in the last test.
-            # Maybe someone brainier than me can figure out a way to make this
-            # suck less :-(
-            sleep(1)
+        # baseline
+        self._writeFile('test5.py.metadata',
+                        '[security]\nView = 0:Manager,Anonymous')
+        self._checkSettings(self.ob.fake_skin.test5,
+                            'View',0,['Manager','Anonymous'])
+        # edit
+        self._writeFile('test5.py.metadata',
+                        '[security]\nView = 1:Manager')
+        # test
+        self._checkSettings(self.ob.fake_skin.test5,'View',1,['Manager'])
 
-            # baseline
-            self._writeFile('test5.py.metadata',
-                            '[security]\nView = 0:Manager,Anonymous')
-            self._checkSettings(self.ob.fake_skin.test5,'View',0,['Manager','Anonymous'])
-            # edit
-            self._writeFile('test5.py.metadata',
-                            '[security]\nView = 1:Manager')
-            # test
-            self._checkSettings(self.ob.fake_skin.test5,'View',1,['Manager'])
+    def test_DelAddEditPRM( self ):
+        # Test deleting, then adding, then editing a .metadata file
+        # baseline
+        self._writeFile('test5.py.metadata','[security]\nView = 0:Manager')
+        # delete
+        self._deleteFile('test5.py.metadata')
+        self._checkSettings(self.ob.fake_skin.test5,'View',1,[])
 
-        def test_DelAddEditPRM( self ):
-            # Test deleting, then adding, then editing a .metadata file
-            # baseline
-            self._writeFile('test5.py.metadata','[security]\nView = 0:Manager')
-            # delete
-            self._deleteFile('test5.py.metadata')
-            self._checkSettings(self.ob.fake_skin.test5,'View',1,[])
+        # we need to wait a second here or the mtime will actually
+        # have the same value, no human makes two edits in less
+        # than a second ;-)
+        sleep(1)
 
-            # we need to wait a second here or the mtime will actually
-            # have the same value, no human makes two edits in less
-            # than a second ;-)
-            sleep(1)
+        # add back
+        self._writeFile('test5.py.metadata',
+                        '[security]\nView = 0:Manager,Anonymous')
+        self._checkSettings(self.ob.fake_skin.test5,
+                            'View',0,['Manager','Anonymous'])
 
-            # add back
-            self._writeFile('test5.py.metadata',
-                            '[security]\nView = 0:Manager,Anonymous')
-            self._checkSettings(self.ob.fake_skin.test5,'View',0,['Manager','Anonymous'])
+        # edit
+        self._writeFile('test5.py.metadata',
+                        '[security]\nView = 1:Manager')
+        # test
+        self._checkSettings(self.ob.fake_skin.test5,'View',1,['Manager'])
 
-            # edit
-            self._writeFile('test5.py.metadata',
-                            '[security]\nView = 1:Manager')
-            # test
-            self._checkSettings(self.ob.fake_skin.test5,'View',1,['Manager'])
-
-else:
-
-    class DebugModeTests( FSSecurityBase ):
-        pass
-
-
 def test_suite():
-    return unittest.TestSuite((
-        unittest.makeSuite(FSSecurityTests),
-        unittest.makeSuite(DebugModeTests),
-        ))
+    import Globals # for data
+    tests = [unittest.makeSuite(FSSecurityTests)]
+    if Globals.DevelopmentMode:
+        tests.append(unittest.makeSuite(DebugModeTests))
 
+    return unittest.TestSuite(tests)
+
 if __name__ == '__main__':
     unittest.main(defaultTest='test_suite')

Modified: Products.CMFCore/trunk/Products/CMFCore/utils.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/utils.py	2008-12-27 19:43:26 UTC (rev 94383)
+++ Products.CMFCore/trunk/Products/CMFCore/utils.py	2008-12-27 20:52:41 UTC (rev 94384)
@@ -22,25 +22,24 @@
 from warnings import warn
 import sys
 
-from AccessControl import ClassSecurityInfo
-from AccessControl import getSecurityManager
-from AccessControl import ModuleSecurityInfo
 from AccessControl.Permission import Permission
 from AccessControl.PermissionRole import rolesForPermissionOn
 from AccessControl.Role import gather_permissions
+from AccessControl.SecurityInfo import ClassSecurityInfo
+from AccessControl.SecurityInfo import ModuleSecurityInfo
+from AccessControl.SecurityManagement import getSecurityManager
 from Acquisition.interfaces import IAcquirer
 from Acquisition import aq_get
 from Acquisition import aq_inner
 from Acquisition import aq_parent
 from Acquisition import Implicit
-from DateTime import DateTime
+from App.class_init import default__class_init__ as InitializeClass
+from App.Common import package_home
+from App.Dialogs import MessageDialog
+from App.ImageFile import ImageFile
+from App.special_dtml import HTMLFile
+from DateTime.DateTime import DateTime
 from ExtensionClass import Base
-from Globals import HTMLFile
-from Globals import ImageFile
-from Globals import InitializeClass
-from Globals import MessageDialog
-from Globals import package_home
-from Globals import UNIQUE
 from OFS.misc_ import misc_ as misc_images
 from OFS.misc_ import Misc_ as MiscImage
 from OFS.PropertyManager import PropertyManager
@@ -53,8 +52,8 @@
 from zope.dottedname.resolve import resolve as resolve_dotted_name
 from zope.i18nmessageid import MessageFactory
 
-from exceptions import AccessControl_Unauthorized
-from exceptions import NotFound
+from Products.CMFCore.exceptions import AccessControl_Unauthorized
+from Products.CMFCore.exceptions import NotFound
 
 SUBTEMPLATE = '__SUBTEMPLATE__'
 
@@ -505,9 +504,13 @@
 
     """ Base class for objects which cannot be "overridden" / shadowed.
     """
-    __replaceable__ = UNIQUE
+    def _getUNIQUE(self):
+        import Globals # for data
+        return Globals.UNIQUE
 
+    __replaceable__ = property(_getUNIQUE,)
 
+
 class SimpleItemWithProperties (PropertyManager, SimpleItem):
     """
     A common base class for objects with configurable



More information about the Checkins mailing list