Closed StephenTerry closed 7 years ago
Thanks for this comprehensive PR. I was wondering should dicompyler move fully to Python 3 or is it worth it to keep Python 2.7 compatibility around? I tried to maintain that with dicompyler-core.
I know pylinac is Python 3 only and it hasn't slowed adoption afaik.
I personally am not tied to Python 2.7 but I figured with my previous commit it would provide a migration path for users who want to stay on Python 2 and just update library dependencies. We could tag that commit as the last supported Python 2 codebase.
If Python 3 is the way forward I wouldn't be opposed to moving this to master sooner than later.
Thoughts?
It's a tough one. I think it might not be that much more work to keep two active branches going. I think the big question is what plugin authors want to do. Maintaining a plugin for two different versions might be more work than they want to do.
You could try making both versions available and seeing which one gets downloaded the most. There's still a long way to go on the 3.6 version, so you may not need to make a decision now.
I think I am more inclined to go Python 3 all the way. I think if people really have a need, dicompyler-core can stay Py2/3, as that seems to be more of a use case as it is a library.
It's more work to release multiple versions, but I think a separate discussion should be automating releases via Travis/AppVeyor instead of the old manual build process.
That's fine with me. I'm not very fluent with wxPython, so I was leaving them in just in case, but of course you're right that we can refer to previous commits.
I made some changes to get dicompyler working in Python 3.6. It requires wxpython phoenix 4.0.0a3 or higher because of this bug with subclasses in the XRC file. This code works with the test data on Windows, but I haven't tested it on Linux or MacOS. I'm still working on some crashes I'm getting with other DICOM data. There's a corresponding pull request for dicompyler-core for some minor changes to dvhcalc.py to get the main program to work in Python 3.