Grupos de excepciones (PEP 654), PYPI y hasta bitcoins y blockchains (¡sin hype!) https://podcast.jcea.es/python/21
Este audio tiene mucho ruido producido por el roce del micrófono
de Jesús Cea en la ropa.
Participantes:
Jesús Cea, email:
[email protected], twitter:
@jcea, https://blog.jcea.es/,
https://www.jcea.es/. Conectando desde Madrid.
Javier, conectando desde Madrid.
Miguel Sánchez, email:
[email protected], conectando desde
Canarias.
Eduardo Castro, email:
[email protected]. Conectando desde A
Guarda.
Víctor Ramírez, twitter: @virako,
programador python y amante de
vim, conectando desde Huelva.
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:53] El aviso legal de rigor.
¡Hay un voluntario para editar!
[02:23] Pasamos a reunirnos en la sala "py2021" en vez de en la
sala "py2020".
[03:13] ¿Las cadenas son inmutables? Las cadenas son inmutables,
pero los id() se reutilizan cuando se liberan objetos.
Se explica qué es id(). No es una identidad persistente,
depende de su direcciñon de memoria y la memoria se
reutiliza cuando se liberan objetos.
[07:23] ¿Hay forma de mutar una cadena? No desde el propio
lenguaje, pero desde C y... ¡No vayas por ahí!
Python 3.9.2 soluciona un desbordamiento de memoria.
[10:03] Grupos de excepciones: PEP 654
https://www.python.org/dev/peps/pep-0654/.
Lista de correo de Python Ideas:
https://mail.python.org/mailman3/lists/python-ideas.python.org/.
Si usas la funcionalidad, la sintaxis y semántica de las
excepciones se modifica.
Como ocurrió con async y await, si alguno de los
paquetes nuevos usa esta funcionalidad, te contaminará tu
propio código.
[14:28] Probar una biblioteca en diferentes versiones de Python.
Tener varias versiones instaladas de Python.
make altinstall es tu amiga para poder instalar varias
versiones diferentes de Python a la vez en el sistemas
operativo.
Diferencia entre llamar a python3 y llamar a python3.6.
Matriz de tests.
Docker: https://es.wikipedia.org/wiki/Docker_(software).
Flake8: https://pypi.org/project/flake8/.
[22:43] Bibliotecas y cambios de sintaxis en Python con la
evolución del intérprete.
Si código Python 3 funciona en Python 2... ¿El código era
Python 3 realmente?
Proyectos con compatibilidad mal especificada.
[25:53] Pruebas en varias versiones:
Tox: https://pypi.org/project/tox/.
pyenv: https://pypi.org/project/pyenv/.
Pylint: https://pypi.org/project/pylint/.
[27:53] Black: https://pypi.org/project/black/.
Reformateador de código "nazi".
Se acabaron las discusiones de estilo.
¿Puede un formateador "nazi" ser configurable? ¿No es un
oxímoron?
[32:28] Pasar tests y comprobaciones cuando se mete código en el
control de versiones:
gitlint: https://jorisroovers.com/gitlint/.
vim-autopep8:
https://vim-autopep8.readthedocs.io/en/latest/.
[34:53] PEPs recientes con cambios de sintaxis: Grupos de
excepciones y "pattern matching":
Grupos de excepciones: PEP 654 -- Exception Groups and
except* https://www.python.org/dev/peps/pep-0654/.
La semántica cambia bastante y "contamina" el código
como lo hace async/await.
PEP 622 -- Structural Pattern Matching
https://www.python.org/dev/peps/pep-0622/.
PEP 634 -- Structural Pattern Matching: Specification
https://www.python.org/dev/peps/pep-0634/.
PEP 635 -- Structural Pattern Matching: Motivation and
Rationale https://www.python.org/dev/peps/pep-0635/.
PEP 636 -- Structural Pattern Matching: Tutorial
https://www.python.org/dev/peps/pep-0636/.
[40:28] Trio https://pypi.org/project/trio/ programación