Mopidy: Port Mopidy a Python 3

Creado en 13 jul. 2014  ·  32Comentarios  ·  Fuente: mopidy/mopidy

Python 3 es el futuro de Python, está ampliamente disponible en los entornos en los que se implementa Mopidy, y estoy bastante interesado en poder usar asyncio, que requiere Python 3.3+. No hay nada fuera del proyecto Mopidy que nos impida pasar a Python 3.

Este es el error principal para rastrear nuestro camino hacia la ejecución de Mopidy en Python 3.

  • Dependencias:

    • [x] Pykka es compatible con Python 2.6+, 3.2+.

    • [x] Tornado es compatible con Python 2.6+, 3.2+.

    • GStreamer:

    • [x] # 225: Cambie los enlaces de GStreamer Python de gst-python (solo Python 2) a PyGI (Python 2 + 3). Para que todo funcione con PyGI, se requiere un puerto de GStreamer de 0.10 a 1.x al mismo tiempo.

    • [x] # 665: Haga que los mezcladores sean independientes de GStreamer, ya que los mezcladores se eliminan en GStreamer 1.x.

    • [x] # 671: Extraiga / vuelva a implementar nuestro soporte de formato de lista de reproducción para no depender de GStreamer. Hay algunos problemas al volver a implementar esto sobre PyGI / GStreamer 1.x.

  • Mueva el estilo del código para que sea compatible con Python 2 + 3:

    • [x] código limpio de advertencia flake8.

    • [x] Elimina la compatibilidad con todas las versiones de Python anteriores a la 2.7.

    • [x] Use from __future__ import unicode_literals todas partes y marque cadenas binarias con b'foo' .

    • [x] Solucione de forma selectiva los problemas de portabilidad identificados por la herramienta 2to3 .

  • Apoyo al desarrollo:

    • [x] Use tox para ejecutar pruebas, por lo que podemos agregar fácilmente pruebas de Python 3 en paralelo con Python 2.7.

  • Mopidy-Spotify:

    • [x] Implemente el nuevo enlace libspotify, pyspotify 2, que es compatible con Python 2.7, 3.2+.

    • [x] Reimplementar Mopidy-Spotify encima de pyspotify 2.

  • Mopidy-MPRIS:

    • [x] Los enlaces de Python-Indican a libindicate se pueden reemplazar con PyGI.

    • [x] python-dbus puede ser reemplazado por GDBus a través de PyGI.

  • Ecosistema de extensión:

    • [x] Use tox como corredor de pruebas en cookiecutter-mopidy-ext para estar listo para comenzar a ejecutar pruebas también en Python 3.

    • [] Envíe solicitudes de extracción / cree problemas para la compatibilidad con Python 2 + 3 en todas las extensiones cuando Mopidy funcione en Python 2 + 3.

  • [x] Una vez que ~ todas las extensiones sean compatibles con Python 2 + 3, elimine la compatibilidad con Python 2 en Mopidy.
  • [x] Elimina Python 2isms.
  • [x] Disfrute de las nuevas funciones de Python 3, como asyncio.
C-enhancement

Comentario más útil

Todavía estoy comprometido a portar Mopidy a Python 3. No dejaré que Mopidy muera con Python 2.

Historia

La mayor parte del trabajo de trasladarnos a Python 3 se realizó hace años para asegurar que todas nuestras dependencias funcionen en Python 3:

  • Pykka ha sido compatible con Python 3 desde que se extrajo de Mopidy en 2011.
  • pyspotify 2.x fue una reescritura completa para obtener soporte para Python 3 y enlaces completos de libspotify. Solo esto tomó casi dos años de principio a fin, un trabajo que ahora es mayormente nulo gracias a que Spotify rompió gran parte de libspotify.
  • El puerto de Mopidy de GStreamer 0.10 / PyGObject a GStreamer 1.x / PyGI, lanzado en Mopidy 2.0 hace tres años, fue el proyecto principal de mi segunda licencia de paternidad.

Como probablemente pueda leer entre líneas de la larga historia de este problema y el estado del rastreador de problemas, este proyecto y el código abierto en general, no ha sido mi principal prioridad desde que pasé de trabajar en una gran empresa a una startup. hace tres años.

Sin embargo, poco a poco estoy comenzando a retomar mis proyectos de código abierto nuevamente. Estoy tratando de concentrarme en un proyecto a la vez y enviarlo antes de asumir el siguiente. Hasta ahora, Mopidy.js y Mopidy-MPRIS han recibido un tierno cariño y atención. Actualmente, estoy trabajando en una nueva versión de Pykka , que entre otras pequeñas mejoras reducirá el tiempo de inicio de muchas configuraciones de Mopidy en un factor enorme.

