Python en español #21: Tertulia 2021-02-23
Description
Este audio tiene mucho ruido producido por el roce del micrófono
de Jesús Cea en la ropa.
Participantes:
Jesús Cea, email: jcea@jcea.es, twitter:
@jcea, https://blog.jcea.es/,
https://www.jcea.es/. Conectando desde Madrid.Javier, conectando desde Madrid.
Miguel Sánchez, email:
msanchez@uninet.edu, conectando desde
Canarias.Eduardo Castro, email:
info@ecdesign.es. 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.
<timestamp compact="1" offset="53" ts="53">[00:53 ]<topic> El aviso legal de rigor.</topic></timestamp>
- ¡Hay un voluntario para editar!
<timestamp compact="1" offset="53" ts="143">[02:23 ]<topic> Pasamos a reunirnos en la sala "py2021" en vez de en la
sala "py2020".</topic></timestamp><timestamp compact="1" offset="53" ts="193">[03:13 ]<topic> ¿Las cadenas son inmutables? Las cadenas son inmutables,
pero losid()
se reutilizan cuando se liberan objetos.</topic></timestamp>- 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.
- Se explica qué es
<timestamp compact="1" offset="53" ts="443">[07:23 ]<topic> ¿Hay forma de mutar una cadena? No desde el propio
lenguaje, pero desde C y... ¡No vayas por ahí!</topic></timestamp>- Python 3.9.2 soluciona un desbordamiento de memoria.
<timestamp compact="1" offset="53" ts="603">[10:03 ]<topic> Grupos de excepciones: PEP 654
https://www.python.org/dev/peps/pep-0654/.</topic></timestamp>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
yawait
, si alguno de los
paquetes nuevos usa esta funcionalidad, te contaminará tu
propio código.
<timestamp compact="1" offset="53" ts="868">[14:28 ]<topic> Probar una biblioteca en diferentes versiones de Python.</topic></timestamp>
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 apython3.6
.Matriz de tests.
Docker: https://es.wikipedia.org/wiki/Docker_(software).
Flake8: https://pypi.org/project/flake8/.
<timestamp compact="1" offset="53" ts="1363">[22:43 ]<topic> Bibliotecas y cambios de sintaxis en Python con la
evolución del intérprete.</topic></timestamp>Si código Python 3 funciona en Python 2... ¿El código era
Python 3 realmente?Proyectos con compatibilidad mal especificada.
<timestamp compact="1" offset="53" ts="1553">[25:53 ]<topic> Pruebas en varias versiones:</topic></timestamp>
Tox: https://pypi.org/project/tox/.
pyenv: https://pypi.org/project/pyenv/.
Pylint: https://pypi.org/project/pylint/.
<timestamp compact="1" offset="53" ts="1673">[27:53 ]<topic> Black: https://pypi.org/project/black/.</topic></timestamp>
Reformateador de código "nazi".
Se acabaron las discusiones de estilo.
¿Puede un formateador "nazi" ser configurable? ¿No es un
oxímoron?
<timestamp compact="1" offset="53" ts="1948">[32:28 ]<topic> Pasar tests y comprobaciones cuando se mete código en el
control de versiones:</topic></timestamp>gitlint: https://jorisroovers.com/gitlint/.
vim-autopep8:
https://vim-autopep8.readthedocs.io/en/latest/.
<timestamp compact="1" offset="53" ts="2093">[34:53 ]<topic> PEPs recientes con cambios de sintaxis: Grupos de
excepciones y "pattern matching":</topic></timestamp>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 haceasync
/await
.
- La semántica cambia bastante y "contamina" el código
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/.
<timestamp compact="1" offset="53" ts="2428">[40:28 ]<topic> Trio https://pypi.org/project/trio/ programación
asíncrona mejor hecha que con asyncio
https://docs.python.org/3/library/asyncio.html.</topic></timestamp>- El concepto de "guardería" en Trio:
https://trio.readthedocs.io/en/stable/reference-core.html#trio.Nursery.
- El concepto de "guardería" en Trio:
<timestamp compact="1" offset="53" ts="2663">[44:23 ]<topic> Python ha cumplido 30 años. La primera versión pública
fue la 0.9.1 en 1991.</topic></timestamp>Happy birthday, Python, you're 30 years old this week: Easy
to learn, and the right tool at the right time
https://www.theregister.com/2021/02/20/python_at_30/.Compilación en sistemas operativos modernos:
https://github.com/smontanaro/python-0.9.1.
<timestamp compact="1" offset="53" ts="2713">[45:13 ]<topic> Comparación de diferentes tipos. En Python 2 se podían
mezclar, pero en Python 3 no.</topic></timestamp>Programar funciones de comparación personalizadas.
Definir tipos personalizados que sepan compararse entre sí.
Problemas al migrar un sistema de persistencia de Python 2 a
Python 3.
<timestamp compact="1" offset="53" ts="3153">[52:33 ]<topic> ¿Por qué Pillow https://pypi.org/project/Pillow/ se
sigue importando comoimport PIL
, la librería que reemplazó
hace eones?</topic></timestamp>Confuso.
Casos similares (hay muchos más):
python-dateutil
https://pypi.org/project/python-dateutil/.Beautiful Soup:
https://pypi.org/project/beautifulsoup4/.dnspython https://pypi.org/project/dnspython/.
<timestamp compact="1" offset="53" ts="3558">[59:18 ]<topic> Seguridad en PYPI https://pypi.org/.</topic></timestamp>
<timestamp compact="1" offset="53" ts="3648">[01:00:48 ]<topic> ¿El buscador de PYPI https://pypi.org/ sirve para
algo? El orden por relevancia es un chiste.</topic></timestamp><ti