You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@community.apache.org by se...@apache.org on 2016/01/29 12:32:21 UTC

svn commit: r1727539 - /comdev/reporter.apache.org/trunk/scripts/urlutils.py

Author: sebb
Date: Fri Jan 29 11:32:21 2016
New Revision: 1727539

URL: http://svn.apache.org/viewvc?rev=1727539&view=rev
Log:
Synch with projects.a.o version

Modified:
    comdev/reporter.apache.org/trunk/scripts/urlutils.py

Modified: comdev/reporter.apache.org/trunk/scripts/urlutils.py
URL: http://svn.apache.org/viewvc/comdev/reporter.apache.org/trunk/scripts/urlutils.py?rev=1727539&r1=1727538&r2=1727539&view=diff
==============================================================================
--- comdev/reporter.apache.org/trunk/scripts/urlutils.py (original)
+++ comdev/reporter.apache.org/trunk/scripts/urlutils.py Fri Jan 29 11:32:21 2016
@@ -7,6 +7,8 @@ import os
 from os.path import dirname, abspath, join, getmtime, basename
 import shutil
 import io
+import errno
+
 # Allow for Python2/3 differences
 try:
     from urllib.request import urlopen, Request
@@ -40,7 +42,11 @@ def mod_date(t):
     """
         get file mod date in suitable format for If-Modified-Since
         e.g. Thu, 15 Nov 2012 16:38:51 GMT
+        @param t: the time in seconds
+        @return:  None if t < 0
     """
+    if t < 0:
+        return None
     return time.strftime(_HTTP_TIME_FORMAT, time.gmtime(t))
 
 def getIfNewer(url, sinceTime, encoding=None, errors=None):
@@ -63,8 +69,12 @@ def getIfNewer(url, sinceTime, encoding=
         headers = {}
     response = None
     try:
+        print("%s %s" % (url, headers))
         req = Request(url, headers=headers)
         resp = urlopen(req)
+        # Debug - detect why json sometimes returned as HTML but no error code
+        print("STATUS %s" % resp.getcode()) # Works for Py2/3
+        print(resp.headers)
         try:
             lastMod = resp.headers['Last-Modified']
             if not lastMod: # e.g. responses to git blob-plain URLs don't seem to have dates
@@ -107,7 +117,9 @@ class UrlCache(object):
     def __file_mtime(self, filename):
         try:
             t = getmtime(filename)
-        except FileNotFoundError:
+        except OSError as e:
+            if not e.errno == errno.ENOENT:
+                raise e
             t = -1 # so cannot be confused with a valid mtime
         return t
 
@@ -133,13 +145,15 @@ class UrlCache(object):
         path = self.__getname(name)
         try:
             os.remove(path)
-        except FileNotFoundError:
-            pass
+        except OSError as e:
+            if not e.errno == errno.ENOENT:
+                raise e
         dotpath = self.__getname('.'+name)
         try:
             os.remove(dotpath)
-        except FileNotFoundError:
-            pass
+        except OSError as e:
+            if not e.errno == errno.ENOENT:
+                raise e
 
     def get(self, url, name, encoding=None, errors=None, useFileModTime=False):
         """
@@ -214,7 +228,7 @@ class UrlCache(object):
                     if fileTime > 0:
                         print("Downloaded new version of %s (%s > %s)" % (name, lastMod, sinceTime))
                     else:
-                        print("Downloaded new version of %s" % (name))
+                        print("Downloaded new version of %s (%s)" % (name, lastMod))
                 else:
                     print("Downloaded new version of %s (undated)" % (name))
             else: