[z3-checkins] r14528 - z3/zopejam/trunk/src/zcmledit

hathawsh at codespeak.net hathawsh at codespeak.net
Tue Jul 12 07:27:25 CEST 2005


Author: hathawsh
Date: Tue Jul 12 07:27:23 2005
New Revision: 14528

Modified:
   z3/zopejam/trunk/src/zcmledit/directives.py
Log:
Use directive.getAbsolutePackageName() rather than directive.abs_package.

Most directives don't affect the package context, so 
directive.abs_package was rarely the right attribute to use.


Modified: z3/zopejam/trunk/src/zcmledit/directives.py
==============================================================================
--- z3/zopejam/trunk/src/zcmledit/directives.py	(original)
+++ z3/zopejam/trunk/src/zcmledit/directives.py	Tue Jul 12 07:27:23 2005
@@ -15,25 +15,25 @@
 
     def __init__(self, element):
         self.element = element
-        self.abs_package = None
         self.errors = []
+        self._abs_package = None
 
     def getInheritedPackageName(self):
         ancestor = self.element.parent
         while ancestor is not None:
-            res = ancestor.directive.abs_package
+            res = ancestor.directive._abs_package
             if res is not None:
                 return res
             ancestor = ancestor.parent
         return None
 
-    def prepareAbsolutePackage(self, package_attr=None):
-        """Determine the absolute package name, which may be None.
+    def setAbsolutePackage(self, package_attr):
+        """Set the absolute package name from a package attribute.
 
-        Stores in the abs_package attribute.
+        The package attribute may be absolute, relative, or not present.
         """
         if not package_attr:
-            self.abs_package = self.getInheritedPackageName()
+            self._abs_package = self.getInheritedPackageName()
         elif package_attr.startswith('.'):
             # Turn the relative package name into an absolute package
             # name.  In this case, the directive did specify a
@@ -41,16 +41,16 @@
             # name in this context.
             parent = self.getInheritedPackageName()
             try:
-                self.abs_package = join_package(parent, package_attr)
+                self._abs_package = join_package(parent, package_attr)
             except NameResolutionError, e:
-                self.abs_package = None
+                self._abs_package = None
                 self.errors.append('%s: %s' % (e.__class__.__name__, str(e)))
         else:
-            self.abs_package = package_attr
+            self._abs_package = package_attr
 
     def getAbsolutePackageName(self):
-        if self.abs_package is not None:
-            return self.abs_package
+        if self._abs_package is not None:
+            return self._abs_package
         return self.getInheritedPackageName()
 
 
@@ -65,7 +65,7 @@
     def update(self):
         self.errors = []
         self.package = self.element.data.get('package')
-        self.prepareAbsolutePackage(self.package)
+        self.setAbsolutePackage(self.package)
 
     def getInheritedPackageName(self):
         if self.element.parent is None:
@@ -110,16 +110,17 @@
             self.errors.append("Must specify only one of file or files")
         if not self.files and not self.file:
             self.file = 'configure.zcml'
-        self.prepareAbsolutePackage(self.package)
+        self.setAbsolutePackage(self.package)
 
         # Determine the filename pattern
         pattern = os.path.normpath(self.files or self.file)
         if not os.path.isabs(pattern):
             # convert to an absolute path
-            if self.abs_package:
+            abs_package = self.getAbsolutePackageName()
+            if abs_package:
                 try:
                     basepath = find_package(
-                        self.abs_package, self.project.pythonpath)
+                        abs_package, self.project.pythonpath)
                 except NameResolutionError, e:
                     basepath = None
                     self.errors.append(
@@ -160,7 +161,6 @@
         self.errors = []
         self.name = self.element.data.get('name')
         self.schema = self.element.data.get('schema')
-        self.prepareAbsolutePackage()
 
         ns = None
         parent = self.element.parent
@@ -177,7 +177,8 @@
         if self.schema:
             if self.schema.startswith('.'):
                 try:
-                    abs_schema = join_package(self.abs_package, self.schema)
+                    abs_package = self.getAbsolutePackageName()
+                    abs_schema = join_package(abs_package, self.schema)
                 except NameResolutionError, e:
                     abs_schema = None
                     self.errors.append(
@@ -264,13 +265,15 @@
     def __init__(self, ns, name, abs_schema):
         self.element = None
         self.errors = ()
-        self.abs_package = None
 
         self.name = name
         self.fullname = (ns, name)
         self.schema = abs_schema
         self.abs_schema = abs_schema
 
+    def getAbsolutePackageName(self):
+        return None
+
 
 def createBootstrapDirectives():
     """Returns a dictionary containing the bootstrap directive definitions"""


More information about the z3-checkins mailing list