[Libreoffice-commits] .: Branch 'libreoffice-3-4' - filter/source

Michael Meeks mmeeks at kemper.freedesktop.org
Mon Apr 4 10:20:33 PDT 2011


 filter/source/config/tools/merge/pyAltFCFGMerge |  158 ++++++++++--------------
 1 file changed, 72 insertions(+), 86 deletions(-)

New commits:
commit 070ecd906dc4e34ae10998aa8628ab32bf04e5ae
Author: Andreas Becker <atayoohoo at googlemail.com>
Date:   Mon Apr 4 15:16:31 2011 +0100

    python 3 compatibility fixes

diff --git a/filter/source/config/tools/merge/pyAltFCFGMerge b/filter/source/config/tools/merge/pyAltFCFGMerge
index 0d7666a..fcdbc81 100755
--- a/filter/source/config/tools/merge/pyAltFCFGMerge
+++ b/filter/source/config/tools/merge/pyAltFCFGMerge
@@ -9,7 +9,7 @@
 # there is a java which is available for use by all
 #_____________________________________________
 
-import sys, string, os.path 
+import sys, string, os.path, codecs 
 
 CFGFILE             = os.environ["SOLARVER"] + "/" + os.environ["INPATH"] + "/inc/l10ntools/FCFGMerge.cfg"
 
@@ -66,18 +66,18 @@ Example Usage:
 >>> props = Properties()
 >>> props['one'] = '1'
 >>> props['your name'] = "I don't know"
->>> print '\n'.join(props.keys())
+>>> print('\n'.join(list(props.keys())))
 your name
 one
 >>> from StringIO import StringIO
 >>> buff = StringIO()
 >>> props.store(buff, "a little example...")
 >>> buff.seek(0)
->>> print buff.read()
+>>> print(buff.read())
 # a little example...
 your\ name=I\ don\'t\ know
 one=1
->>> print props['your name']
+>>> print(props['your name'])
 I don't know
 
 $Id: pyAltFCFGMerge,v 1.3 2007-12-07 10:57:44 vg Exp $
@@ -88,13 +88,11 @@ __all__ = ['Properties']
 
 
 def dec2hex(n):
-
     h = hex(n)[2:].upper()
     return '\\u' + '0' * (4 - len(h)) + h
 
 
 def escapestr(s):
-
     buff = []
     # QUESTION: escape leading or trailing spaces?
     for c in s:
@@ -128,7 +126,6 @@ def escapestr(s):
 
 # TODO: add support for \uXXXX?
 def unescapestr(line):
-
     buff = []
     escape = 0
     for i in range(len(line)):
@@ -175,12 +172,10 @@ def unescapestr(line):
     return ''.join(buff)
 
 
-
 class Properties(dict):
-
     def __init__(self, defaults={}):
         dict.__init__(self)
-        for n,v in defaults.items():
+        for n,v in list(defaults.items()):
             self[n] = v
 
     def __getittem__(self,key):
@@ -207,11 +202,10 @@ class Properties(dict):
         Reads properties from a stream (StringIO, file, etc...)
         """
         props = readprops(buff)
-        for n,v in props.iteritems():
+        for n,v in list(props.items()):
             self[n] = v
 
 def readprops(buff):
-
     name,value = None,''
     props = {}
     continued = 0
@@ -258,7 +252,7 @@ def readprops(buff):
             name = unescapestr(line.lstrip())
 
         # skip delimiter
-        while line[i:i+1] in ('\t', ' ', ':', '='):
+        while line[i:i + 1] in ('\t', ' ', ':', '='):
             i += 1
 
         value = unescapestr(line[i:].strip())
@@ -269,7 +263,6 @@ def readprops(buff):
                 break
             value += unescapestr(line.strip())
 
-        #print 'value:',value    ##
         props[name] = value
 
     return props
@@ -299,41 +292,41 @@ def run(sCmdLine):
 
 #prints out a copyright message on stdout.
 def printCopyright():
-    print "FCFGMerge"
-    print "Copyright: 2003 by Red Hat, Inc., based on FCFGMerge.java` by Sun"
-    print "All Rights Reserved."
+    print("FCFGMerge")
+    print("Copyright: 2003 by Red Hat, Inc., based on FCFGMerge.java` by Sun")
+    print("All Rights Reserved.")
 
-#prints out a help message on stdout.
+# Prints out a help message on stdout.
 def printHelp():
-    print "____________________________________________________________"
-    print "usage: FCFGMerge cfg=<file name>"                            
-    print "parameters:"                                                 
-    print "\tcfg=<file name>"                                           
-    print "\t\tmust point to a system file, which contains"             
-    print "\t\tall neccessary configuration data for the merge process."
-    print "\tFurther cou can specify every parameter allowed in the"  
-    print "\tconfig file as command line parameter too, to overwrite" 
-    print "\tthe value from the file."                                
-
-def StringTokenizer(mstring, separators, isSepIncluded=0):
-#Return a list of tokens given a base string and a string of
-#separators, optionally including the separators if asked for"""
-    token=''
-    tokenList=[]
+    print("____________________________________________________________")
+    print("usage: FCFGMerge cfg=<file name>"                            )
+    print("parameters:"                                                 )
+    print("\tcfg=<file name>"                                           )
+    print("\t\tmust point to a system file, which contains"             )
+    print("\t\tall neccessary configuration data for the merge process.")
+    print("\tFurther cou can specify every parameter allowed in the"    )
+    print("\tconfig file as command line parameter too, to overwrite"   )
+    print("\tthe value from the file."                                  )
+
+# Return a list of tokens given a base string and a string of
+# separators, optionally including the separators if asked for"""
+def StringTokenizer(mstring, separators, isSepIncluded = 0):
+    token = ''
+    tokenList = []
     for c in mstring:
         if c in separators:
             if token != '':
                 tokenList.append(token)
