--- a/ProjectController.py Mon Mar 27 10:19:14 2023 +0200
+++ b/ProjectController.py Fri Oct 28 12:39:15 2022 +0800
@@ -28,7 +28,7 @@
"""
-from __future__ import absolute_import
+
import os
import traceback
import time
@@ -40,7 +40,7 @@
from datetime import datetime
from weakref import WeakKeyDictionary
from functools import reduce
-from itertools import izip
+
from distutils.dir_util import copy_tree
from six.moves import xrange
@@ -634,7 +634,7 @@
LocatedCCodeAndFlags.append(res[:2])
if len(res) > 2:
Extras.extend(res[2:])
- return map(list, zip(*LocatedCCodeAndFlags)) + [tuple(Extras)]
+ return list(map(list, list(zip(*LocatedCCodeAndFlags)))) + [tuple(Extras)]
# Update PLCOpenEditor ConfNode Block types from loaded confnodes
def RefreshConfNodesBlockLists(self):
@@ -888,15 +888,13 @@
_("Error : At least one configuration and one resource must be declared in PLC !\n"))
return False
# transform those base names to full names with path
- C_files = map(
- lambda filename: os.path.join(buildpath, filename), C_files)
+ C_files = [os.path.join(buildpath, filename) for filename in C_files]
# prepend beremiz include to configuration header
H_files = [fname for fname in result.splitlines() if fname[
-2:] == ".h" or fname[-2:] == ".H"]
H_files.remove("LOCATED_VARIABLES.h")
- H_files = map(
- lambda filename: os.path.join(buildpath, filename), H_files)
+ H_files = [os.path.join(buildpath, filename) for filename in H_files]
for H_file in H_files:
with open(H_file, 'r') as original:
data = original.read()
@@ -995,7 +993,7 @@
for line in ListGroup[0]:
# Split and Maps each field to dictionnary entries
attrs = dict(
- zip(ProgramsListAttributeName, line.strip().split(';')))
+ list(zip(ProgramsListAttributeName, line.strip().split(';'))))
# Truncate "C_path" to remove conf an resources names
attrs["C_path"] = '__'.join(
attrs["C_path"].split(".", 2)[1:])
@@ -1008,7 +1006,7 @@
for line in ListGroup[1]:
# Split and Maps each field to dictionnary entries
attrs = dict(
- zip(VariablesListAttributeName, line.strip().split(';')))
+ list(zip(VariablesListAttributeName, line.strip().split(';'))))
# Truncate "C_path" to remove conf an resources names
parts = attrs["C_path"].split(".", 2)
if len(parts) > 2:
@@ -1098,9 +1096,8 @@
"""
# filter location that are related to code that will be called
# in retreive, publish, init, cleanup
- locstrs = map(lambda x: "_".join(map(str, x)),
- [loc for loc, _Cfiles, DoCalls in
- self.LocationCFilesAndCFLAGS if loc and DoCalls])
+ locstrs = ["_".join(map(str, x)) for x in [loc for loc, _Cfiles, DoCalls in
+ self.LocationCFilesAndCFLAGS if loc and DoCalls]]
# Generate main, based on template
if not self.BeremizRoot.getDisable_Extensions():
@@ -1113,7 +1110,7 @@
"retrieve_calls": "\n ".join([
"__retrieve_%s();" % locstr for locstr in locstrs]),
"publish_calls": "\n ".join([ # Call publish in reverse order
- "__publish_%s();" % locstrs[i - 1] for i in xrange(len(locstrs), 0, -1)]),
+ "__publish_%s();" % locstrs[i - 1] for i in range(len(locstrs), 0, -1)]),
"init_calls": "\n ".join([
"init_level=%d; " % (i + 1) +
"if((res = __init_%s(argc,argv))){" % locstr +
@@ -1121,7 +1118,7 @@
"return res;}" for i, locstr in enumerate(locstrs)]),
"cleanup_calls": "\n ".join([
"if(init_level >= %d) " % i +
- "__cleanup_%s();" % locstrs[i - 1] for i in xrange(len(locstrs), 0, -1)])
+ "__cleanup_%s();" % locstrs[i - 1] for i in range(len(locstrs), 0, -1)])
}
else:
plc_main_code = targets.GetCode("plc_main_head.c") % {
@@ -1395,9 +1392,9 @@
if editor_name == "":
if len(editors) == 1:
- editor_name = editors.keys()[0]
+ editor_name = list(editors.keys())[0]
elif len(editors) > 0:
- names = editors.keys()
+ names = list(editors.keys())
dialog = wx.SingleChoiceDialog(
self.AppFrame,
_("Select an editor:"),
@@ -1434,7 +1431,7 @@
self._IECRawCodeView = None
if self._ProjectFilesView == view:
self._ProjectFilesView = None
- if view in self._FileEditors.values():
+ if view in list(self._FileEditors.values()):
self._FileEditors.pop(view.GetFilePath())
def _Clean(self):
@@ -1506,7 +1503,7 @@
allmethods = self.DefaultMethods.copy()
allmethods.update(
self.MethodsFromStatus.get(status, {}))
- for method, active in allmethods.items():
+ for method, active in list(allmethods.items()):
self.ShowMethod(method, active)
self.previous_plcstate = status
if self.AppFrame is not None:
@@ -1552,7 +1549,7 @@
debug_vars = UnpackDebugBuffer(
debug_buff, self.TracedIECTypes)
if debug_vars is not None:
- for IECPath, values_buffer, value in izip(
+ for IECPath, values_buffer, value in zip(
self.TracedIECPath,
self.DebugValuesBuffers,
debug_vars):
@@ -1578,7 +1575,7 @@
buffers, self.DebugValuesBuffers = (self.DebugValuesBuffers,
- [list() for dummy in xrange(len(self.TracedIECPath))])
+ [list() for dummy in range(len(self.TracedIECPath))])
ticks, self.DebugTicks = self.DebugTicks, []
@@ -1603,7 +1600,7 @@
self.TracedIECTypes = []
if self._connector is not None and self.debug_status != PlcStatus.Broken:
IECPathsToPop = []
- for IECPath, data_tuple in self.IECdebug_datas.iteritems():
+ for IECPath, data_tuple in self.IECdebug_datas.items():
WeakCallableDict, _data_log, _status, fvalue, _buffer_list = data_tuple
if len(WeakCallableDict) == 0:
# Callable Dict is empty.
@@ -1627,10 +1624,10 @@
if Idxs:
Idxs.sort()
- IdxsT = zip(*Idxs)
+ IdxsT = list(zip(*Idxs))
self.TracedIECPath = IdxsT[3]
self.TracedIECTypes = IdxsT[1]
- res = self._connector.SetTraceVariablesList(zip(*IdxsT[0:3]))
+ res = self._connector.SetTraceVariablesList(list(zip(*IdxsT[0:3])))
if res is not None and res > 0:
self.DebugToken = res
else:
@@ -1695,7 +1692,7 @@
else:
IECdebug_data[4] = reduce(
lambda x, y: x | y,
- IECdebug_data[0].itervalues(),
+ iter(IECdebug_data[0].values()),
False)
self.AppendDebugUpdate()
@@ -1732,7 +1729,7 @@
if data_tuple is not None:
WeakCallableDict, _data_log, _status, _fvalue, buffer_list = data_tuple
# data_log.append((debug_tick, value))
- for weakcallable, buffer_list in WeakCallableDict.iteritems():
+ for weakcallable, buffer_list in WeakCallableDict.items():
function = getattr(weakcallable, function_name, None)
if function is not None:
# FIXME: apparently, despite of weak ref objects,