«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
Михаил Коробов: Как перейти на Python 3
1. Как перейти на Python 3
PyCon Russia 2013,
Михаил Коробов
2. Минутка саморекламы
● 20 своих open-source библиотек, которые
поддерживают 2.х и 3.х;
● добавил поддержку Python 3 в несколько
небольших сторонних open-source
библиотек;
● по гранту PSF добавил поддержку Python
3 в NLTK (https://github.com/nltk/nltk)
4. В чем проблема-то?
● Переводить код с 2.х на 3.х достаточно
несложно;
● можно начинать новые проекты на 3.х;
● есть утилиты 2to3, python-modernize и
другие;
● обновление программ - привычное дело.
14. Один исходный код
● Оказалось, что это возможно и практично;
● __future__ импорты очень помогают;
● библиотеки six и python-modernize.
Примеры:
● pip, virtualenv;
● django;
● pyramid;
● requests
18. 1. Тесты
● Тесты должны быть;
● они должны работать;
● их должно быть достаточно.
19. 2. Python 2.5 - не поддерживать
● __future__ - импорты;
● except Exception as e;
● b'foo';
● io;
● и т.д.
20. 3. "Осовременить" код под 2.х
from __future__ import absolute_import
from __future__ import unicode_literals
from __future__ import print_function
from __future__ import division
except Exception as e:
21. 4. Ввод-вывод
● Разобраться, как в библиотеке
организован ввод-вывод;
● для текстовых данных - "внутри" работать
с unicode;
● кодировать-декодировать данные только
при общении с "внешним миром".
22. 5. Добавить поддержку Python 3
● В tox.ini добавтить Python 3;
● если тесты падают, исправлять это.
23. 5. Добавить поддержку Python 3
Если выполнены пункты 1-4, то тесты уже
должны "почти" работать.