diff -r ec153828ded2 -r b789b695b5c6 runtime/PLCObject.py --- a/runtime/PLCObject.py Tue Aug 15 12:17:51 2017 +0300 +++ b/runtime/PLCObject.py Tue Aug 15 15:50:30 2017 +0300 @@ -47,8 +47,8 @@ return tb lib_ext ={ - "linux2":".so", - "win32":".dll", + "linux2": ".so", + "win32": ".dll", }.get(sys.platform, "") @@ -128,16 +128,16 @@ ctypes.byref(tv_nsec)) if sz and sz <= maxsz: self._log_read_buffer[sz] = '\x00' - return self._log_read_buffer.value,tick.value,tv_sec.value,tv_nsec.value + return self._log_read_buffer.value, tick.value, tv_sec.value, tv_nsec.value elif self._loading_error is not None and level==0: - return self._loading_error,0,0,0 + return self._loading_error, 0, 0, 0 return None def _GetMD5FileName(self): return os.path.join(self.workingdir, "lasttransferedPLC.md5") def _GetLibFileName(self): - return os.path.join(self.workingdir,self.CurrentPLCFilename) + return os.path.join(self.workingdir, self.CurrentPLCFilename) def LoadPLC(self): @@ -241,22 +241,22 @@ """ self.PLClibraryLock.acquire() # Forget all refs to library - self._startPLC = lambda x,y:None - self._stopPLC = lambda:None - self._ResetDebugVariables = lambda:None - self._RegisterDebugVariable = lambda x, y:None - self._IterDebugData = lambda x,y:None - self._FreeDebugData = lambda:None - self._GetDebugData = lambda:-1 - self._suspendDebug = lambda x:-1 - self._resumeDebug = lambda:None - self._PythonIterator = lambda:"" + self._startPLC = lambda x, y: None + self._stopPLC = lambda: None + self._ResetDebugVariables = lambda: None + self._RegisterDebugVariable = lambda x, y: None + self._IterDebugData = lambda x, y: None + self._FreeDebugData = lambda: None + self._GetDebugData = lambda: -1 + self._suspendDebug = lambda x: -1 + self._resumeDebug = lambda: None + self._PythonIterator = lambda: "" self._GetLogCount = None - self._LogMessage = lambda l,m,s:PLCprint("OFF LOG :"+m) + self._LogMessage = lambda l, m, s: PLCprint("OFF LOG :"+m) self._GetLogMessage = None self.PLClibraryHandle = None # Unload library explicitely - if getattr(self,"_PLClibraryHandle",None) is not None: + if getattr(self, "_PLClibraryHandle", None) is not None: dlclose(self._PLClibraryHandle) self._PLClibraryHandle = None @@ -269,9 +269,9 @@ runtime python files, loaded when new PLC uploaded """ for method in self.python_runtime_vars.get("_runtime_%s" % methodname, []): - res,exp = self.evaluator(method) + res, exp = self.evaluator(method) if exp is not None: - self.LogMessage(0,'\n'.join(traceback.format_exception(*exp))) + self.LogMessage(0, '\n'.join(traceback.format_exception(*exp))) def PythonRuntimeInit(self): MethodNames = ["init", "start", "stop", "cleanup"] @@ -292,7 +292,7 @@ t = self.python_runtime_vars["_"+name+"_ctype"] except KeyError: raise KeyError("Try to set unknown shared global variable : %s" % name) - v = self.python_runtime_vars["_"+name+"_pack"](t,value) + v = self.python_runtime_vars["_"+name+"_pack"](t, value) self.python_runtime_vars["_PySafeSetPLCGlob_"+name](ctypes.byref(v)) self.python_runtime_vars.update({ @@ -317,7 +317,7 @@ if method is not None: self.python_runtime_vars["_runtime_%s" % methodname].append(method) except: - self.LogMessage(0,traceback.format_exc()) + self.LogMessage(0, traceback.format_exc()) raise self.PythonRuntimeCall("init") @@ -332,38 +332,38 @@ def PythonThreadProc(self): self.StartSem.release() - res,cmd,blkid = "None","None",ctypes.c_void_p() + res, cmd, blkid = "None", "None", ctypes.c_void_p() compile_cache={} while True: # print "_PythonIterator(", res, ")", - cmd = self._PythonIterator(res,blkid) + cmd = self._PythonIterator(res, blkid) FBID = blkid.value # print " -> ", cmd, blkid if cmd is None: break try: self.python_runtime_vars["FBID"]=FBID - ccmd,AST =compile_cache.get(FBID, (None,None)) + ccmd, AST =compile_cache.get(FBID, (None, None)) if ccmd is None or ccmd!=cmd: AST = compile(cmd, '', 'eval') - compile_cache[FBID]=(cmd,AST) - result,exp = self.evaluator(eval,AST,self.python_runtime_vars) + compile_cache[FBID]=(cmd, AST) + result, exp = self.evaluator(eval, AST, self.python_runtime_vars) if exp is not None: res = "#EXCEPTION : "+str(exp[1]) - self.LogMessage(1,('PyEval@0x%x(Code="%s") Exception "%s"') % (FBID,cmd, + self.LogMessage(1, ('PyEval@0x%x(Code="%s") Exception "%s"') % (FBID, cmd, '\n'.join(traceback.format_exception(*exp)))) else: res=str(result) self.python_runtime_vars["FBID"]=None - except Exception,e: + except Exception, e: res = "#EXCEPTION : "+str(e) - self.LogMessage(1,('PyEval@0x%x(Code="%s") Exception "%s"') % (FBID,cmd,str(e))) + self.LogMessage(1, ('PyEval@0x%x(Code="%s") Exception "%s"') % (FBID, cmd, str(e))) def StartPLC(self): if self.CurrentPLCFilename is not None and self.PLCStatus == "Stopped": c_argv = ctypes.c_char_p * len(self.argv) error = None - res = self._startPLC(len(self.argv),c_argv(*self.argv)) + res = self._startPLC(len(self.argv), c_argv(*self.argv)) if res == 0: self.PLCStatus = "Started" self.StatusChange() @@ -374,7 +374,7 @@ self.StartSem.acquire() self.LogMessage("PLC started") else: - self.LogMessage(0,_("Problem starting PLC : error %d" % res)) + self.LogMessage(0, _("Problem starting PLC : error %d" % res)) self.PLCStatus = "Broken" self.StatusChange() @@ -396,22 +396,22 @@ def _Reload(self): self.daemon.shutdown(True) self.daemon.sock.close() - os.execv(sys.executable,[sys.executable]+sys.argv[:]) + os.execv(sys.executable, [sys.executable]+sys.argv[:]) # never reached return 0 def ForceReload(self): # respawn python interpreter - Timer(0.1,self._Reload).start() + Timer(0.1, self._Reload).start() return True def GetPLCstatus(self): - return self.PLCStatus, map(self.GetLogCount,xrange(LogLevelsCount)) + return self.PLCStatus, map(self.GetLogCount, xrange(LogLevelsCount)) def NewPLC(self, md5sum, data, extrafiles): if self.PLCStatus in ["Stopped", "Empty", "Broken"]: NewFileName = md5sum + lib_ext - extra_files_log = os.path.join(self.workingdir,"extra_files.txt") + extra_files_log = os.path.join(self.workingdir, "extra_files.txt") self.UnLoadPLC() @@ -431,7 +431,7 @@ try: # Create new PLC file - open(os.path.join(self.workingdir,NewFileName), + open(os.path.join(self.workingdir, NewFileName), 'wb').write(data) # Store new PLC filename based on md5 key @@ -439,8 +439,8 @@ # Then write the files log = file(extra_files_log, "w") - for fname,fdata in extrafiles: - fpath = os.path.join(self.workingdir,fname) + for fname, fdata in extrafiles: + fpath = os.path.join(self.workingdir, fname) open(fpath, "wb").write(fdata) log.write(fname+'\n') @@ -480,12 +480,12 @@ if self._suspendDebug(False) == 0: # keep a copy of requested idx self._ResetDebugVariables() - for idx,iectype,force in idxs: + for idx, iectype, force in idxs: if force !=None: - c_type,unpack_func, pack_func = \ + c_type, unpack_func, pack_func = \ TypeTranslator.get(iectype, - (None,None,None)) - force = ctypes.byref(pack_func(c_type,force)) + (None, None, None)) + force = ctypes.byref(pack_func(c_type, force)) self._RegisterDebugVariable(idx, force) self._TracesSwap() self._resumeDebug()