Siguiente

Una vez que se haya enviado Pykka 2, mi objetivo principal es mover Mopidy a Python 3.

No daré una estimación de tiempo para cuándo se completará ese trabajo, ya que eso simplemente me estaría preparando para el fracaso. Todo depende mucho de factores externos y de la motivación.

En cuanto a ayudar, no veo que haya mucho que los nuevos contribuyentes puedan hacer para ayudar de manera significativa en el esfuerzo directamente. Todavía no he vuelto a trabajar en código abierto con una cadencia predecible y regular, por lo que las revisiones de relaciones públicas se volverían rápidamente desmotivadoras para ambas partes. Como se mencionó anteriormente en este número, cualquier ayuda para reducir la carga de mantenimiento general siempre ayuda indirectamente.

En cuanto a otros desarrolladores principales, estoy seguro de que podrían ayudar, pero todos tenemos nuestras prioridades y proyectos. No esperaré nuestro tiempo y motivación para alinearnos. Si se unen una vez que empiezo correctamente con Mopidy 3, sería estupendo, pero no tengo expectativas.

Dejando a un lado todas mis divagaciones sobre la vida y todo, esta no es una tarea gigantesca ni una tarea con la que no esté familiarizado. Se trata principalmente de completar las otras cosas en curso para que esto pueda convertirse en el enfoque principal por un tiempo.

Mopidy 3

Desde que escribí el último plan aquí en marzo de 2017, la adopción de Python 3 ha llegado tan lejos que ya no veo el sentido de tomar pasos graduales desde Python 2 solo a través de 2 + 3 hasta Python 3 únicamente. Mopidy 2.x nos ha servido bastante bien durante tres años, y será un lugar bueno y estable para dejar a los que están atascados en Python 2 por cualquier motivo.

Así, revisando el plan de marzo de 2017, imagino un proceso como este:

  • [x] Elimina todas las cosas obsoletas de Mopidy. Consulte el hito v3.0 para conocer los problemas detallados.
  • [x] Transfiera Mopidy a Python 3.
  • [x] Haga una versión preliminar de PyPI, por ejemplo, 3.0.0-rc1. Esto no afectará a los que ejecutan pip install mopidy , pero permite ejecutar pip install --pre mopidy para instalar la versión preliminar para probar las extensiones portadas.
  • [x] Transfiera todas las extensiones de la organización de Mopidy a Python 3 y, opcionalmente, realice versiones preliminares a PyPI.
  • [] Port / help port otras extensiones a Python 3. Se necesita ayuda una vez que lleguemos aquí.
  • [] Realice una versión principal coordinada del núcleo de Mopidy y todas las extensiones en la organización de Mopidy.

Todos 32 comentarios

Oye, me gustaría ayudar con la migración de Python 3, ¿hay algo en particular que esté en proceso? no quiero pisar los dedos de nadie

Comencé una rama en jodal / feature / py3-compat donde tengo:

  • actualizó la verificación de la versión de Python que le impide iniciar Mopidy en Python 3
  • actualizó la configuración de tox.ini
  • comenzando a solucionar problemas de Py3 módulo por módulo, ejecutando las pruebas en Python 2 y Python 3

No he tocado esto desde noviembre, excepto que volví a basar la rama en la parte superior de Mopidy 2.0.0 hace un par de días. El estado actual es que he arreglado alrededor de 1000 pruebas, y quedan alrededor de 240.

El plan para el futuro es:

  1. Solucione el resto de los problemas módulo por módulo.
  2. Aproveche la experiencia de solucionar todos los problemas e intente obtener la mayor cantidad posible en Mopidy 2.x. Mi enfoque actual módulo por módulo cambia cosas (por ejemplo, comienza a amenazar rutas de archivo como Unicode en lugar de bytes) que no quiero aterrizar en Mopidy hasta la versión 3.0, donde se nos permite romper cosas. La diferencia no puede aterrizar hasta 3.0 debería ser lo más pequeña posible.
  3. Utilice Mopidy con Python 3, y encuentre todos los problemas que no cubren las pruebas.

ok, me desviaré de esa rama e intentaré arreglar todas las pruebas que pueda

Hola chicos, ¿alguna noticia sobre este tema?

Quedan 3 años y medio para esto 😉

¿Hay alguna actualización sobre esto?

La migración a Python 3 es mi tarea personal de mayor prioridad cuando trabajo en Mopidy, el problema es que he estado bastante ocupado con el trabajo durante el último año.

Mi plan actual, en orden aproximado, es:

  • [x] Arregle el conjunto de pruebas Mopidy-MPRIS, para que pueda sobrevivir a los próximos cambios. Esto es un poco aburrido y mi puerta es milla.
  • [x] Elimina todas las cosas obsoletas de Mopidy y haz un lanzamiento importante. Consulte este hito para conocer los problemas detallados. Esto lo espero con ansias.
  • [x] Asegúrese de que todas las extensiones de la organización de Mopidy sigan funcionando después de la eliminación y realice los cambios y las versiones necesarios.
  • [x] Transfiera Mopidy a Python 2 + 3 y realice otra versión importante.
  • [] Transfiera todas las extensiones de la organización de Mopidy a Python 3 únicamente y suéltelas.
  • [] Port / help port todas las demás extensiones solo a Python 3 y pida su liberación.
  • [] Elimina la compatibilidad con Python 2 de Mopidy.

Como puede ver, hay un par de tareas que deben realizarse primero antes de iniciar la migración. Dicho esto, el trabajo más grande ya está completo: reescribir pyspotify para trabajar en Python 3 (dos años de mi tiempo libre los pasé aquí) y migrar Mopidy a GStreamer 1.x (una licencia de paternidad de tiempo libre que pasé aquí).

Llegaré allí, pero lleva tiempo. Si la gente quiere ayudar, creo que lo más útil sería ayudar a portar extensiones a Python 3 tan pronto como Mopidy admita 2 + 3.

Gracias por la actualización, @jodal.

Creo que es una buena idea pasar a Python3.

Soy nuevo en mopidy y nunca he contribuido a ello, ¿crees que
puede ayudarte con algo?

El mié., 22 de mar. de 2017 a la (s) 07:08, Frederick Gnodtke <
[email protected]> escribió:

Gracias por la actualización, @jodal https://github.com/jodal .

-
Estás recibiendo esto porque estás suscrito a este hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/mopidy/mopidy/issues/779#issuecomment-288352544 , o silenciar
la amenaza
https://github.com/notifications/unsubscribe-auth/AHQMO8UqLNKzfVQZAZJ3Pnjx2N7MsHg4ks5roPMEgaJpZM4CMq8p
.

Cualquier ayuda con el proyecto que libere parte de la carga de mantenimiento ayuda con los grandes objetivos complicados como Python 3, ya que libera tiempo a los mantenedores para trabajar en los problemas más grandes ellos mismos o para hacer una revisión adecuada del código en contribuciones más grandes, lo que puede ser bastante agotador y lento. Dos ejemplos principales están ayudando a otros usuarios a depurar sus problemas y reproducir posibles errores, minimizar los pasos necesarios para reproducir y documentar los resultados en los problemas.

@jodal ¿Dónde podemos ver tu trabajo con python3?

Saludos

@jodal, la rama py3-compat que mencionaste parece un poco ... abandonada. ¿Hay uno nuevo en alguna parte?
Estoy considerando escribir una extensión y preferiría profundizar en algunos errores de py3 en una rama inestable de mopidy en lugar de recordar desagradables soluciones de py2.

¿Cuál es el estado de esto? ¿Existe una versión de mopidy que se pueda usar con python3?

Pylast de dependencia dejará de ser compatible con Python 2 heredado pronto: https://github.com/pylast/pylast/issues/265

Hola,
Actualmente mantengo pylast en Debian. Tengo la intención de cargar la última versión ([1]) que ya no es compatible con Python 2.7
Planeo publicar esta versión a fines de febrero, si mopidy todavía usa Python 2, no se incluirá
en la próxima versión de Debian, lo que podría ser una pena, ya que mopidy es un software increíble: smiley:

¿Hay alguna sucursal oficial donde esté sucediendo esto? Estoy dispuesto a ayudar a que esto suceda

Saludos

@jodal ¿Son las extensiones las que bloquean aquí? Si es así, sugeriría abrir un problema para cada extensión y hacer referencia a ellos aquí para realizar un seguimiento. Si puede dar algunas instrucciones en el número sobre qué cambios es probable que se requieran, entonces las personas que no están tan familiarizadas con Python (como yo) podrían ayudar.

PD: Estoy feliz de ayudar con las extensiones que uso (GMusic, Iris, Podcast, Scrobbler, Spotify), pero no sé qué hacer en este momento.

