From 5cd6498c393419ad5ae6aee1a6cf1cdace1f9c06 Mon Sep 17 00:00:00 2001 From: bebopagogo Date: Sun, 22 May 2022 22:01:47 -0400 Subject: [PATCH] fixes to pynorm for Python3 and normMsgr.py and normFileSend.py examples --- examples/python/normFileRecv.py | 16 ++++++++-------- src/pynorm/instance.py | 6 +++--- src/pynorm/object.py | 24 ++++++++++++------------ 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/examples/python/normFileRecv.py b/examples/python/normFileRecv.py index 723207e..2d1ddc5 100755 --- a/examples/python/normFileRecv.py +++ b/examples/python/normFileRecv.py @@ -28,7 +28,7 @@ def main(argv): (opts, args) = get_option_parser().parse_args(argv) if len(args) != 2: - print get_option_parser().get_usage() + print(get_option_parser().get_usage()) return 1 path = os.path.abspath(args[1]) @@ -45,26 +45,26 @@ def main(argv): for event in instance: if event == 'NORM_RX_OBJECT_INFO': event.object.filename = os.path.join(path, event.object.info) - print 'Downloading file %s' % event.object.filename + print('Downloading file %s' % event.object.filename) elif event == 'NORM_RX_OBJECT_UPDATED': - print 'File %s - %i bytes left to download' % ( - event.object.filename, event.object.bytesPending) + print('File %s - %i bytes left to download' % ( + event.object.filename, event.object.bytesPending)) elif event == 'NORM_RX_OBJECT_COMPLETED': - print 'File %s completed' % event.object.filename + print('File %s completed' % event.object.filename) return 0 elif event == 'NORM_RX_OBJECT_ABORTED': - print 'File %s aborted' % event.object.filename + print('File %s aborted' % event.object.filename) return 1 else: - print event + print(event) except KeyboardInterrupt: pass - print 'Exiting.' + print('Exiting.') return 0 if __name__ == '__main__': diff --git a/src/pynorm/instance.py b/src/pynorm/instance.py index 85f5fcf..f6ca6a5 100644 --- a/src/pynorm/instance.py +++ b/src/pynorm/instance.py @@ -48,19 +48,19 @@ class Instance(object): libnorm.NormRestartInstance(self) def setCacheDirectory(self, path): - libnorm.NormSetCacheDirectory(self, path) + libnorm.NormSetCacheDirectory(self, path.encode('utf-8')) def setDebugLevel(self, level): libnorm.NormSetDebugLevel(level) def openDebugLog(self, path): - libnorm.NormOpenDebugLog(self, path) + libnorm.NormOpenDebugLog(self, path.encode('utf-8')) def closeDebugLog(self): libnorm.NormCloseDebugLog(self) def openDebugPipe(self, pipeName): - libnorm.NormOpenDebugPipe(self, pipeName) + libnorm.NormOpenDebugPipe(self, pipeName.encode('utf-8')) def getNextEvent(self, timeout=None): # Use python's select because letting the C NormGetNextEvent block diff --git a/src/pynorm/object.py b/src/pynorm/object.py index 2889066..deb36c1 100644 --- a/src/pynorm/object.py +++ b/src/pynorm/object.py @@ -33,11 +33,11 @@ class Object(object): if length == 0: raise NormError("No object info received yet.") - buffer = ctypes.create_string_buffer(length) - recv = libnorm.NormObjectGetInfo(self, buffer, length) + buf = ctypes.create_string_buffer(length) + recv = libnorm.NormObjectGetInfo(self, buf, length) if recv == 0: raise NormError("No object info received yet.") - return buffer.value + return buf.value def getSize(self): return libnorm.NormObjectGetSize(self) @@ -49,12 +49,12 @@ class Object(object): libnorm.NormObjectCancel(self) def getFileName(self): - buffer = ctypes.create_string_buffer(100) - libnorm.NormFileGetName(self, buffer, ctypes.sizeof(buffer)) - return buffer.value + buf = ctypes.create_string_buffer(100) + libnorm.NormFileGetName(self, buf, ctypes.sizeof(buf)) + return buf.value def renameFile(self, name): - libnorm.NormFileRename(self, name) + libnorm.NormFileRename(self, name.encode('utf-8')) # Because 'ctypes.string_at()' makes a _copy_ of the data, we don't # support the usual NORM accessData / detachData options. We use @@ -80,7 +80,7 @@ class Object(object): libnorm.NormStreamClose(self, graceful) def streamWrite(self, msg): - return libnorm.NormStreamWrite(self, msg, len(msg)) + return libnorm.NormStreamWrite(self, msg.encode('utf-8'), len(msg)) def streamFlush(self, eom=False, flushmode=c.NORM_FLUSH_PASSIVE): libnorm.NormStreamFlush(self, eom, flushmode) @@ -99,10 +99,10 @@ class Object(object): ## Stream receiving functions def streamRead(self, size): - buffer = ctypes.create_string_buffer(size) - numBytes = ctypes.c_uint(ctypes.sizeof(buffer)) - libnorm.NormStreamRead(self, buffer, ctypes.byref(numBytes)) - return (numBytes, buffer.value) + buf = ctypes.create_string_buffer(size) + numBytes = ctypes.c_uint(ctypes.sizeof(buf)) + libnorm.NormStreamRead(self, buf, ctypes.byref(numBytes)) + return (numBytes, buf.value) def streamSeekMsgStart(self): return libnorm.NormStreamSeekMsgStart(self)