Idea #23470

Upgrade to Python 3

Added by Iker de Icaza Astiz over 1 year ago. Updated about 2 months ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:


I've noticed that uses stuff from Python 2.7 and that at the daq machines at DAB there is no Python 3 under /software/products.

Python 2.7 will reach EOL in a couple of months or so. Is there a plan to ditch Python2.7 and upgrade to Python3?


#1 Updated by John Freeman over 1 year ago

It's an interesting idea, though there aren't imminent plans to make the switch. As you point out, Python 3 isn't used on the computers. Of course, in the next couple of years that will likely change, though it would take only a couple of minutes to get Python 2.x set up in $DAQINTERFACE_USER_SOURCEFILE so DAQInterface sees the Python it expects. The question essentially is, is the time it takes to recode DAQInterface and thoroughly retest all its features, assumptions, error handling, etc., worth the benefit of not having people need to set up Python 2.x before running DAQInterface a couple years down the line? Something I'll think about...

#2 Updated by Eric Flumerfelt about 1 year ago

I ran 2to3 on all of DAQInterface's python files, and committed it to feature/23470_Python3_Musings.

#3 Updated by Eric Flumerfelt about 2 months ago

  • Assignee changed from John Freeman to Eric Flumerfelt

I have replaced the original "Musings" branch with a new one with a minimal set of changes needed to make the demo run. I will probably want to run the whole integration test suite under Python3 to make sure I didn't miss any functionality, but this seems to be a pretty good starting point.

#4 Updated by John Freeman about 2 months ago

Obviously regression tests should be very thorough for this kind of engine overhaul, and the integration tests mentioned are a great start. A next step after that I'd suggest would be to step through (making adjustments, of course - click on the "develop" section and then, instead of using the develop branch as described therein, use the feature branch instead) and make sure all the features described in the manual still work.

Also available in: Atom PDF