[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