#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Fri Sep 27 14:35:31 2019 @author: Guido Longoni - guidolongoni@gmail.com """ import commands as cmd import re def cmdString(cmdName, cmdArgs=None): cmdDict = cmd.MKPcommands[cmdName] return str(cmd.DEFprefix['begin'] if cmdDict['defPrefix'] else cmdDict['begin']) \ + str(cmdDict['command']) \ + str(';'.join([cmdArgs[k] for k in cmdDict['args']]) if cmdArgs is not None else '') \ + str(cmd.DEFprefix['end'] if cmdDict['defPrefix'] else cmdDict['end']) def checkResponse(cmdName, response): sucKey = 'success' cmdDict = cmd.MKPcommands[cmdName] if sucKey in cmdDict and cmdDict[sucKey] is not None: if cmdDict[sucKey] == True: error = checkError(cmdName, response) if error is None: return None else: return error if re.match(cmdDict[sucKey], response, re.I): return True error = checkError(cmdName, response) if error is None: raise NotImplementedError( 'Ricevuta risposta sconosciuta: {}'.format(response)) else: return error else: error = checkError(cmdName, response) return error def checkError(cmdName, response): errKey = 'error' cmdDict = cmd.MKPcommands[cmdName] if errKey in cmdDict and cmdDict[errKey] is not None: return None error_codes = re.match(cmdDict[errKey], response, re.I) if error_codes: return error_codes.groups() return None