From 986f3431cb6aa29f51e3748f01f159e1aab349e2 Mon Sep 17 00:00:00 2001 From: meelash Date: Fri, 16 Mar 2018 23:36:56 +0500 Subject: [PATCH 1/2] parse ptp errors gracefully First, chdkptp errors do not have a 'message' key, instead, it is 'msg'. Then, for some reason the dictionary get() method throws an error: TypeError: 'NoneType' object is not callable no matter if the key exists, or not. Not sure why that is so. --- chdkptp/lua.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/chdkptp/lua.py b/chdkptp/lua.py index 370f04b..28cac75 100644 --- a/chdkptp/lua.py +++ b/chdkptp/lua.py @@ -11,13 +11,13 @@ class PTPError(Exception): def __init__(self, err_table): - msg = err_table.get('message') - errcode = err_table.get('ptp_rc') + msg = err_table['msg'] + errcode = err_table['ptp_rc'] super(PTPError, self).__init__( "{0} (ptp_code: {1})".format(msg or "Unknown error", errcode or 'unknown')) self.ptp_code = errcode - self.traceback = err_table.get('traceback') + self.traceback = err_table['traceback'] class LuaContext(object): From 2fb61d9732bb28349df491fb1d0dfdf2b32b886d Mon Sep 17 00:00:00 2001 From: Saleem Abdul Hamid Date: Tue, 20 Mar 2018 21:15:57 +0500 Subject: [PATCH 2/2] Expose PTPError exception class so they can be handled by client libraries nicely. Since they have special properties like the PTP traceback. --- chdkptp/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chdkptp/__init__.py b/chdkptp/__init__.py index c8b64a7..ddcf6f0 100644 --- a/chdkptp/__init__.py +++ b/chdkptp/__init__.py @@ -1,4 +1,5 @@ from chdkptp.device import ChdkDevice, list_devices, DeviceInfo +from chdkptp.lua import PTPError __version__ = "0.1.3" -__all__ = ['ChdkDevice', 'list_devices', 'DeviceInfo'] +__all__ = ['ChdkDevice', 'list_devices', 'DeviceInfo', 'PTPError']