-                token=''
+                token = ''
                 if isSepIncluded:
                     tokenList.append(c)
         else:
-            token+=c
+            token += c
     if token:
         tokenList.append(token)
     return tokenList
 
-# can be used to analyze command line parameters
+# Can be used to analyze command line parameters
 # and merge it together with might existing config
 # files. That provides the possibility to overwrite
 # config values via command line parameter.
@@ -356,55 +349,48 @@ class ConfigHelper:
             count = len(lCommandLineArgs)
         self.m_bEmpty = (count < 1)
 
-        print lCommandLineArgs, "and len is", count
+        print(lCommandLineArgs, "and len is", count)
         for arg in range(count):
             # is it a named-value argument?
             # Note: We ignores double "=" signs! => search from left to right
             pos = lCommandLineArgs[arg].find('=')
             if pos != -1:
                 sArg   = lCommandLineArgs[arg][0:pos]
-                sValue = lCommandLineArgs[arg][pos+1:]
+                sValue = lCommandLineArgs[arg][pos + 1:]
                 self.props[sArg] = sValue
                 continue
 
             # is it a boolean argument?
             # Note: Because "--" and "-" will be interpreted as the same
             # we search from right to left!
-            pos = string.rfind(lCommandLineArgs[arg], '-')
+            pos = lCommandLineArgs[arg].rfind('-')
             if pos == -1:
                 pos = lCommandLineArgs[arg].rfind('/')
             if pos != -1:
-                sArg = lCommandLineArgs[arg][pos+1:]
+                sArg = lCommandLineArgs[arg][pos + 1:]
                 self.props[sArg] = 1
                 continue
             
-            raise Exception("Invalid command line detected. The argument \""+\
-                lCommandLineArgs[arg]+"\" use an unsupported format.")
-
-#        for item in self.props:
-#            print item, '->', self.props[item]
+            raise Exception("Invalid command line detected. The argument \"" + \
+                lCommandLineArgs[arg] + "\" use an unsupported format.")
 
     def isHelp(self):
-        return (
-                (self.props.has_key("help")) or
-                (self.props.has_key("?")   ) or
-                (self.props.has_key("h")   )
-               )
+        return ("help" in self.props) or ("?" in self.props) or ("?" in self.props)
 
     def getValue(self, sProp):
