Python3 support


Is Python 3.x supported or is it planned for the near future?


Hi Helmut,

That depends on how much demand there is for it. Basically, the reason I initially wrote everything in Python 2 was that I had two major clients that were using Python 2. On top of that, it looked like other math centric packages like Sage and FEniCS were also stuck using version 2. At the same time, I just checked now and it looks like both have slowly been making the push toward Python 3, which is great.

Alright, here’s what’s on my plate and hopefully that will give you a better idea. At the moment, I’m looking at trying to do another release in January or February. The major pieces that I want done for this release are a completely revamped IO system, an improved interior point algorithm, and easy to use installers for most major platforms. As far as Python 3, that’s on the back seat until I have those major pieces done. At the same time, if Python 3 support is super important to you and you want to work out some kind of contract, I can absolutely reprioritize some of my work. Really, the major reason I haven’t gone to Python 3 is that clients have asked for Python 2 and since they’re the ones currently covering my bills, I’ve been catering to them.

In short, here’s the three options:

  1. To have it done now, send me an email about a short term contract
  2. To have it done, sooner rather than later, have a bunch of people post to this topic, so that it looks like it’s a super high priority
  3. To have a nagging reminder that I really ought to get it done, put an issue on our Github page

Anyway, let me know if this sounds reasonable. I certainly want and will eventually support Python 3 in the future.

Support for python3

I think this would be better achieved rewriting the interface through Cython. It can generate code for both language specifications, and it is almost as fast as hand written C code. It would also make it easier to debug.

Unfortunately, I don’t have enough experience with it to be of much help here.