Hola amigos, ¿alguien podría aclarar el estado de la adaptación a python3? ¿Tenemos alguna estimación de cuándo se lanzará la primera versión de python3? Gracias.

Todavía estoy comprometido a portar Mopidy a Python 3. No dejaré que Mopidy muera con Python 2.

Historia

La mayor parte del trabajo de trasladarnos a Python 3 se realizó hace años para asegurar que todas nuestras dependencias funcionen en Python 3:

  • Pykka ha sido compatible con Python 3 desde que se extrajo de Mopidy en 2011.
  • pyspotify 2.x fue una reescritura completa para obtener soporte para Python 3 y enlaces completos de libspotify. Solo esto tomó casi dos años de principio a fin, un trabajo que ahora es mayormente nulo gracias a que Spotify rompió gran parte de libspotify.
  • El puerto de Mopidy de GStreamer 0.10 / PyGObject a GStreamer 1.x / PyGI, lanzado en Mopidy 2.0 hace tres años, fue el proyecto principal de mi segunda licencia de paternidad.

Como probablemente pueda leer entre líneas de la larga historia de este problema y el estado del rastreador de problemas, este proyecto y el código abierto en general, no ha sido mi principal prioridad desde que pasé de trabajar en una gran empresa a una startup. hace tres años.

Sin embargo, poco a poco estoy comenzando a retomar mis proyectos de código abierto nuevamente. Estoy tratando de concentrarme en un proyecto a la vez y enviarlo antes de asumir el siguiente. Hasta ahora, Mopidy.js y Mopidy-MPRIS han recibido un tierno cariño y atención. Actualmente, estoy trabajando en una nueva versión de Pykka , que entre otras pequeñas mejoras reducirá el tiempo de inicio de muchas configuraciones de Mopidy en un factor enorme.

Siguiente

Una vez que se haya enviado Pykka 2, mi objetivo principal es mover Mopidy a Python 3.

No daré una estimación de tiempo para cuándo se completará ese trabajo, ya que eso simplemente me estaría preparando para el fracaso. Todo depende mucho de factores externos y de la motivación.

En cuanto a ayudar, no veo que haya mucho que los nuevos contribuyentes puedan hacer para ayudar de manera significativa en el esfuerzo directamente. Todavía no he vuelto a trabajar en código abierto con una cadencia predecible y regular, por lo que las revisiones de relaciones públicas se volverían rápidamente desmotivadoras para ambas partes. Como se mencionó anteriormente en este número, cualquier ayuda para reducir la carga de mantenimiento general siempre ayuda indirectamente.

En cuanto a otros desarrolladores principales, estoy seguro de que podrían ayudar, pero todos tenemos nuestras prioridades y proyectos. No esperaré nuestro tiempo y motivación para alinearnos. Si se unen una vez que empiezo correctamente con Mopidy 3, sería estupendo, pero no tengo expectativas.

Dejando a un lado todas mis divagaciones sobre la vida y todo, esta no es una tarea gigantesca ni una tarea con la que no esté familiarizado. Se trata principalmente de completar las otras cosas en curso para que esto pueda convertirse en el enfoque principal por un tiempo.

Mopidy 3

Desde que escribí el último plan aquí en marzo de 2017, la adopción de Python 3 ha llegado tan lejos que ya no veo el sentido de tomar pasos graduales desde Python 2 solo a través de 2 + 3 hasta Python 3 únicamente. Mopidy 2.x nos ha servido bastante bien durante tres años, y será un lugar bueno y estable para dejar a los que están atascados en Python 2 por cualquier motivo.

Así, revisando el plan de marzo de 2017, imagino un proceso como este:

  • [x] Elimina todas las cosas obsoletas de Mopidy. Consulte el hito v3.0 para conocer los problemas detallados.
  • [x] Transfiera Mopidy a Python 3.
  • [x] Haga una versión preliminar de PyPI, por ejemplo, 3.0.0-rc1. Esto no afectará a los que ejecutan pip install mopidy , pero permite ejecutar pip install --pre mopidy para instalar la versión preliminar para probar las extensiones portadas.
  • [x] Transfiera todas las extensiones de la organización de Mopidy a Python 3 y, opcionalmente, realice versiones preliminares a PyPI.
  • [] Port / help port otras extensiones a Python 3. Se necesita ayuda una vez que lleguemos aquí.
  • [] Realice una versión principal coordinada del núcleo de Mopidy y todas las extensiones en la organización de Mopidy.

