Information
We are currently investigating an issue with the editor of some pages. Please save your work and avoid to create new pages until this banner is gone.
Several errors installing modules. Most of them due versions of python modules not compatible with python 3.
gnuplotlib
. I don't see why we could not install both.sqlite3
modulemv $OMNI_ROOT/lib/python3.* $OMNI_ROOT/lib/python
python
executable. Python 3 installs an exectuable that is called python3
.python
, according to base OS specification. It was decided in a first pass, that this will be the first approach used.== XSD Compiling with pyxbgen (Python): ACSError Deprecated complexTypeDefinition method "content" invoked Please use "orderedContent" File "/alma/ACS-2018JUN/ACSSW/bin/generateXsdPythonBinding", line 172, in <module> sys.exit(main(sys.argv[1:])) File "/alma/ACS-2018JUN/ACSSW/bin/generateXsdPythonBinding", line 150, in main flist,nslist = find_schema_files(ebs, xml.name) File "/alma/ACS-2018JUN/ACSSW/bin/generateXsdPythonBinding", line 55, in find_schema_files for elem in ebs.content():
make install
. pyc files since python3.2 are mandatorily store in a __pycache__ folder, and the syntax of the file name has changed.acsGetSpecificJars.py
: This is a python script that prepares the whole path to a list of jar files. This script failed silently in the make command, even with MAKE_VERBOSE=1. Corrected.Module | 2to3 | pylint | compiles/installs | Tests passes | Comments |
---|---|---|---|---|---|
ExtProd | |||||
Boost | NOT DONE | NOT DONE | OK | Calling Boost's bootstrap with specific python version. | |
Python | OK | NOT DONE | OK | Updated to 3.6.6, added python to python3 link in the Makefile, added symbolic link to include, so boost can pick it up | |
PyModules | OK | NOT DONE | OK | Several libraries removed/updated/added | |
OmniORB | OK | NOT DONE | OK | Updated to 4.2.2. PYTHONPATH for omni ORB now includes python version. | |
Tcltk | OK | NOT DONE | OK | Added seqSh and seqWish links in $TCLTK_ROOT/bin in the Makefile | |
Kit | |||||
acs | OK | OK | OK | OK | Modified rules in acsMakefile for pycache. Severals scripts ported. |
acsutilpy | OK | OK | OK | OK | Corrected the tests |
Tools | |||||
extpy | NOT DONE | NOT DONE | NOT DONE | OK | All modules moves to Tools/PyModules |
xsddoc | NOT DONE | NOT DONE | NOT DONE | OK | |
CommonSoftware | |||||
xmlpybind | OK | OK | OK | OK | |
acsstartup | OK | OK | OK | OK | subprocess returns bytes as stdout/err. https://stackoverflow.com/questions/606191/convert-bytes-to-a-string#606199 mock is included since python 3.3. Removing from dependencies. |
loggingidl | PENDING | PENDING | OK | OK | |
acserr | OK | OK | OK | OK | |
acserrTypes | OK | OK | OK | OK | |
baciidl | PENDING | PENDING | OK | OK | |
loggingts | OK | OK | OK | OK | config had several code generator used only in testing. Python code generator needed porting to python3. |
cdb | PENDING | PENDING | OK | OK | |
cdb_rdb | OK | OK | OK | OK | Test case had a python script. |
recovery | OK | OK | OK | OK | Test script ported to python3 and fixed indentation. |
acstime | NOT DONE | NOT DONE | OK | OK | Had a swig generated python and c++ interface. Forced its regeneration. |
acsnc | OK | PENDING | OK | NOT DONE | Test cases had python scripts. Ported to python3. Test cases failing to the same error as before. |
acsdaemon | PENDING | PENDING | PENDING | PENDING | |
acstestcompcpp | PENDING | PENDING | PENDING | PENDING | |
acspycommon | OK | OK | OK | OK | XYZSeq has an increment method that was implemented through lambda. TEST. |
acsalarmpy | OK | OK | OK | OK | |
acspy | OK | OK | OK | OK | Indentation issues in python code. |
nsStatisticsService | PENDING | PENDING | PENDING | PENDING | |
jbaci | PENDING | PENDING | PENDING | PENDING | |
monitoring | PENDING | PENDING | PENDING | PENDING | |
acssamp | PENDING | PENDING | PENDING | PENDING | |
acspyexmpl | OK | OK | OK | OK | |
nctest | PENDING | PENDING | PENDING | PENDING | |
acssim | OK | OK | OK | OK | TODO: FloatSeq should by in acspy |
bulkDataNT | PENDING | PENDING | PENDING | PENDING | |
containerTests | OK | OK | OK | OK | |
* contLogTest | OK | OK | OK | OK | |
* conNcTests | OK | OK | OK | OK | |
acscourse | PENDING | PENDING | PENDING | PENDING | |
ACSLaser (demo) | OK | OK | OK | OK | |
acsncdds | PENDING | PENDING | PENDING | PENDING |
List of files that could contain python code (and are not .py files)
acserr/ws/config/AES2Py.xslt:<xsl:text>#!/usr/bin/env python acserr/ws/test/pythonTest.sh:python test_AES2Py.py acserr/ws/test/Makefile:SCRIPTS_L = acserrTestRun.sh startAcserrTest.sh testJUnitACSERRnoRuntime pythonTest acsGUIs/alarmPanel/test/Makefile:# jagonzal: These are shell scripts not python scripts ACSLaser/baciPropsTest/test/Makefile:# jagonzal: These are python scripts not shell scripts ACSLaser/alarmTests/test/Makefile:# jagonzal: This is a shell script not a python script ACSLaser/demo/test/Makefile:# jagonzal: These are shell scripts not python scripts acsncdds/test/testCDB:#!/usr/bin/env python acsncidl/ws/test/acsncidlPy:python -c 'from acsnc import EventDescription' acspy/bin/acspyInteractiveContainer:exec python -i $PYBINARY $@ -interactive acspy/bin/ACSStartContainerPy:#!/usr/bin/env python acspy/bin/ACSPyConsole:#!/usr/bin/env python acspy/bin/ACSPyConsole:Starts an ACS interactive python console. acspy/bin/acsLoggingMonitor:#!/usr/bin/env python acspy/src/acspyInteractiveContainer:exec python -i $PYBINARY $@ -interactive acspy/src/acsLoggingMonitor:#!/usr/bin/env python acspycommon/test/acspyTestLoggingStatistics.sh:LOCATION=TST-STE python ../bin/acspyTestLoggingStatistics 2>&1; acspycommon/test/acspyTestLoggingStatistics.sh:python ../bin/acspyTestLoggingStatistics 2>&1; acssim/config/CDB/schemas/SimulatedComponent.xsd: <xs:element name="pythonImports" type="imports" minOccurs="0"/> acssim/src/recordEvents:#!/usr/bin/env python acsstartup/bin/acsstartupCreateChannel:#! /usr/bin/env python acsstartup/bin/acsstartupAcsPorts: python -c "import socket; import os; print str(socket.gethostbyname(os.environ['ACS_HOST']))" acsstartup/bin/acsstartupAcsPorts: python -c "import socket; print(str(socket.gethostbyname(socket.getfqdn())))" acsstartup/bin/acsstartupAcsPorts: python -c "import socket; print(str(socket.gethostbyname(socket.getfqdn().split('.')[0])))" acsstartup/bin/acsdataClean:#!/usr/bin/env python acsstartup/bin/killACS:#!/usr/bin/env python acsstartup/bin/acsstartupRemovePID:#!/usr/bin/env python acsstartup/bin/acsNotifysStatus:#!/usr/bin/env python acsstartup/bin/acsstartupNotifyPort:#!/usr/bin/env python acsstartup/bin/acsstartupContainerPort:#!/usr/bin/env python acsstartup/bin/acsContainersStatus:#!/usr/bin/env python acsstartup/src/acsstartupAcsPorts: python -c "import socket; import os; print(str(socket.gethostbyname(os.environ['ACS_HOST'])))" acsstartup/src/acsstartupAcsPorts: python -c "import socket; print(str(socket.gethostbyname(socket.getfqdn())))" acsstartup/src/acsstartupAcsPorts: python -c "import socket; print(str(socket.gethostbyname(socket.getfqdn().split('.')[0])))" acstime/ws/src/acstimeSWIG_wrap.cpp:/* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */ acstime/ws/src/acstimeSWIG_wrap.cpp:/* The python void return value */ acstime/ws/src/acstimeSWIG_wrap.cpp: printf("swig/python detected a memory leak of type '%s', no destructor found.\n", name); acstime/ws/src/acstimeSWIG_wrap.cpp: is copied out of Python/modsupport.c in python version 2.3.4 */ acstime/ws/src/acstimeSWIG_wrap.cpp:/* The python cached type query */ acstime/ws/src/acstimeSWIG_wrap.cpp:# error "This python version requires swig to be run with the '-classic' option" acstime/ws/src/acstimeSWIG_wrap.cpp: In python the user should not be able to modify the inner acstime/ws/src/acstimeSWIG_wrap.cpp: SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string acstime/ws/src/Makefile:_acstimeSWIG_LIBS = baci ACSTimeError maciErrType python2.7 acstime/ws/src/Makefile: @$(RM) $(INSTALL_ROOT)/lib/python/site-packages/_acstimeSWIG.$(SHLIB_EXT) acstime/ws/src/Makefile: @cp ../lib/lib_acstimeSWIG.$(SHLIB_EXT) $(INSTALL_ROOT)/lib/python/site-packages/_acstimeSWIG.$(SHLIB_EXT) acstime/ws/src/Makefile: @swig -c++ -python ../config/acstimeSWIG.i acsutil/ws/bin/acsutilProfiler: elapsed=`python -c "print $stop - $start"` acsutil/ws/bin/acsutilProfiler: totalTime=`python -c "print $elapsed + $totalTime"` acsutil/ws/bin/acsutilProfiler: minDuration="`python -c "print min($minDuration,$elapsed)"`" acsutil/ws/bin/acsutilProfiler: maxDuration="`python -c "print max($maxDuration,$elapsed)"`" acsutil/ws/bin/acsutilProfiler:averageTime=`python -c "print $totalTime / $CL_RUNS"` acsutil/ws/src/python: PYTHONSHELL="exec $PYTHON_ROOT/bin/python" acsutil/ws/src/acsutilProfiler: elapsed=`python -c "print $stop - $start"` acsutil/ws/src/acsutilProfiler: totalTime=`python -c "print $elapsed + $totalTime"` acsutil/ws/src/acsutilProfiler: minDuration="`python -c "print min($minDuration,$elapsed)"`" acsutil/ws/src/acsutilProfiler: maxDuration="`python -c "print max($maxDuration,$elapsed)"`" acsutil/ws/src/acsutilProfiler:averageTime=`python -c "print $totalTime / $CL_RUNS"` baciidl/ws/test/baciidlPy:python -c 'from maci import Container' cdbChecker/test/testdata/defaultCDB/CDB/schemas/SimulatedComponent.xsd: <xs:element name="pythonImports" type="imports" minOccurs="0"/> loggingts/ws/config/LTS2Py.xslt:<xsl:text>#! /usr/bin/env python maciidl/ws/test/maciidlPy:python -c 'from maci import Container' xmlpybind/bin/generateXsdPythonBinding:#! /usr/bin/env python
EntitybuilderSettings.py
is used by generateXsdPythonBinding.py
, in the same ACS module. It iterates over the returns content, which is an attribute no longer available. Replacing it by orderedContent did no good.int
.2to3
and pylint
will be your friends2to3
does an excellent job, but there are still some things it does not handle:2to3 -w -n src -o src.new
. This will take everything in src, convert and save it to src.new.meld
to compare both directories, and copy what you determine is correct.pylint
can be used to detect and manually correct indentation issues. Python3 is more strict with indentation. Several parts of the code needed to be clearly understood, as code blocks in python without indentation do not necessaryly make sense on its own.int
.