[Zope3-checkins] CVS: Packages/ZConfig - Context.py:1.15.10.5 __init__.py:1.3.10.3 loader.py:1.1.2.3
Fred L. Drake, Jr.
fred@zope.com
Tue, 10 Dec 2002 14:50:04 -0500
Update of /cvs-repository/Packages/ZConfig
In directory cvs.zope.org:/tmp/cvs-serv1122
Modified Files:
Tag: zconfig-schema-devel-branch
Context.py __init__.py loader.py
Log Message:
load() and loadfile() are now called loadURL() and loadFile(), to be more
consistent with the other names used.
More refactoring of resource handling; the loadURL() and loadFile() methods
are each only implemented once! loadResource() is the specialized method.
=== Packages/ZConfig/Context.py 1.15.10.4 => 1.15.10.5 ===
--- Packages/ZConfig/Context.py:1.15.10.4 Tue Dec 10 13:50:11 2002
+++ Packages/ZConfig/Context.py Tue Dec 10 14:50:03 2002
@@ -35,24 +35,10 @@
from ZConfig.cfgparser import ZConfigParser
ZConfigParser(resource, self).parse(section)
- # public API
-
- def load(self, url):
- """Load a resource from a URL or pathname."""
- url = self.normalizeURL(url)
- top = self.createToplevelSection(url)
- self._all_sections.append(top)
- self._parse_url(url, top)
- self._finish()
- return top
-
- def loadfile(self, file, url=None):
- if not url:
- url = self._url_from_file(file)
- top = self.createToplevelSection(url)
+ def loadResource(self, resource):
+ top = self.createToplevelSection(resource.url)
self._all_sections.append(top)
- r = self.createResource(file, url)
- self.parse(r, top)
+ self.parse(resource, top)
self._finish()
return top
@@ -98,17 +84,6 @@
return newsect
# internal helpers
-
- def _parse_url(self, url, section):
- url, fragment = urlparse.urldefrag(url)
- if fragment:
- raise ZConfig.ConfigurationError(
- "fragment identifiers are not currently supported")
- r = self.openResource(url)
- try:
- self.parse(r, section)
- finally:
- r.close()
def _finish(self):
# Resolve section delegations
=== Packages/ZConfig/__init__.py 1.3.10.2 => 1.3.10.3 ===
--- Packages/ZConfig/__init__.py:1.3.10.2 Tue Dec 10 14:16:49 2002
+++ Packages/ZConfig/__init__.py Tue Dec 10 14:50:03 2002
@@ -16,21 +16,21 @@
$Id$
"""
-def load(url):
+def loadURL(url):
import Context
- return Context.Context().load(url)
+ return Context.Context().loadURL(url)
-def loadfile(file, url=None):
+def loadFile(file, url=None):
import Context
- return Context.Context().loadfile(file, url)
+ return Context.Context().loadFile(file, url)
-def loadschema(url):
+def loadSchema(url):
import loader
- return loader.SchemaLoader().load(url)
+ return loader.SchemaLoader().loadURL(url)
-def loadschemafile(file, url=None):
+def loadSchemaFile(file, url=None):
import loader
- return loader.SchemaLoader().loadfile(file, url)
+ return loader.SchemaLoader().loadFile(file, url)
class ConfigurationError(Exception):
=== Packages/ZConfig/loader.py 1.1.2.2 => 1.1.2.3 ===
--- Packages/ZConfig/loader.py:1.1.2.2 Tue Dec 10 11:28:03 2002
+++ Packages/ZConfig/loader.py Tue Dec 10 14:50:03 2002
@@ -21,14 +21,16 @@
def createResource(self, file, url):
return Resource(file, url)
- def load(self, url):
- pass
+ def loadURL(self, url):
+ url = self.normalizeURL(url)
+ r = self.openResource(url)
+ return self.loadResource(r)
- def loadfile(self, file, url=None):
+ def loadFile(self, file, url=None):
if not url:
- name = getattr(file, "name", None)
- if name and name[0] != "<" and name[-1] != ">":
- url = "file://" + urllib.pathname2url(os.path.abspath(name))
+ url = self._url_from_file(file)
+ r = self.createResource(file, url)
+ return self.loadResource(r)
# utilities
@@ -44,6 +46,11 @@
if not parts[0]:
raise ValueError("invalid URL, or file does not exist:\n"
+ repr(url))
+ if url:
+ url, fragment = urlparse.urldefrag(url)
+ if fragment:
+ raise ZConfig.ConfigurationError(
+ "fragment identifiers are not currently supported")
return url
def _url_from_file(self, file):
@@ -55,21 +62,19 @@
class SchemaLoader(BaseLoader):
- def load(self, url):
- url = self.normalizeURL(url)
- r = self.openResource(url)
- return self._load_resource(r)
-
- def loadfile(self, file, url=None):
- if not url:
- url = self._url_from_file(file)
- r = self.createResource(file, url)
- return self._load_resource(r)
-
- def _load_resource(self, resource):
+ def loadResource(self, resource):
from SchemaParser import SchemaParser
parser = SchemaParser()
return parser.parseStream(resource.file)
+
+
+class ConfigLoader(BaseLoader):
+ def __init__(self, schema):
+ BaseLoader.__init__(self)
+ self.schema = schema
+
+ def loadResource(self, resource):
+ raise NotImpementedError
class Resource: