On 22Jan2019 19:20, Grant Edwards <grant.b.edwa...@gmail.com> wrote:
On 2019-01-22, Schachner, Joseph <joseph.schach...@teledyne.com> wrote:
For anyone who has moved a substantial bunch of Python 2 to Python
3, can you please reply with your experience?

If you used bytes (or raw binary strings) at all (e.g. for doing
things like network or serial protocols) you're in for a lot of pain.

Yes, but you will be the better for it afterwards. I've had a few programs which worked with binary data, and often also "text". In Python 2 there was _constant_ uncertanty when these were mixed (writing text into binary fields and related). In Python 3 I am never confused. It is a huge win.

The pain here is completely offset by the relief which comes later.

Everything else is pretty minor.

Largely. It is also possible to write a _lot_ of code compatible with both 2 and 3.

 from __future__ import absolute_imports, print_function

gets you a long way. It will force these 2 things on your Python 2, making it Python 3 ready in that regard before you cut over.

I gather the 2to3 tool is useful, but it generates _separate_ Python 3 code from your python 2 codebase as I understand it. I don't like that maintenance burden. I went with portability myself for most things, and a small personal library of python 3 flavoured routines with python 2 ports for some differing behaviour (because that gets me native Python 3 performance in Python 3, post cutover - the library is basicly "import the Python 3 names" in Python 3, and "implement the same names in Python 2" where needed for the Python 2). The "six" library is apparently the go to one for this kind of thing, I gather.

The pain level is really pretty low. The bytes vs strings stuff is the most difficult, but the outcome is vastly better afterwards.

Cheers,
Cameron Simpson <c...@cskk.id.au>
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to