]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools/Scripts: Porting PackageDocumentTools code to use Python3
authorZhijux Fan <zhijux.fan@intel.com>
Sun, 16 Dec 2018 16:04:04 +0000 (00:04 +0800)
committerFeng, Bob C <bob.c.feng@intel.com>
Fri, 1 Feb 2019 03:09:19 +0000 (11:09 +0800)
Porting PackageDocumentTools code to support python2 and python3

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
BaseTools/Scripts/ConvertFceToStructurePcd.py
BaseTools/Scripts/PackageDocumentTools/packagedoc_cli.py
BaseTools/Scripts/PackageDocumentTools/packagedocapp.pyw
BaseTools/Scripts/PackageDocumentTools/plugins/EdkPlugins/basemodel/doxygen.py
BaseTools/Scripts/PackageDocumentTools/plugins/EdkPlugins/edk2/model/baseobject.py
BaseTools/Scripts/PackageDocumentTools/plugins/EdkPlugins/edk2/model/dec.py
BaseTools/Scripts/PackageDocumentTools/plugins/EdkPlugins/edk2/model/doxygengen.py
BaseTools/Scripts/PackageDocumentTools/plugins/EdkPlugins/edk2/model/doxygengen_spec.py
BaseTools/Scripts/PackageDocumentTools/plugins/EdkPlugins/edk2/model/dsc.py
BaseTools/Scripts/PackageDocumentTools/plugins/EdkPlugins/edk2/model/inf.py

index 59eec28d5e0010e467302accaa338d006e08c0fd..1495ac34d684e64f9296564921a2fe4fed431f24 100644 (file)
@@ -135,7 +135,7 @@ class parser_lst(object):
                       tmp_dict[offset] = tmp_name\r
                       pcdname_num = int(pcdname_num_re.findall(t_name)[0],10)\r
                       uint = int(unit_num.findall(uint)[0],10)\r
-                      bit = uint / 8\r
+                      bit = uint // 8\r
                       for i in range(1, pcdname_num):\r
                         offset += bit\r
                         tmp_name = pcdname2_re.findall(t_name)[0] + '[%s]' % i\r
index 4deeee01a5e87ecb1e10b09e91c27efa9fae9216..e404a07cd7f18351323ef61d60c9dba9b430a541 100644 (file)
@@ -16,8 +16,8 @@ from __future__ import print_function
 import os, sys, logging, traceback, subprocess\r
 from optparse import OptionParser\r
 \r
-import plugins.EdkPlugins.edk2.model.baseobject as baseobject\r
-import plugins.EdkPlugins.edk2.model.doxygengen as doxygengen\r
+from .plugins.EdkPlugins.edk2.model import baseobject\r
+from .plugins.EdkPlugins.edk2.model import doxygengen\r
 \r
 gArchMarcoDict = {'ALL'      : 'MDE_CPU_IA32 MDE_CPU_X64 MDE_CPU_EBC MDE_CPU_IPF _MSC_EXTENSIONS __GNUC__ __INTEL_COMPILER',\r
                   'IA32_MSFT': 'MDE_CPU_IA32 _MSC_EXTENSIONS',\r
@@ -38,7 +38,7 @@ def parseCmdArgs():
                       help='Specify the absolute path of doxygen tools installation. For example: C:\\Program Files\\doxygen\bin\doxygen.exe')\r
     parser.add_option('-o', '--output', action='store', dest='OutputPath',\r
                       help='Specify the document output path. For example: c:\\docoutput')\r
-    parser.add_option('-a', '--arch', action='store', dest='Arch', choices=gArchMarcoDict.keys(),\r
+    parser.add_option('-a', '--arch', action='store', dest='Arch', choices=list(gArchMarcoDict.keys()),\r
                       help='Specify the architecture used in preprocess package\'s source. For example: -a IA32_MSFT')\r
     parser.add_option('-m', '--mode', action='store', dest='DocumentMode', choices=['CHM', 'HTML'],\r
                       help='Specify the document mode from : CHM or HTML')\r
index 28f6f9bf5cceaf941ee0feb46a187349c48e7e9b..2998db3915fa77a40c15318bacca2a118d26499f 100644 (file)
@@ -18,8 +18,8 @@ import os, sys, wx, logging
 import wx.stc\r
 import wx.lib.newevent\r
 import wx.lib.agw.genericmessagedialog as GMD\r
-import plugins.EdkPlugins.edk2.model.baseobject as baseobject\r
-import plugins.EdkPlugins.edk2.model.doxygengen as doxygengen\r
+from plugins.EdkPlugins.edk2.model import baseobject\r
+from plugins.EdkPlugins.edk2.model import doxygengen\r
 \r
 if hasattr(sys, "frozen"):\r
     appPath = os.path.abspath(os.path.dirname(sys.executable))\r
@@ -720,7 +720,7 @@ class ProgressDialog(wx.Dialog):
             lines = f.readlines()\r
             f.close()\r
             bfound = False\r
-            for index in xrange(len(lines)):\r
+            for index in range(len(lines)):\r
                 if lines[index].find('<a class="el" href="files.html" target="basefrm">File List</a>') != -1:\r
                     lines[index] = "<!-- %s" % lines[index]\r
                     bfound = True\r
@@ -969,7 +969,7 @@ class ProgressDialog(wx.Dialog):
             fd = open(path, 'r')\r
             text = fd.read()\r
             fd.close()\r
-        except Exception, e:\r
+        except Exception as e:\r
             self.LogMessage ("   <<<Fail to open file %s" % path)\r
             return\r
         text = text.replace ('.s.dox', '.s')\r
@@ -982,7 +982,7 @@ class ProgressDialog(wx.Dialog):
             fd = open(path, 'w')\r
             fd.write(text)\r
             fd.close()\r
-        except Exception, e:\r
+        except Exception as e:\r
             self.LogMessage ("    <<<Fail to fixup file %s" % path)\r
             return\r
         self.LogMessage('    >>> Finish to fixup .dox postfix for file %s \n' % path)\r
@@ -993,7 +993,7 @@ class ProgressDialog(wx.Dialog):
             fd = open(path, 'r')\r
             lines = fd.readlines()\r
             fd.close()\r
-        except Exception, e:\r
+        except Exception as e:\r
             self.LogMessage ("   <<<Fail to open file %s" % path)\r
             return\r
         for line in lines:\r
@@ -1004,7 +1004,7 @@ class ProgressDialog(wx.Dialog):
             fd = open(path, 'w')\r
             fd.write("".join(lines))\r
             fd.close()\r
-        except Exception, e:\r
+        except Exception as e:\r
             self.LogMessage ("    <<<Fail to fixup file %s" % path)\r
             return\r
         self.LogMessage('    >>> Finish to fixup .decdoxygen postfix for file %s \n' % path)\r
index d1e21135cf052925745df67cf750de0cb6af6d06..ae47ff1344d9650d38023e819e0ac3bb43c12686 100644 (file)
@@ -67,7 +67,7 @@ class Page(BaseDoxygeItem):
 \r
     def AddSection(self, section):\r
         self.mSections.append(section)\r
-        self.mSections.sort(cmp=lambda x, y: cmp(x.mName.lower(), y.mName.lower()))\r
+        self.mSections.sort(key=lambda x: x.mName.lower())\r
 \r
     def Generate(self):\r
         if self.mIsMainPage:\r
@@ -80,7 +80,7 @@ class Page(BaseDoxygeItem):
             self.mText.append(self.mDescription)\r
         endIndex = len(self.mText)\r
 \r
-        self.mSections.sort()\r
+        self.mSections.sort(key=lambda x: x.mName.lower())\r
         for sect in self.mSections:\r
             self.mText += sect.Generate()\r
 \r
index b49c87c8bdab3353d3ef76ae300b6bcf24856914..0159bd526925397639c38ee66a04781c2c93ddc4 100644 (file)
 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
-import plugins.EdkPlugins.basemodel.ini as ini\r
-import plugins.EdkPlugins.edk2.model.dsc as dsc\r
-import plugins.EdkPlugins.edk2.model.inf as inf\r
-import plugins.EdkPlugins.edk2.model.dec as dec\r
+from ...basemodel import ini\r
+from ...edk2.model import dsc\r
+from ...edk2.model import inf\r
+from ...edk2.model import dec\r
 import os\r
-from plugins.EdkPlugins.basemodel.message import *\r
+from ...basemodel.message import *\r
 \r
 class SurfaceObject(object):\r
     _objs = {}\r
@@ -655,13 +655,13 @@ class Package(SurfaceObject):
         return self._pcds\r
 \r
     def GetPpis(self):\r
-        return self._ppis.values()\r
+        return list(self._ppis.values())\r
 \r
     def GetProtocols(self):\r
-        return self._protocols.values()\r
+        return list(self._protocols.values())\r
 \r
     def GetGuids(self):\r
-        return self._guids.values()\r
+        return list(self._guids.values())\r
 \r
     def Destroy(self):\r
         for pcd in self._pcds.values():\r
index 9ff0df3851543f62f47076371f0aea4d3d24ee9d..3d210f72ac74a0555d2bc9670020fd81fef8239f 100644 (file)
@@ -11,9 +11,9 @@
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 #\r
 \r
-import plugins.EdkPlugins.basemodel.ini as ini\r
+from ...basemodel import ini\r
 import re, os\r
-from plugins.EdkPlugins.basemodel.message import *\r
+from ...basemodel.message import *\r
 \r
 class DECFile(ini.BaseINIFile):\r
 \r
index c22d362ff3e12acba99a54c172162c604270d480..9c299fbfc50ae60e4749aedb342037a3dcaaf223 100644 (file)
@@ -16,7 +16,7 @@
 """This file produce action class to generate doxygen document for edk2 codebase.\r
    The action classes are shared by GUI and command line tools.\r
 """\r
-import plugins.EdkPlugins.basemodel.doxygen as doxygen\r
+from ...basemodel import doxygen\r
 import os\r
 try:\r
     import wx\r
@@ -24,9 +24,9 @@ try:
 except:\r
     gInGui = False\r
 import re\r
-import plugins.EdkPlugins.edk2.model.inf as inf\r
-import plugins.EdkPlugins.edk2.model.dec as dec\r
-from plugins.EdkPlugins.basemodel.message import *\r
+from ...edk2.model import inf\r
+from ...edk2.model import dec\r
+from ...basemodel.message import *\r
 \r
 _ignore_dir = ['.svn', '_svn', 'cvs']\r
 _inf_key_description_mapping_table = {\r
@@ -386,7 +386,7 @@ class PackageDocumentAction(DoxygenAction):
         configFile.AddFile(path)\r
 \r
         no = 0\r
-        for no in xrange(len(lines)):\r
+        for no in range(len(lines)):\r
             if len(lines[no].strip()) == 0:\r
                 continue\r
             if lines[no].strip()[:2] in ['##', '//', '/*', '*/']:\r
@@ -1000,7 +1000,7 @@ class PackageDocumentAction(DoxygenAction):
         #file = textfile.TextFile(path)\r
 \r
         try:\r
-            file = open(path, 'rb')\r
+            file = open(path, 'r')\r
         except (IOError, OSError) as msg:\r
             return None\r
 \r
index 4bae6968a96e9513b4a0f8c966c5ef1fe7fc6160..3a862a92eac9909ecf51eb6089a909cfa2ac3ec1 100644 (file)
@@ -13,7 +13,7 @@
 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
-import plugins.EdkPlugins.basemodel.doxygen as doxygen\r
+from ...basemodel import doxygen\r
 import os\r
 try:\r
     import wx\r
@@ -21,9 +21,9 @@ try:
 except:\r
     gInGui = False\r
 import re\r
-import plugins.EdkPlugins.edk2.model.inf as inf\r
-import plugins.EdkPlugins.edk2.model.dec as dec\r
-from plugins.EdkPlugins.basemodel.message import *\r
+from ...edk2.model import inf\r
+from ...edk2.model import dec\r
+from ...basemodel.message import *\r
 \r
 _ignore_dir = ['.svn', '_svn', 'cvs']\r
 _inf_key_description_mapping_table = {\r
@@ -388,7 +388,7 @@ class PackageDocumentAction(DoxygenAction):
         configFile.AddFile(path)\r
         return\r
         no = 0\r
-        for no in xrange(len(lines)):\r
+        for no in range(len(lines)):\r
             if len(lines[no].strip()) == 0:\r
                 continue\r
             if lines[no].strip()[:2] in ['##', '//', '/*', '*/']:\r
@@ -1003,7 +1003,7 @@ class PackageDocumentAction(DoxygenAction):
         #file = textfile.TextFile(path)\r
 \r
         try:\r
-            file = open(path, 'rb')\r
+            file = open(path, 'r')\r
         except (IOError, OSError) as msg:\r
             return None\r
 \r
index 0628fa7408261f2463f7c84b1cd4bca750314373..6f59e566b8f6d12f53cac7a1a07f25829cdb13c8 100644 (file)
@@ -11,9 +11,9 @@
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 #\r
 \r
-import plugins.EdkPlugins.basemodel.ini as ini\r
+from ...basemodel import ini\r
 import re, os\r
-from plugins.EdkPlugins.basemodel.message import *\r
+from ...basemodel.message import *\r
 \r
 class DSCFile(ini.BaseINIFile):\r
     def GetSectionInstance(self, parent, name, isCombined=False):\r
index 793e95efedcc7167fea997037908a13906af2351..cf2e49d3afebaf6a7d8d460b9f64340076c8ff90 100644 (file)
@@ -11,9 +11,9 @@
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 #\r
 \r
-import plugins.EdkPlugins.basemodel.ini as ini\r
+from ...basemodel import ini\r
 import re, os\r
-from plugins.EdkPlugins.basemodel.message import *\r
+from ...basemodel.message import *\r
 \r
 class INFFile(ini.BaseINIFile):\r
     _libobjs = {}\r