]> granicus.if.org Git - python/commitdiff
Two suggested features by Sjoerd:
authorGuido van Rossum <guido@python.org>
Thu, 5 Feb 1998 16:22:27 +0000 (16:22 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 5 Feb 1998 16:22:27 +0000 (16:22 +0000)
- use the tempcache in the open() method, too.

- use the "unwrap"ped url as key for the tempcache.

Lib/urllib.py

index 35ba479fe22f40a2d4eba9f168f657d6d7db2993..5363f3c711101b01423144143f05a73ec33bcbb1 100644 (file)
@@ -134,6 +134,10 @@ class URLopener:
        # Use URLopener().open(file) instead of open(file, 'r')
        def open(self, fullurl, data=None):
                fullurl = unwrap(fullurl)
+               if self.tempcache and self.tempcache.has_key(fullurl):
+                       filename, headers = self.tempcache[fullurl]
+                       fp = open(filename, 'rb')
+                       return addinfourl(fp, headers, fullurl)
                type, url = splittype(fullurl)
                if not type: type = 'file'
                self.openedurl = '%s:%s' % (type, url)
@@ -168,14 +172,11 @@ class URLopener:
        # retrieve(url) returns (filename, None) for a local object
        # or (tempfilename, headers) for a remote object
        def retrieve(self, url, filename=None):
+               url = unwrap(url)
+               self.openedurl = url
                if self.tempcache and self.tempcache.has_key(url):
                        return self.tempcache[url]
-               url1 = unwrap(url)
-               self.openedurl = url1
-               if self.tempcache and self.tempcache.has_key(url1):
-                       self.tempcache[url] = self.tempcache[url1]
-                       return self.tempcache[url1]
-               type, url1 = splittype(url1)
+               type, url1 = splittype(url)
                if not filename and (not type or type == 'file'):
                        try:
                                fp = self.open_local_file(url1)