Python 3 - это будущее Python, он широко доступен в средах, в которых развернут Mopidy, и я очень заинтересован в возможности использовать asyncio, для которого требуется Python 3.3+. За пределами проекта Mopidy ничто не мешает нам перейти на Python 3.
Это основная ошибка, позволяющая отслеживать наш путь к запуску Mopidy на Python 3.
from __future__ import unicode_literals
и пометьте двоичные строки с помощью b'foo'
.2to3
.Привет, я хотел бы помочь с миграцией на Python 3, что-нибудь конкретное, что сейчас происходит? не хочу никому наступать на пятки
Я открыл ветку в jodal / feature / py3-compat, где у меня:
Я не касался этого с ноября, за исключением того, что пару дней назад я перебазировал ветку поверх Mopidy 2.0.0. Текущее состояние таково, что я исправил около 1000 тестов, осталось около 240.
В планах на будущее:
хорошо, я открою эту ветку и постараюсь исправить все тесты, которые смогу
Привет, ребята, есть новости по этому поводу?
На это осталось 3½ года 😉
Есть ли обновления по этому поводу?
Перенос на Python 3 - моя личная первоочередная задача при работе над Mopidy, проблема в том, что я был очень занят работой в течение последнего года.
Мой текущий план, в примерном порядке, заключается в следующем:
Как видите, есть несколько задач, которые необходимо выполнить перед началом самого портирования. Тем не менее, большая часть работы уже завершена: переписывание pyspotify для работы на Python 3 (здесь были потрачены два года моего свободного времени) и перенос Mopidy на GStreamer 1.x (один отпуск для отца из свободного времени, проведенного здесь).
Я доберусь туда, но это займет время. Если люди хотят помочь, я думаю, что наиболее полезным было бы помочь с расширениями портов на Python 3, как только Mopidy будет поддерживать 2 + 3.
Спасибо за обновление, @jodal.
Думаю, переход на Python3 - хорошая идея.
Я новичок в mopidy и никогда не участвовал в этом, вы думаете, что я
может вам чем-то помочь?
El mié., 22 мар. de 2017 а ля (а) 07:08, Frederick Gnodtke <
[email protected]> подписка:
Спасибо за обновление, @jodal https://github.com/jodal .
-
Вы получаете это, потому что подписаны на эту беседу.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/mopidy/mopidy/issues/779#issuecomment-288352544 или отключить звук
нить
https://github.com/notifications/unsubscribe-auth/AHQMO8UqLNKzfVQZAZJ3Pnjx2N7MsHg4ks5roPMEgaJpZM4CMq8p
.
Любая помощь в проекте, которая освобождает часть бремени обслуживания, помогает в достижении больших непростых целей, таких как Python 3, поскольку освобождает время сопровождающих либо для работы над более крупными проблемами, либо для проведения надлежащего анализа кода для более крупных вкладов, что может быть довольно утомительно и отнимает много времени. Два основных примера помогают другим пользователям отлаживать свои проблемы и воспроизводить возможные ошибки, минимизировать шаги, необходимые для воспроизведения, и документировать результаты в проблемах.
@jodal Где мы можем увидеть вашу работу с python3?
С уважением
@jodal ветка py3-compat, которую вы упомянули, выглядит немного ... заброшенной. Есть где-нибудь новый?
Я подумываю о написании расширения, и я бы предпочел копаться в некоторых ошибках py3 в нестабильной ветке mopidy, а не вспоминать неприятные обходные пути py2.
Какой статус по этому поводу? есть ли версия mopidy, которую можно использовать с python3?
Pylast зависимостей скоро прекратит поддержку устаревшего Python 2: https://github.com/pylast/pylast/issues/265
Привет,
В настоящее время я поддерживаю pylast в Debian. Я собираюсь загрузить последнюю версию ([1]), которая больше не поддерживает Python 2.7.
Я планирую опубликовать эту версию в конце февраля, если mopidy все еще использует Python 2, не будет включен
в следующем выпуске Debian, что может быть позором, поскольку mopidy - потрясающая программа: smiley:
Есть ли официальная ветка где это происходит? Я хочу помочь этому случиться
С Уважением
@jodal Расширения здесь блокируют? Если это так, я бы предложил открыть проблему для каждого расширения и сослаться на них здесь, чтобы отслеживать. Если вы можете дать некоторые инструкции по вопросу о том, какие изменения, вероятно, потребуются, то люди, которые еще не знакомы с Python (например, я), могут все еще помочь.
PS Я рад помочь с расширениями, которые я использую (GMusic, Iris, Podcast, Scrobbler, Spotify), просто не знаю, что мне делать в данный момент.
Привет, ребята, может кто-нибудь уточнить статус адаптации к python3? Есть ли у нас какие-либо оценки, когда будет выпущена первая версия python3? Спасибо.
Я по-прежнему привержен портированию Mopidy на Python 3. Я не позволю Mopidy умереть с Python 2.
Большая часть работы по переводу нас на Python 3 была сделана много лет назад, чтобы гарантировать, что все наши зависимости работают на Python 3:
Как вы, вероятно, можете прочитать между строк из долгой истории этой проблемы и состояния системы отслеживания проблем, этот проект и открытый исходный код в целом не были для меня главным приоритетом с тех пор, как я перешел из работы на большом предприятии в стартап. три года назад.
Однако я медленно начинаю снова брать свои проекты с открытым исходным кодом. Я пытаюсь сосредоточиться на одном проекте за раз и отправить его, прежде чем браться за следующий. Пока что Mopidy.js и Mopidy-MPRIS получили нежную любовь и заботу. В настоящее время я работаю над новой версией Pykka , которая среди других небольших улучшений значительно сократит время запуска многих настроек Mopidy.
После того, как Pykka 2 будет выпущен, моя основная цель - перевести Mopidy на Python 3.
Я не буду давать никаких оценок времени, когда эта работа будет завершена, так как это просто настроит меня на провал. Все во многом зависит от внешних факторов и мотивации.
Что касается помощи, я не вижу, чтобы новые участники могли что-то сделать, чтобы напрямую существенно помочь усилиям. Я все еще не вернулся к работе над открытым исходным кодом в предсказуемой и регулярной ритме, поэтому PR-обзоры быстро станут демотивацией для обеих сторон. Как упоминалось ранее в этом выпуске, любая помощь по снижению общей нагрузки на техническое обслуживание всегда помогает косвенно.
Что касается других основных разработчиков, я уверен, что они смогут помочь, но у всех нас есть свои приоритеты и проекты. Я не буду ждать, пока наше время и мотивация все выровняются. Если они присоединятся, как только я начну должным образом работать над Mopidy 3, это будет прекрасно, но у меня нет никаких ожиданий.
Если отбросить всю мою бессвязную жизнь и все остальное, это не грандиозная задача и не задача, с которой я незнаком. В основном это вопрос завершения других текущих дел, чтобы на какое-то время это могло стать основным фокусом.
С тех пор, как я написал последний план здесь в марте 2017 года, внедрение Python 3 зашло так далеко, что я больше не вижу смысла в постепенных шагах от Python 2 только через 2 + 3 только к Python 3. Mopidy 2.x достаточно хорошо служил нам в течение трех лет и будет хорошим и стабильным местом, чтобы оставить тех, кто застрял на Python 2 по какой-либо причине.
Таким образом, пересматривая план от марта 2017 года, я представляю себе такой процесс:
pip install mopidy
, но дает возможность запустить pip install --pre mopidy
для установки предварительной версии для тестирования перенесенных расширений.Поскольку прошло пять месяцев, я думаю, пора обновить эту проблему. Релиз Pykka, о котором я говорил в прошлый раз, был отправлен как Pykka 2.0 шесть недель назад. С тех пор я снова начал работать над Mopidy:
release-2.2
нет ничего невыпущенного.develop
которая станет Mopidy 3.0, большая часть устаревшего материала была удалена.Следующим для меня, вероятно, будет:
Могу ли я что-нибудь сделать, чтобы сделать ядро mopidy или плагин mopidy-soundcloud, работающим с python3?
Спасибо за вашу работу @jodal!
Мне интересно, как мы должны устанавливать документы при использовании версии Sphinx для Python 3 для их сборки (с запросом на упаковку)?
Раньше я делал make -C docs SPHINXBUILD=sphinx-build-2 man
но меняя это на sphinx-build-3
только ошибки:
make: Entering directory '/home/builder/aports/community/mopidy/src/Mopidy-3.0.0a1/docs'
sphinx-build-3 -b man -d _build/doctrees . _build/man
Running Sphinx v1.8.4
Configuration error:
The configuration file (or one of the modules it imports) called sys.exit()
Это происходит как в 2.2.3, так и в 3.0.0a1. Или эта часть просто еще не портирована?
Учитывая, что v3 в любом случае нарушит обратную совместимость, а python2 будет прекращен в январе, есть ли причина сохранять совместимость python2 в v3?
@tmccombs сказал:
Учитывая, что v3 в любом случае нарушит обратную совместимость, а python2 будет прекращен в январе, есть ли причина сохранять совместимость python2 в v3?
Нет, мы не планируем сохранять совместимость с Python 2 в Mopidy 3.
Цитирую себя из февраля:
С тех пор, как я написал последний план здесь в марте 2017 года, внедрение Python 3 зашло так далеко, что я больше не вижу смысла в постепенных шагах от Python 2 только через 2 + 3 только к Python 3. Mopidy 2.x достаточно хорошо служил нам в течение трех лет и будет хорошим и стабильным местом, чтобы оставить тех, кто застрял на Python 2 по какой-либо причине.
@PureTryOut сказал:
Это происходит как в 2.2.3, так и в 3.0.0a1. Или эта часть просто еще не портирована?
Ни один из Mopidy еще не был портирован на Python 3. Мы просто сделали другие упрощения и удалили устаревшие вещи, чтобы упростить переход. После того, как мы портируем, мы создадим документы с помощью Sphinx, работающего на Python 3.
Могу я посоветовать убедиться, что следующий выпуск (2.4.0?) Совместим с Python 3? Большинство дистрибутивов работают над тем, чтобы избавиться от своих пакетов Python 2. В моем случае Alpine Linux отказывается от Python 2 к следующему выпуску (3.11, конец января следующего года), что означает, что Mopidy будет удален из репозиториев, если к тому времени он не будет совместим с Python 3.
Mopidy 3.0 будет совместим с Python 3. Планируется выпустить его до конца года.
Привет, @jodal , в ближайшие недели у меня может быть несколько свободных циклов, чтобы помочь с некоторыми функциями Python 3. Либо в мопиды напрямую, либо в пристройках. У вас есть какие-то особые проблемы, которые нужно решить?
Привет @zubieta!
Недавно мы объединили тестовую установку, которая успешно запускает ~ 10% набора тестов на Python 3. Скоро будет объединено несколько PR, что увеличит это значение до ~ 20%. Пожалуйста, проверьте, какие PR уже открыты, чтобы не дублировать какую-либо работу, и посмотрите описание # 1809 для пошагового руководства о том, как портировать еще несколько модулей и их тесты.
Расширения появятся, как только ядро Mopidy будет работать на Python 3.
Думаю, пора обновить статус Mopidy и Python 3 ...
Каждый из тестов 2016 года в наборе тестов Mopidy теперь работает как на Python 2.7, так и на Python 3.7. Вся эта работа объединена в ветку develop
. Огромное спасибо @kingosticks за помощь в портировании!
Я только что выпустил ветку develop
как есть для PyPI как Mopidy 3.0.0a2 . Его можно установить с помощью:
python3.7 -m pip install --pre mopidy
Этот выпуск не подвергался никакому обширному тестированию, кроме прохождения набора тестов, ответов на несколько запросов через MPD и HTTP и воспроизведения нескольких файлов MP3.
Mopidy 3.0.0a2, вероятно, будет единственным выпуском Mopidy, который когда-либо поддерживал как Python 2, так и 3. Мы незамедлительно начнем удалять поддержку Python 2.7 и сделаем Mopidy более чистой и современной базой кода Python.
План к финальному релизу примерно следующий:
Параллельно с движением к финальной версии 3.0 нам нужна помощь с остальной частью экосистемы из 122 пакетов на PyPI, найденных при поиске по запросу «mopidy».
Для каждого интересующего вас расширения:
76 коммитов, 204 файла изменено, 9832 вставки (+), 9612 удалений (-) позже, у нас есть еще один предварительный выпуск: Mopidy 3.0.0a3 теперь находится на PyPI. Его можно установить с помощью:
python3 -m pip install --pre mopidy
Новое с 3.0.0a2:
mopidy.compat
пропал.# encoding: utf-8
комментариев больше нет.from __future__ ...
импорта больше нет.object
удалены..encode()
и .decode()
больше не включают явный аргумент "utf-8"
.black
. :злое сердце:isort
теперь настроены и могут использоваться для очистки импорта при необходимости.mock
заменяется на unittest.mock
.assert
, что означает лучшую читаемость и лучшие сообщения об ошибках.%
и .format()
заменяются f-строками.setup.py
свернуто и заменено декларативным setup.cfg
.tox.ini
, dev-requirements.txt
и docs/requirements.txt
заменены на "extras" в setup.cfg
. Это означает, что зависимости разработчика теперь устанавливаются с помощью python3 -m pip install -e ".[dev]"
.Путь впереди все еще выглядит так, как я написал в предыдущем комментарии.
Что касается ядра Mopidy, я думаю, что мы на этом закончили.
Оставшийся путь к финалу Mopidy 3.0 отслеживается в вехе v3.0:
https://github.com/mopidy/mopidy/milestone/55
Перенос ключевых расширений на Python 3 отслеживается на этой доске проекта:
https://github.com/orgs/mopidy/projects/2
Если вы протестируете Mopidy на Python 3 в ближайшем будущем, пожалуйста, открывайте вопросы для любых проблем, с которыми вы столкнетесь!
Самый полезный комментарий
Я по-прежнему привержен портированию Mopidy на Python 3. Я не позволю Mopidy умереть с Python 2.
История
Большая часть работы по переводу нас на Python 3 была сделана много лет назад, чтобы гарантировать, что все наши зависимости работают на Python 3:
Как вы, вероятно, можете прочитать между строк из долгой истории этой проблемы и состояния системы отслеживания проблем, этот проект и открытый исходный код в целом не были для меня главным приоритетом с тех пор, как я перешел из работы на большом предприятии в стартап. три года назад.
Однако я медленно начинаю снова брать свои проекты с открытым исходным кодом. Я пытаюсь сосредоточиться на одном проекте за раз и отправить его, прежде чем браться за следующий. Пока что Mopidy.js и Mopidy-MPRIS получили нежную любовь и заботу. В настоящее время я работаю над новой версией Pykka , которая среди других небольших улучшений значительно сократит время запуска многих настроек Mopidy.
Следующий
После того, как Pykka 2 будет выпущен, моя основная цель - перевести Mopidy на Python 3.
Я не буду давать никаких оценок времени, когда эта работа будет завершена, так как это просто настроит меня на провал. Все во многом зависит от внешних факторов и мотивации.
Что касается помощи, я не вижу, чтобы новые участники могли что-то сделать, чтобы напрямую существенно помочь усилиям. Я все еще не вернулся к работе над открытым исходным кодом в предсказуемой и регулярной ритме, поэтому PR-обзоры быстро станут демотивацией для обеих сторон. Как упоминалось ранее в этом выпуске, любая помощь по снижению общей нагрузки на техническое обслуживание всегда помогает косвенно.
Что касается других основных разработчиков, я уверен, что они смогут помочь, но у всех нас есть свои приоритеты и проекты. Я не буду ждать, пока наше время и мотивация все выровняются. Если они присоединятся, как только я начну должным образом работать над Mopidy 3, это будет прекрасно, но у меня нет никаких ожиданий.
Если отбросить всю мою бессвязную жизнь и все остальное, это не грандиозная задача и не задача, с которой я незнаком. В основном это вопрос завершения других текущих дел, чтобы на какое-то время это могло стать основным фокусом.
Mopidy 3
С тех пор, как я написал последний план здесь в марте 2017 года, внедрение Python 3 зашло так далеко, что я больше не вижу смысла в постепенных шагах от Python 2 только через 2 + 3 только к Python 3. Mopidy 2.x достаточно хорошо служил нам в течение трех лет и будет хорошим и стабильным местом, чтобы оставить тех, кто застрял на Python 2 по какой-либо причине.
Таким образом, пересматривая план от марта 2017 года, я представляю себе такой процесс:
pip install mopidy
, но дает возможность запуститьpip install --pre mopidy
для установки предварительной версии для тестирования перенесенных расширений.