Dado que han pasado cinco meses, creo que es hora de actualizar este problema. La versión de Pykka de la que hablé la última vez se envió como Pykka 2.0 hace seis semanas. Desde entonces, comencé a trabajar en Mopidy nuevamente:

  • La versión 2.2.3 de corrección de errores está disponible, por lo que actualmente no tenemos nada inédito en la rama release-2.2 .
  • En la rama develop , que se convertirá en Mopidy 3.0, se ha eliminado la mayoría de las cosas obsoletas.

Lo siguiente para mí es probablemente:

  • [x] Simplificando el registro (# 1452)
  • [x] Decida e implemente cómo manejar las rutas del sistema de archivos al pasar de las API de Python 2 orientadas a bytes a las API del sistema de archivos de Python 3 orientadas a texto. (No hay problemas para rastrear esto todavía).
  • [x] Empiece a hacer que el conjunto de pruebas pase en Python 3.

¿Hay algo que pueda hacer para ayudar a que mopidy core o el complemento mopidy-soundcloud funcionen con python3?

¡Gracias por tu trabajo hasta ahora @jodal!

Me pregunto, ¿cómo se supone que instalemos los documentos cuando usemos la versión Python 3 de Sphinx para construirlos (preguntando por propósitos de empaquetado)?

Solía ​​hacer make -C docs SPHINXBUILD=sphinx-build-2 man pero cambiar eso por sphinx-build-3 solo errores:

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()

Esto sucede tanto en 2.2.3 como en 3.0.0a1. ¿O esta parte aún no se ha portado?

Dado que v3 romperá la compatibilidad con versiones anteriores de todos modos, y python2 finalizará en enero, ¿hay alguna razón para mantener la compatibilidad con python2 en v3?

@tmccombs dijo:

Dado que v3 romperá la compatibilidad con versiones anteriores de todos modos, y python2 finalizará en enero, ¿hay alguna razón para mantener la compatibilidad con python2 en v3?

No, no estamos planeando mantener la compatibilidad de Python 2 en Mopidy 3.

Citando a mí mismo de febrero:

Desde que escribí el último plan aquí en marzo de 2017, la adopción de Python 3 ha llegado tan lejos que ya no veo el sentido de tomar pasos graduales desde Python 2 solo a través de 2 + 3 hasta Python 3 únicamente. Mopidy 2.x nos ha servido bastante bien durante tres años, y será un lugar bueno y estable para dejar a los que están atascados en Python 2 por cualquier motivo.

@PureTryOut dijo:

Esto sucede tanto en 2.2.3 como en 3.0.0a1. ¿O esta parte aún no se ha portado?

Ninguno de Mopidy ha sido adaptado a Python 3 todavía. Hemos estado haciendo otras simplificaciones y eliminamos las cosas obsoletas para facilitar la transición. Una vez que hayamos portado, crearemos los documentos con Sphinx ejecutándose en Python 3.

¿Puedo recomendar que se asegure de que la próxima versión (2.4.0?) Sea compatible con Python 3? La mayoría de las distribuciones están trabajando para deshacerse de sus paquetes de Python 2. En mi caso, Alpine Linux eliminará Python 2 para la próxima versión (3.11, a fines de enero del próximo año), lo que significa que Mopidy se eliminará de los repositorios si no es compatible con Python 3 para entonces.

Mopidy 3.0 será compatible con Python 3. El plan es tenerlo disponible antes de fin de año.

Hola @jodal , es posible que tenga algunos ciclos libres en las próximas semanas para ayudar con algunas funciones de Python 3. O en mopidy directamente o en las extensiones. ¿Tiene algún problema en particular que abordar?

¡Hola @zubieta!

Recientemente hemos fusionado una configuración de prueba que ejecuta con éxito ~ 10% del conjunto de pruebas en Python 3. Pronto se fusionarán un par de PR que aumentan eso a ~ 20%. Verifique qué PR ya están abiertos, para no duplicar ningún trabajo, y consulte la descripción de # 1809 para obtener una guía paso a paso sobre cómo migrar algunos módulos más y sus pruebas.

Las extensiones seguirán tan pronto como el núcleo de Mopidy se ejecute en Python 3.

Creo que es hora de actualizar el estado de Mopidy y Python 3 ...

Mopidy 3.0.0a2 se ejecuta en Python 3: tada:

Cada una de las pruebas de 2016 en el conjunto de pruebas de Mopidy ahora se ejecuta tanto en Python 2.7 como en Python 3.7. Todo este trabajo se fusiona en la rama develop . ¡Un gran agradecimiento a @kingosticks por ayudar con el esfuerzo de portabilidad!

Acabo de lanzar la rama develop tal cual para PyPI como Mopidy 3.0.0a2 . Se puede instalar con:

python3.7 -m pip install --pre mopidy

Esta versión no ha sido sometida a ninguna prueba exhaustiva, aparte de tener un conjunto de pruebas aprobadas, responder algunas solicitudes a través de MPD y HTTP, y reproducir un puñado de archivos MP3.

Camino por delante: arrow_right:

Mopidy 3.0.0a2 probablemente será la única versión de Mopidy que sea compatible con Python 2 y 3. Pronto comenzaremos a eliminar el soporte de Python 2.7 y haremos de Mopidy una base de código Python más limpia y moderna.

El plan para una versión final es aproximadamente el siguiente:

  • [x] Elimina la compatibilidad con Python 2.7 de Mopidy y limpia después del esfuerzo de migración.
  • [x] Asegúrese de que Python 3.8 sea compatible.
  • [x] Formatee el código fuente con negro.
  • [x] Haz otro lanzamiento alfa .
  • [] Solucione los problemas en el hito v3.0 .
  • [] Hacer una versión beta .
  • [] Corrija cualquier error descubierto a través del uso y portabilidad de extensiones.
  • [] Haz un candidato de lanzamiento .
  • [] Una vez que se ha transferido un conjunto suficientemente grande de extensiones ...
  • [] Lanzamiento de Mopidy 3.0 final .

Ayuda necesaria: heart_eyes:

Paralelamente a la marcha hacia la 3.0 final, necesitamos ayuda con el resto del ecosistema de 122 paquetes en PyPI que se encuentran al buscar "mopidy".

Para cada extensión que le interese:

  • [] Puerto a Python> = 3.7. Elimina la compatibilidad con Python 2.7.
  • [] Considere incluir modernizaciones de la configuración del proyecto desde la extensión cookiecutter . Actualizaré el cortador de galletas en breve, una vez que consiga portar algunas extensiones yo mismo.
  • [] Realice versiones preliminares de los puertos a PyPI.
  • [] Una vez que se publique Mopidy 3.0 final, realice las versiones finales en PyPI.

76 confirmaciones, 204 archivos modificados, 9832 inserciones (+), 9612 eliminaciones (-) más tarde, tenemos otra versión preliminar: Mopidy 3.0.0a3 ahora está en PyPI. Se puede instalar con:

python3 -m pip install --pre mopidy

Nuevo desde 3.0.0a2:

  • La compatibilidad con Python 2.7 se ha ido, incluidos muchos códigos heredados / de compatibilidad:

    • El módulo mopidy.compat se ha ido.

    • # encoding: utf-8 comentarios de

    • from __future__ ... importaciones de

    • Todas las subclases de object se han ido.

    • .encode() y .decode() ya no incluyen un argumento "utf-8" explícito.

  • El código fuente tiene el formato black . : corazon_negro:
  • isort ahora están configurados y se pueden usar para limpiar importaciones cuando sea necesario.
  • mock se reemplaza con unittest.mock .
  • Los métodos de aserción unittest se reemplazan con declaraciones pytest assert , lo que significa una mejor legibilidad y mejores mensajes de error.
  • La mayoría de las instancias de % y .format() se reemplazan con f-strings.
  • Todos los linters se ejecutan en Python 3.
  • Los documentos se basan en Python 3.
  • Las pruebas en CI se ejecutan en Python 3.8 además de Python 3.7.
  • setup.py ha sido minimizado y reemplazado por un setup.cfg declarativo.
  • Las dependencias en tox.ini , dev-requirements.txt y docs/requirements.txt se reemplazan por "extras" en setup.cfg . Esto significa que las dependencias de desarrollo ahora están instaladas con python3 -m pip install -e ".[dev]" .

El camino por delante todavía se ve como lo redacté en el comentario anterior.

Con respecto al núcleo de Mopidy, creo que hemos terminado aquí.

El resto del camino hasta Mopidy 3.0 final se rastrea en el hito v3.0:
https://github.com/mopidy/mopidy/milestone/55

La portabilidad de extensiones clave a Python 3 se rastrea en este tablero de proyecto:
https://github.com/orgs/mopidy/projects/2

Si prueba Mopidy en Python 3 en un futuro cercano, abra los problemas para cualquier problema que encuentre.

¿Fue útil esta página
0 / 5 - 0 calificaciones