Openlibrary: Работает как на Python 2, так и на Python 3

Созданный на 19 мар. 2018  ·  20Комментарии  ·  Источник: internetarchive/openlibrary

Заблокировано: internetarchive / infogami # 56, internetarchive / infogami # 50

Как обсуждалось в # 846, в базе кода Internet Archive Code есть много кода, который в настоящее время написан на Python 2 и не рекомендуется для Python 3.

Следующая ссылка рассказывает о ключевых отличиях Python 2 от Python 3.

РЕДАКТИРОВАТЬ: Обновлено в соответствии с предложениями @cclauss

  • [x] Сделайте кодовую базу совместимой с синтаксисом Python 3 (см. __make lint__ при запуске на Py3, чтобы узнать наш статус)

    • [x] # 1466 Исправьте возникновение исключений в Python 3

    • [x] # 1509 Добавьте __six__ к нашим требованиям (я считаю это менее тонким, чем __future__, упомянутым ниже).

    • [x] # 1517 Параметры функции не могут быть явными кортежами в Python 3

    • [x] # 1603 Вернуть исправления __lambda__, которые были отменены из # 1466

    • [x] # 1468 Неверный формат escape-символа \ N в каталоге / marc / load.py

    • [x] # 1501 __print () __ - это функция в Python 3 в plugins / upstream / acs4.py

    • [x] Неопределенные имена __python3 -m flake8. --count --exclude = сценарии / 20 , поставщик / --select = F821__

    • [x] PR для __basestring__ # 1563

    • [x] PR для __cmp () __ # 1643

    • [x] PR для __execfile () __ # 1525

    • [x] PR для __file () __ # 1564

    • [x] PR для __raw_input () __ # 1526

    • [x] PR для __unicode__ (это непростой вопрос, и его лучше оставить напоследок.)



      • [x] PR для __xrange () __ # 1524



  • [x] Обновите наши зависимости, чтобы убедиться, что у нас есть поддержка Python 3 (некоторые подсказки см. в №1454).
  • [x] Исправьте продаваемые вещи вроде __infogami__

    • [x] __More options__, __Trigger build__ на https://travis-ci.org/internetarchive/acs4_py

    • [x] internetarchive / acs4_py # 7

    • [x] internetarchive / infogami №40

    • [x] internetarchive / infogami №42

    • [x] internetarchive / infogami №43

    • [x] internetarchive / infogami # 56 Cherrypick: импорт сейфа из # 50

    • [x] internetarchive / infogami # 50 Другие обновления Python 3

    • [x] internetarchive / infogami проходит тесты Travis CI на Python 3

  • [x] Пройдите тесты Travis и отключите режим __allow_failures__ на Python 3
  • [] Тест, Тест, Тест
@cclauss 2 Work In Progress Epic

Самый полезный комментарий

Спасибо, что создали отдельную проблему для отслеживания этого. Задача определенно имеет низкий приоритет, но непростой и непростой проект для начинающих, поэтому я удалил оба этих ярлыка.

Такие вещи чувствительны ко времени, поэтому случайный пост в блоге 3-4-летней давности не является хорошим источником информации. Для целей планирования важны такие вещи, как: когда все необходимые библиотеки будут поддерживать Python 3, когда они откажутся от поддержки Python 2, как выглядят последние инструменты миграции и т. Д.

НО, поскольку это низкий приоритет, у нас есть более важные вещи, о которых нужно подумать в ближайшей перспективе.

Все 20 Комментарий

Рискуя заявить очевидное, приоритет, скорее всего, должен быть отдан определению тех функций Python 2, которые как a) будут нарушены в Python 3, так и b), используются в OL.

Спасибо, что создали отдельную проблему для отслеживания этого. Задача определенно имеет низкий приоритет, но непростой и непростой проект для начинающих, поэтому я удалил оба этих ярлыка.

Такие вещи чувствительны ко времени, поэтому случайный пост в блоге 3-4-летней давности не является хорошим источником информации. Для целей планирования важны такие вещи, как: когда все необходимые библиотеки будут поддерживать Python 3, когда они откажутся от поддержки Python 2, как выглядят последние инструменты миграции и т. Д.

НО, поскольку это низкий приоритет, у нас есть более важные вещи, о которых нужно подумать в ближайшей перспективе.

Полное согласие с @tfmorris по всем направлениям.
Спасибо за организацию проблемы для этого, так как в конечном итоге нам нужно будет выяснить, как поддерживать infogami .

Хм, есть «приоритеты», а есть «приоритеты». Что важно, может не быть срочным, и наоборот. Я бы сказал, что это важно, но не срочно. Если пренебрегать им достаточно долго, это обязательно приведет к поломке.

@LeadSongDog С кем вы не согласны? Что бы вы хотели изменить по отношению к приоритетам?

@tfmorris Точно с вами не

Есть задание Travis CI, чтобы отслеживать наш прогресс в этом сейчас, благодаря PR № 1273

Привет, я новичок в OpenLibrary, но похоже, что мне было бы интересно этим заняться. Вы не возражаете, если я продолжу это делать, хотя и медленно, даже если это не «хороший первый выпуск»?

ПРИМЕЧАНИЕ. Этот список был перемещен в начало этой проблемы:

Кроме того, я бы посоветовал нам изменить заголовок этой проблемы на «__Run как на Python 2, так и на Python 3__», потому что очевидно, что лучше всего иметь кодовую базу, которая работает как на _, так и на _ до_ удаления поддержки Python 2. 423 дня до конца жизни Python 2.

@cclauss с вашего разрешения, могу ли я обновить ваше сообщение выше теперь, когда заголовок был изменен, а контрольный список обновлен? (чтобы избежать рассинхронизации двух контрольных списков)

За исключением Infogami, мы будем очень признательны за любые дополнительные шаги, которые вы можете порекомендовать: bowing_man:

Спасибо за то, что вы стали такой движущей силой в этом!

Не стесняйтесь вносить правки, которые имеют для вас смысл. Давайте сосредоточимся на доведении Infogami до точки, когда она больше не блокирует тест Трэвиса. Мое внимание было сосредоточено на другом, но, надеюсь, я смогу вернуться к работе в ближайшие недели.

Обновлен наш список задач выше, чтобы отпраздновать 100 дней до конца жизни Python 2.

Судя по болтовне и слабости, я называю это незавершенной работой. Однако правопреемника нет. Я предполагаю, что @cclauss и @ salman-bhai будут лучшими кандидатами, поскольку они являются руководителями команды Python3.

@cclauss Этот смайлик - @hornc несете ответственность почти за все PR при распределении задач.

Хотим ли мы перефразировать конкретные оставшиеся шаги / блокировщики для Python3?

Я не уверен, почему упал приоритет. Это не нужно делать до 1 января, но это нужно сделать в ближайшее время.

Основным блокировщиком сейчас является инфогами, хотя его перенос может выявить проблемы, оставшиеся в других частях системы. Вместо того, чтобы пытаться отследить здесь каждую проблему с инфогами отдельно, было бы разумнее указать на эпическую проблему верхнего уровня с инфогами в Python 3.

Похоже, у нас есть еще несколько месяцев отсрочки. В конце декабря Python Software Foundation перенесла дату выхода на пенсию (снова!) На апрель 2020 года.

https://www.python.org/psf/press-release/pr20191220/

Да, но этот проект - последний крупный проект, о котором я знаю, который еще не преодолел черту.

Был выпущен последний выпуск Python 2: https://stackoverflow.blog/2020/04/23/the-final-python-2-release-marks-the-end-of-an-era/, и он не получит больше обновлений любого рода, включая критические ошибки безопасности.

С этого момента с каждым днем ​​(на самом деле с нескольких месяцев назад) увеличивается доступ к незащищенным уязвимостям, компрометирующим производственные системы OpenLibrary.

Пора закрыть это! Спасибо всем за то, что помогли нам перейти на Python 3 !!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги