[Zope-Checkins] CVS: Packages/ZConfig - loader.py:1.1.2.19

Fred L. Drake, Jr. fred@zope.com
Fri, 20 Dec 2002 16:18:08 -0500


Update of /cvs-repository/Packages/ZConfig
In directory cvs.zope.org:/tmp/cvs-serv25503

Modified Files:
      Tag: zconfig-schema-devel-branch
	loader.py 
Log Message:
BaseLoader:
- loadURL():  Make sure we close a resource we opened
- loadResource():  Provide a default implementation with a useful
  message for subclass implementors.


=== Packages/ZConfig/loader.py 1.1.2.18 => 1.1.2.19 ===
--- Packages/ZConfig/loader.py:1.1.2.18	Fri Dec 20 16:09:51 2002
+++ Packages/ZConfig/loader.py	Fri Dec 20 16:18:07 2002
@@ -47,7 +47,10 @@
     def loadURL(self, url):
         url = self.normalizeURL(url)
         r = self.openResource(url)
-        return self.loadResource(r)
+        try:
+            return self.loadResource(r)
+        finally:
+            r.close()
 
     def loadFile(self, file, url=None):
         if not url:
@@ -56,6 +59,10 @@
         return self.loadResource(r)
 
     # utilities
+
+    def loadResource(self, resource):
+        raise NotImpementedError(
+            "BaseLoader.loadResource() must be overridden by a subclass")
 
     def openResource(self, url):
         file = urllib2.urlopen(url)