6 ms·
It's not only the compatibility that is ugly. It's also that python 2 code has a couple of ugly warts, such as the forced arguments for super(). The only way I'
by JelteF 10y ago
It's not only the compatibility that is ugly. It's also that python 2 code has a couple of ugly warts, such as the forced arguments for super(). The only way I'm supporting python 2 with my libraries is by running 3to2 and pasteurize (future package) over the python 3 source code.
I really don't want to actually have source code that works on both, it's a pain to maintain. Although the future library should make it a lot nicer, but you still need a lot of ugly from __future__ imports as well.
- xapata 10y agoI've been using 3.6 for some personal work and man are f-strings and ordered dicts wonderful. I don't want to go back.
- renesd 10y ago1_000_000 times this.
- TylerE 10y agoOrderedDict is just a stdlib import away in Py2.7.
- xapata 10y agoYeah, but... those are ugly. ``m = {}`` is beautiful.
- Macha 10y agodict == OrderedDict is a cpython implementation detail. Not doing the import is just leaving a footgun for yourself if you ever decide to try PyPy or VOC or similar.
- rspeer 10y agoI don't think it's much of a footgun, and I don't think it's limited to CPython. In Python 3.6, kwargs are ordered. In all versions of Python, kwargs are a dict. Therefore, in any implementation of Python 3.6, dicts are ordered. The dev team has stopped short of promising that dicts are ordered, but I can't see how one would realistically be harmed by assuming it to be true.
- xapata 10y agoThe 3.6 CPython dict item storage algorithm was implemented in PyPy first.