This is an automated email from the ASF dual-hosted git repository. cml pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-cpp.git
commit 0e558866e90ef3d5becbd2f6d5630a6a6dc43a5d Author: Jiri Daněk <[email protected]> AuthorDate: Mon Mar 15 11:53:00 2021 +0100 QPID-8413: Python 3 support in managementgen (#24) --- managementgen/qmf-gen | 4 +++- managementgen/qmfgen/generate.py | 15 +++++++++++---- managementgen/qmfgen/schema.py | 39 ++++++++++++++++++++++++--------------- 3 files changed, 38 insertions(+), 20 deletions(-) diff --git a/managementgen/qmf-gen b/managementgen/qmf-gen index fc2f284..b7532d2 100755 --- a/managementgen/qmf-gen +++ b/managementgen/qmf-gen @@ -18,6 +18,8 @@ # under the License. # +from __future__ import print_function + import sys import os from qmfgen.schema import SchemaPackage, SchemaClass @@ -61,7 +63,7 @@ v2_style = opts.v2_style gen = Generator(outdir, templatedir) if len(args) == 0: - print "no input files" + print("no input files") parser.exit() vargs = {} diff --git a/managementgen/qmfgen/generate.py b/managementgen/qmfgen/generate.py index 22c53aa..e6c4672 100755 --- a/managementgen/qmfgen/generate.py +++ b/managementgen/qmfgen/generate.py @@ -17,8 +17,9 @@ # under the License. # +from __future__ import print_function + from xml.dom.minidom import parse, parseString, Node -from cStringIO import StringIO from stat import * from errno import * import os @@ -26,6 +27,12 @@ import os.path import filecmp import re +try: + from cStringIO import StringIO +except ImportError: + from io import StringIO + + class Template: """ Expandable File Template - This class is instantiated each time a @@ -267,8 +274,8 @@ class Generator: exists = True try: mode = os.stat (path)[ST_MODE] - except OSError, (err,text): - if err == ENOENT or err == ESRCH: + except OSError as e: + if e.errno == ENOENT or e.errno == ESRCH: exists = False else: raise @@ -354,7 +361,7 @@ class Generator: os.rename (tempFile, target) if self.verbose: - print "Generated:", target + print("Generated:", target) def targetPackageFile (self, schema, templateFile): dot = templateFile.find(".") diff --git a/managementgen/qmfgen/schema.py b/managementgen/qmfgen/schema.py index 19da8ef..fe9d16f 100755 --- a/managementgen/qmfgen/schema.py +++ b/managementgen/qmfgen/schema.py @@ -18,8 +18,12 @@ # from xml.dom.minidom import parse, parseString, Node -from cStringIO import StringIO -#import md5 + +try: + from cStringIO import StringIO +except ImportError: + from io import StringIO + try: import hashlib _md5Obj = hashlib.md5 @@ -38,15 +42,16 @@ class Hash: self.md5Sum.update(hash.getDigest()) def getDigest(self): - return self.md5Sum.digest() + # type: () -> bytes + return bytes(self.md5Sum.digest()) def _compute(self, node): attrs = node.attributes - self.md5Sum.update(node.nodeName) + self.md5Sum.update(node.nodeName.encode()) for idx in range(attrs.length): - self.md5Sum.update(attrs.item(idx).nodeName) - self.md5Sum.update(attrs.item(idx).nodeValue) + self.md5Sum.update(attrs.item(idx).nodeName.encode()) + self.md5Sum.update(attrs.item(idx).nodeValue.encode()) for child in node.childNodes: if child.nodeType == Node.ELEMENT_NODE: @@ -1064,10 +1069,12 @@ class SchemaEvent: def genSchemaMD5(self, stream, variables): sum = self.hash.getDigest() - for idx in range (len (sum)): + for idx, val in enumerate(sum): if idx != 0: - stream.write (",") - stream.write (hex (ord (sum[idx]))) + stream.write(",") + if isinstance(val, str): + val = ord(val) # Python 2 + stream.write(hex(val)) class SchemaClass: @@ -1443,13 +1450,13 @@ class SchemaClass: if count == 0: stream.write("0") else: - stream.write (str(((count - 1) / 8) + 1)) + stream.write (str(((count - 1) // 8) + 1)) def genPresenceMaskConstants (self, stream, variables): count = 0 for prop in self.properties: if prop.isOptional == 1: - stream.write(" static const uint8_t presenceByte_%s = %d;\n" % (prop.name, count / 8)) + stream.write(" static const uint8_t presenceByte_%s = %d;\n" % (prop.name, count // 8)) stream.write(" static const uint8_t presenceMask_%s = %d;\n" % (prop.name, 1 << (count % 8))) count += 1 @@ -1527,12 +1534,14 @@ class SchemaClass: " = _parent->GetManagementObject()->getObjectId();") return - def genSchemaMD5 (self, stream, variables): + def genSchemaMD5(self, stream, variables): sum = self.hash.getDigest() - for idx in range (len (sum)): + for idx, val in enumerate(sum): if idx != 0: - stream.write (",") - stream.write (hex (ord (sum[idx]))) + stream.write(",") + if isinstance(val, str): + val = ord(val) # Python 2 + stream.write(hex(val)) def genAssign (self, stream, variables): for inst in self.statistics: --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