-        if not self.props.has_key(sProp):
-            raise Exception("The requested config value \""+sProp+"\" "\
+        if sProp not in self.props:
+            raise Exception("The requested config value \"" + sProp + "\" "\
                 "does not exists!");
         return self.props[sProp];
 
     def getValueWithDefault(self, sProp, default):
-        if not self.props.has_key(sProp):
+        if sProp not in self.props:
             return default;
         return self.props[sProp];
 
     def getStringList(self, sProp, sDelimiter, bTrim, bDecode):
-        if not self.props.has_key(sProp):
-            raise Exception("The requested config value \""+sProp+"\" does "\
+        if sProp not in self.props:
+            raise Exception("The requested config value \"" + sProp + "\" does "\
                 "not exists!");
         sValue = self.props[sProp]
 
@@ -412,11 +398,11 @@ class ConfigHelper:
         lTokens = StringTokenizer(sValue, sDelimiter)
         for sToken in lTokens:
             if bTrim:
-                sToken = string.strip(sToken)
+                sToken = sToken.strip()
             # remove ""
             if ((bDecode) and (sToken.find("\"") == 0) and \
-                (sToken.rfind("\"") == len(sToken)-1)):
-                sToken = sToken[1, len(sToken)-1]
+                (sToken.rfind("\"") == len(sToken) - 1)):
+                sToken = sToken[1, len(sToken) - 1]
             lValue.append(sToken)
 
         return lValue
@@ -448,10 +434,8 @@ def generateHeader(sVersion, sEncoding, sPath, sPackage, bLanguagePack):
 def generateFooter():
     return "</oor:component-data>\n"
 
-# can merge different xml fragments together.
-# 
+# Can merge different xml fragments together.
 #   @author Caolan McNamara converted from the original java by Andreas Schluens
-# 
 class Merger:
     def __init__(self, aCfg):
         self.m_aCfg = aCfg
@@ -486,11 +470,13 @@ class Merger:
         except:
             self.m_lHandlers = []
 
+    # Merges the xml sets returned by getFragments(...), adds an xml header
+    # and footer and writes the result to a file.
     def merge(self):
         sPackage = self.m_aCfg.getValue(PROP_PKG)
 
-        print "create package \""+sPackage+"\" ..."
-        print "generate package header ... "
+        print("create package \"" + sPackage + "\" ...")
+        print("generate package header ... ")
 
         sBuffer = generateHeader(\
                 self.m_aCfg.getValue(PROP_XMLVERSION ),\
@@ -510,25 +496,25 @@ class Merger:
             lFragments = None
 
             try:
-                if i == 0: #types
-                    print "generate set for types ... "
+                if i == 0: # types
+                    print("generate set for types ... ")
                     sSetName = self.m_aCfg.getValue(PROP_SETNAME_TYPES)
-                    sSubDir = self.m_aCfg.getValue(PROP_SUBDIR_TYPES )
+                    sSubDir = self.m_aCfg.getValue(PROP_SUBDIR_TYPES)
                     lFragments = self.m_lTypes
                 elif i == 1: # filters
-                    print "generate set for filter ... "
+                    print("generate set for filter ... ")
                     sSetName = self.m_aCfg.getValue(PROP_SETNAME_FILTERS)
-                    sSubDir = self.m_aCfg.getValue(PROP_SUBDIR_FILTERS )
+                    sSubDir = self.m_aCfg.getValue(PROP_SUBDIR_FILTERS)
                     lFragments = self.m_lFilters
                 elif i == 2: # loaders
-                    print "generate set for frame loader ... "
+                    print("generate set for frame loader ... ")
                     sSetName = self.m_aCfg.getValue(PROP_SETNAME_LOADERS)
-                    sSubDir = self.m_aCfg.getValue(PROP_SUBDIR_LOADERS )
+                    sSubDir = self.m_aCfg.getValue(PROP_SUBDIR_LOADERS)
                     lFragments = self.m_lLoaders
                 elif i == 3: # handlers
-                    print "generate set for content handler ... "
+                    print("generate set for content handler ... ")
                     sSetName = self.m_aCfg.getValue(PROP_SETNAME_HANDLERS)
-                    sSubDir = self.m_aCfg.getValue(PROP_SUBDIR_HANDLERS )
+                    sSubDir = self.m_aCfg.getValue(PROP_SUBDIR_HANDLERS)
                     lFragments = self.m_lHandlers
             except:
                 continue
@@ -539,7 +525,7 @@ class Merger:
                 os.path.join(self.m_aFragmentsDir, sSubDir), \
                 sSetName, lFragments, 1)
 
-        print "generate package footer ... "
+        print("generate package footer ... ")
         sBuffer = sBuffer + generateFooter()
 
         # Attention!
@@ -547,38 +533,38 @@ class Merger:
         # corresponding xml file. We should suppress writing of this file on 
         # disk completly ...
         if nItemCount < 1:
-            print "Package is empty and will not result into a xml file on "\
-                "disk!? Please check configuration file."
+            print("Package is empty and will not result into a xml file on "\
+                "disk!? Please check configuration file.")
             return
-        print "package contains "+str(nItemCount)+" items"
+        print("package contains " + str(nItemCount) + " items")
 
-        aPackage = open(sPackage, 'w')
-        print "write temp package \""+sPackage
+        aPackage = codecs.open(sPackage, 'w', "utf-8")
+        print("write temp package \"" + sPackage)
         aPackage.write(sBuffer)
 
+    # Reads the fragment files with the file names lFragments in directory aDir,
+    # formats them and returns a string that contains the merged fragments.
     def getFragments(self, aDir, sSetName, lFragments, nPrettyTabs):
         sBuffer = '' 
         sExtXcu = self.m_aCfg.getValue(PROP_EXTENSION_XCU);
 
         if len(lFragments) < 1:
             return sBuffer
-        
+
         for tabs in range(nPrettyTabs):
             sBuffer = sBuffer + "\t"
-        sBuffer = sBuffer + "<node oor:name=\""+sSetName+"\">\n"
+        sBuffer = sBuffer + "<node oor:name=\"" + sSetName + "\">\n"
         nPrettyTabs = nPrettyTabs + 1
 
         for sFragment in lFragments:
-            sFragPath = os.path.join(aDir, sFragment+"."+sExtXcu)
+            sFragPath = os.path.join(aDir, sFragment + "." + sExtXcu)
             try:
-                aFragmentFile = open(sFragPath)
+                aFragmentFile = codecs.open(sFragPath, "r", "utf-8")
             except:
                 # handle simple files only and check for existence!
-                raise Exception("fragment \""+sFragPath+"\" does not exists.")
-
-            print "merge fragment \""+sFragPath+"\" ..."
+                raise Exception("fragment \"" + sFragPath + "\" does not exists.")
+            print("merge fragment \"" + sFragPath + "\" ...")
             sBuffer = sBuffer + aFragmentFile.read()
-            
             sBuffer = sBuffer + "\n"
 
         nPrettyTabs = nPrettyTabs - 1


More information about the Libreoffice-commits mailing list