Python en español

Python en español #21: Tertulia 2021-02-23

05.27.2021 - By Jesús CeaPlay

Download our free app to listen on your phone

Download on the App StoreGet it on Google Play

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

asíncrona mejor hecha que con asyncio

https://docs.python.org/3/library/asyncio.html.

El concepto de "guardería" en Trio:

https://trio.readthedocs.io/en/stable/reference-core.html#trio.Nursery.

[44:23] Python ha cumplido 30 años. La primera versión pública

fue la 0.9.1 en 1991.

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.

[45:13] Comparación de diferentes tipos. En Python 2 se podían

mezclar, pero en Python 3 no.

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.

BTree: https://es.wikipedia.org/wiki/%C3%81rbol-B.

[52:33] ¿Por qué Pillow https://pypi.org/project/Pillow/ se

sigue importando como import PIL, la librería que reemplazó

hace eones?

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/.

[59:18] Seguridad en PYPI https://pypi.org/.

[01:00:48] ¿El buscador de PYPI https://pypi.org/ sirve para

algo? El orden por relevancia es un chiste.

[01:02:18] Estadísticas de descarga en PYPI https://pypi.org/:

Antes había contadores de descargas.

Vanity: https://pypi.org/project/vanity/.

Ahora tenemos: (depende de Google)

PyPI Download Stats https://pypistats.org/.

pypinfo https://pypi.org/project/pypinfo/.

[01:09:48] Servicios que Google ha matado:

https://killedbygoogle.com/.

229 servicios hasta el momento.

[01:10:23] Jesús y su ideología de servicios gratuitos que

crecen a costa del trabajo de los usuarios.

Encima dependes de ellos y queman el mercado para servicios

comerciales.

La resignación y pasividad de los usuarios.

[01:13:28] Idea de Jesús: Estamos viviendo en la edad oscura

de la informática. Dentro de 50 años no se podrá acceder a

la información generada en estos momentos.

Por ejemplo: Videojuegos en red con servidores.

https://archive.org/.

GeoCities https://es.wikipedia.org/wiki/GeoCities.

Tumblr https://es.wikipedia.org/wiki/Tumblr.

[01:16:43] ¿Mirrors de PYPI https://pypi.org/? Ahora mismo no

hay verificación de firmas digitales.

Package signing & detection/verification:

https://github.com/pypa/warehouse/milestone/16.

Red distribuida por IPFS

https://es.wikipedia.org/wiki/Sistema_de_archivos_interplanetario

o BitTorrent https://es.wikipedia.org/wiki/BitTorrent.

Ideas de Jesús para Python España: red distribuida de

fotos de las PyConES http://www.es.pycon.org/.

[01:21:13] Montar servicios encima de PYPI https://pypi.org/.

PYPI proporciona RSS https://es.wikipedia.org/wiki/Rss.

PyPI recent updates https://pypi.org/rss/updates.xml.

PyPI newest packages

https://pypi.org/rss/packages.xml.

[01:24:43] GitHub: Security vulnerability alerts for Python

https://github.blog/2018-07-12-security-vulnerability-alerts-for-python/.

[01:25:13] Compilar paquetes binarios para Windows.

[01:26:48] Cython https://pypi.org/project/Cython/ y mypyc

https://github.com/mypyc/mypyc.

[01:28:33] A veces te importa a ti más el código que al dueño de

la biblioteca.

Dinámicas de colaboración en proyectos de código abierto.

Core developer de Python: Mariatta Wijaya - What is a Python

Core Developer?

https://www.youtube.com/watch?v=hhj7eb6TrtI.

La importancia de la realimentación.

[01:35:43] Kodi https://es.wikipedia.org/wiki/Kodi y

dinámica del proyecto:

La compresión de datos en WebDAV.

Que la gestión de base de datos sea Python.

Bajar la barrera de entrada al proyecto.

[01:39:21] ¿Qué micros tenemos para grabar? ¿Cómo hablamos?

[01:45:08] Digresión sobre BitCoins

https://es.wikipedia.org/wiki/Bitcoin y la importancia de

hacer copia de seguridad del monedero.

Blockchain https://es.wikipedia.org/wiki/Cadena_de_bloques.

BitCoin desarrolla ideas muy interesantes.

Prueba de trabajo:

https://es.wikipedia.org/wiki/Sistema_de_prueba_de_trabajo.

Cypherpunk: https://en.wikipedia.org/wiki/Cypherpunk.

Contrato inteligente:

https://es.wikipedia.org/wiki/Contrato_inteligente.

Datos abiertos:

https://es.wikipedia.org/wiki/Datos_abiertos.

[01:55:23] Ojo, que todo queda grabado para la posteridad.

Estamos teniendo una conversación de bar. Hay que valorar que

las opiniones son opiniones de bar, con el peso de una opinión

de bar.

[01:58:03] ¿Poner deberes? Nadie tiene tiempo...

[01:58:58] La motivación para hacer todo esto.

Solapar intereses es difícil.

[02:00:23] Despedida.

[02:01:45] Final.

More episodes from Python en español