You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@gump.apache.org by aj...@apache.org on 2003/09/26 22:35:21 UTC

cvs commit: jakarta-gump/python/gump __init__.py xmlutils.py document.py conf.py

ajack       2003/09/26 13:35:21

  Modified:    python/gump __init__.py xmlutils.py document.py conf.py
  Log:
  1) Trying to set UserAgent (to Jakarta-Gump/version) in order to tell SF.net (and others) who is calling
  Hoping SF.net's viewcvs will response raw to this
  2) Still trying to cope w/ bad projects (knock on of failures from 1 above)
  
  Revision  Changes    Path
  1.13      +32 -15    jakarta-gump/python/gump/__init__.py
  
  Index: __init__.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/__init__.py,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- __init__.py	26 Sep 2003 19:09:52 -0000	1.12
  +++ __init__.py	26 Sep 2003 20:35:21 -0000	1.13
  @@ -95,7 +95,7 @@
   log = logging.getLogger(__name__)
   
   from gump.xmlutils import SAXDispatcher
  -from gump.conf import dir, default
  +from gump.conf import dir, default, setting
   from gump.utils import *
   
   ###############################################################################
  @@ -116,6 +116,16 @@
   if os.path.exists(timestamp):
     mtime=time.localtime(os.path.getmtime(timestamp))
     default.date = time.strftime('%Y%m%d',mtime)
  +  
  +#
  +# Set the User Agent to be Gump...
  +#
  +class GumpURLopener(urllib.FancyURLopener):
  +    def __init__(self, *args):
  +        self.version = "Jakarta-Gump/"+setting.version
  +        urllib.FancyURLopener.__init__(self, *args)
  +
  +urllib._urlopener = GumpURLopener()
   
   ###############################################################################
   # Functions
  @@ -127,41 +137,48 @@
   def gumpPath(path):
     """returns the path absolutized relative to the base gump dir"""
   
  -  return os.path.normpath(os.path.join(dir.base,path))
  +  return os.path.abspath(os.path.join(dir.base,path))
   
   def gumpCache(href):
     """returns the path of the file in the href, cached if remote"""
   
     #if it's a local file get it locally
     if not href.startswith('http://'):
  -    newHref=gumpPath(href);
  +    cachedHrefFile=gumpPath(href);
     else:
  -    log.debug('url: ' + href)
  +    log.debug('Cache url: ' + href)
       if not os.path.exists(dir.cache):  os.mkdir(dir.cache)
   
       #the name of the cached descriptor
       quotedHref = urllib.quote_plus(href)
       #the path of the cached descriptor
  -    newHref = dir.cache+'/'+quotedHref
  +    cachedHrefFile = dir.cache+'/'+quotedHref
   
       #download the file if not present in the cache
  -    if os.path.exists(newHref):
  -      log.debug('using cached descriptor')
  -    else:
  +    usecached=0
  +    if settings.optimize or settings.optimizenetwork:
  +        if os.path.exists(cachedHrefFile):
  +          log.info('using cached descriptor for ' + href)
  +          usecached=1
  +          
  +    if not usecached:
         log.debug('caching...')
         log.info('downloading '+href)      
         try:
  -        urllib.urlretrieve(href, newHref)
  +        #
  +        # urllib ought do some (timestamp oriented) caching also...
  +        #
  +        urllib.urlretrieve(href, cachedHrefFile)
         except IOError, detail:
  -        log.error(detail)
  +        log.error('Failed to download ['+href+']. Details: ' + detail)
           try:
  -          os.remove(newHref)
  +          os.remove(cachedHrefFile)
           except:
             log.debug('No faulty cached file to remove')
         else: 
            log.debug('...done')
   
  -  return newHref
  +  return cachedHrefFile
   
   from gump.context import GumpContext
   
  
  
  
  1.4       +4 -0      jakarta-gump/python/gump/xmlutils.py
  
  Index: xmlutils.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/xmlutils.py,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- xmlutils.py	26 Sep 2003 19:25:35 -0000	1.3
  +++ xmlutils.py	26 Sep 2003 20:35:21 -0000	1.4
  @@ -278,6 +278,10 @@
   
     if f==None: f=StringIO.StringIO()
   
  +  # :TODO: Do hack for when content is bad and a parse fails
  +  # so the XML loader has to set element=None
  +  if not object: return
  +      
     attrs=[nodeName]
     elements=[]
     text=''
  
  
  
  1.43      +3 -3      jakarta-gump/python/gump/document.py
  
  Index: document.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/document.py,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- document.py	26 Sep 2003 19:09:52 -0000	1.42
  +++ document.py	26 Sep 2003 20:35:21 -0000	1.43
  @@ -260,7 +260,8 @@
       titledDataInTableXDoc(x,'Gump Preferred Workspace Version', setting.ws_version)
       titledDataInTableXDoc(x,'Java Command', context.javaCommand)
       titledDataInTableXDoc(x,'@@DATE@@', str(default.date))
  -    titledDataInTableXDoc(x,'Start Date/Time', workspace.startdatetime)
  +    titledDataInTableXDoc(x,'Start Date/Time', context.startdatetime)
  +    titledDataInTableXDoc(x,'Timezone', context.timezone)
       
       endTableXDoc(x)
       endSectionXDoc(x)                
  @@ -364,8 +365,7 @@
       footerXDoc(x)
       endXDoc(x)
           
  -    # Document the workspace XML
  -    
  +    # Document the workspace XML    
       f=open(getWorkspaceXMLAsTextDocument(workspace), 'w')
       xml = xmlize('workspace',workspace,f)
       f.close()  
  
  
  
  1.15      +7 -5      jakarta-gump/python/gump/conf.py
  
  Index: conf.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/conf.py,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- conf.py	25 Sep 2003 17:04:52 -0000	1.14
  +++ conf.py	26 Sep 2003 20:35:21 -0000	1.15
  @@ -106,13 +106,15 @@
   class setting:    
       """Configuration of hardcoded settings"""
       
  -    version="2.0.1-alpha-0003"
  +    version="2.0.1-alpha-0004"
       
       # :TODO: Add "minimum checks later..."
       ws_version="0.4"
       
   class switch:
  -    """Configuration of switches """    
  +    """Configuration of switches """   
  +    optimize=0 # Optimize (at risk to exact correctness) anywhere one can
  +    optimizenetwork=1 # Do least network traffic 
       failtesting=0 # Not testing.. 
       debugging=0 # Not debugging..