~foosoft/anki-connect

cdba2c47ee748c2acb12bd8ff7ef8fbae6c2e50f — Alex Yatskov 7 years ago 0507add
improvements to python interop
1 files changed, 18 insertions(+), 5 deletions(-)

M AnkiConnect.py
M AnkiConnect.py => AnkiConnect.py +18 -5
@@ 567,12 567,25 @@ class AnkiConnect:

    def handler(self, request):
        action = 'api_' + request.get('action', '')
        params = request.get('params', {})
        if hasattr(self, action):
            try:
                return getattr(self, action)(**params)
            except TypeError:
                return None
            handler = getattr(self, action)
            if callable(handler):
                argsAll = handler.__code__.co_varnames[1:]
                argsReq = argsAll

                argsDef = handler.__defaults__
                if argsDef is not None:
                    argsReq = argsAll[:-len(argsDef)]

                params = request.get('params', {})
                for argReq in argsReq:
                    if argReq not in params:
                        return
                for param in params:
                    if param not in argsAll:
                        return

                handler(**params)


    def api_deckNames(self):

Do not follow this link