¿Se pueden usar diferentes versiones de una misma librería en un proyecto? (resumen: ¡No vayas por ahí!). MultiVersion Concurrent Control https://podcast.jcea.es/python/19
Participantes:
Jesús Cea, email:
[email protected], twitter:
@jcea, https://blog.jcea.es/,
https://www.jcea.es/. Conectando desde Madrid.
Víctor Ramírez, twitter: @virako,
programador python y amante de
vim, conectando desde Huelva.
Javier, conectando desde Madrid.
Miguel Sánchez, email:
[email protected], conectando desde
Canarias.
Audio editado por Pablo Gómez, twitter:
@julebek.
La música de la entrada y la salida es "Lightning Bugs", de Jason
Shaw. Publicada en https://audionautix.com/ con licencia
- Creative Commons Attribution 4.0 International
License.
[00:52] Prólogo:
FOSDEM https://fosdem.org/.
Escuchar audios previos para ver errores y comentar
"erratas".
[03:07] ¡Tenemos un voluntario para editar el podcast!
Detalles de cómo grabamos las tertulias.
Todo se graba en una sola pista :-(.
RNNoise: https://people.xiph.org/~jm/demo/rnnoise/.
Ideas para automatizar el proceso.
[09:17] Aviso legal de que se está grabando el sonido y que se
va a publicar online.
El audio publicado tendrá un índice en texto, para poder
hacer búsquedas y poder moverse con facilidad entre temas.
[11:22] Errata de la tertulia anterior: No, pipenv
https://pypi.org/project/pipenv/ no puede instalar dos
versiones diferentes de la misma librería.
[13:07] Tormenta de ideas
https://es.wikipedia.org/wiki/Lluvia_de_ideas sobre cómo usar
diferentes versiones de la misma librería en el mismo proyecto.
Conclusión: ¡No vayas por ahí!
Las bibliotecas solo se cargan una vez en el programa,
aunque se hagan muchos import en el código.
sys.modules
https://docs.python.org/3/library/sys.html#sys.modules.
Dependencias transitivas.
Subintérpretes Python. PEP 554:
https://www.python.org/dev/peps/pep-0554/.
Módulos en C: PEP 489 -- Multi-phase extension module
initialization https://www.python.org/dev/peps/pep-0489/.
[22:17] Python 3.10a5. PEP 636 -- Structural Pattern Matching:
Tutorial https://www.python.org/dev/peps/pep-0636/.
¡Más sintaxis nueva!
PEP 617 -- New PEG parser for CPython
https://www.python.org/dev/peps/pep-0617/.
[23:57] Nuitka https://nuitka.net/.
Puede generar un binario que no depende de tener nada
instalado.
[26:02] Volvemos a "Structural Pattern Matching"
https://www.python.org/dev/peps/pep-0636/.
"Switch" con esteroides.
[27:32] Lo importante que fue la modernización de los tutoriales
y ejemplos para ayudar a la migración de Python 2 a Python 3.
PEP 414 -- Explicit Unicode Literal for Python 3.3
https://www.python.org/dev/peps/pep-0414/.
Jesús Cea opina que la migración de Python 2 a Python 3
se hizo mal y ha sido muy traumática.
[30:22] PEP 8 https://www.python.org/dev/peps/pep-0008/.
¿Ajustarse estrictamente a 80 columnas?
Flake8: https://pypi.org/project/flake8/.
[33:22] Mucho cuidado con "python-ideas"
https://mail.python.org/mailman3/lists/python-ideas.python.org/.
Tabulación de código.
La anotación de tipos puede gustar o no, pero de momento es
opcional.
Tema recurrente: ¿Qué es ser pythonico?
[35:12] Ventajas de anotar tipos.
Origen de MYPY: http://mypy-lang.org/.
Aportar información al IDE
https://en.wikipedia.org/wiki/Integrated_development_environment.
Valor a la hora de documentar los tipos en los API
https://en.wikipedia.org/wiki/API.
[39:52] Cryptography https://cryptography.io/en/latest/ y
polémica al integrar módulos en Rust
https://en.wikipedia.org/wiki/Rust_(programming_language)
Comunidad tóxica.
[41:27] Digresión sobre systemd
https://en.wikipedia.org/wiki/Systemd y otras cosas de
sistemas.
¿El cam