Internet Archive, no acabamos de hablar del nuevo "pattern matching", complejidad creciente de la sintaxis de Python
Autor: Jesús Cea & Otros - Contacto: python2021@podcast.jcea.es
Fecha de grabación: 2021/02/16 - Duración: 01:54:47
Fecha de publicación: 2021/05/22
Palabras clave: Tertulia
Descarga el audio: M4A (29396167 bytes) - OPUS (14427770 bytes)
Participantes:
Eduardo Castro, email: info@ecdesign.es. Conectando desde A Guarda.
Jesús Cea, email: jcea@jcea.es, 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.
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.
Google docs: https://docs.google.com.
Wikis en GitHub: https://docs.github.com/en/communities/documenting-your-project-with-wikis/about-wikis.
Ventajas de tener la documentación en el control de versiones del proyecto.
Ventajas de ir escribiendo la documentación mientras escribes el propio código: Realimentación.
Sphinx: https://www.sphinx-doc.org/en/master/.
sphinx.ext.autodoc: https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html.
plantuml: https://github.com/sphinx-contrib/plantuml.
Markdown: https://www.markdownguide.org/.
La documentación guía el desarrollo.
Paralelismo con los tests.
Funciona como una biblioteca tradicional.
Préstamo de libros.
Están escaneando a toda velocidad: 2.5 millones de libros en el momento de escribir estas notas (mayo de 2021).
Internet Archive: https://archive.org/.
Wayback Machine: https://web.archive.org/.
Preservación de videojuegos, páginas en flash, discos de música...
1997: https://web.archive.org/web/19970606181701/http://www.python.org/.
1998: https://web.archive.org/web/19981212032130/http://www.python.org/.
Un ejemplo de "batteries included": https://commons.wikimedia.org/wiki/File:Python_batteries_included.jpg.
¿"match" y "case" serán palabras reservadas?
PEP 617 -- New PEG parser for CPython https://www.python.org/dev/peps/pep-0617/.
Se repasa la funcionalidad un poco por encima.
Daiquiri: https://daiquiri.readthedocs.io/en/latest/.
Colorama: https://pypi.org/project/colorama/. Compatible con Windows.
Python -i
: Ejecuta un script y pasa a modo
interactivo.
Comentado hace unas semanas.
También se puede hacer desde el propio código con
code.InteractiveConsole(locals=globals()).interact()
.
Jesús Cea se queja de que usando la invocación desde código
no funciona la edición de líneas. Javier da la pista correcta:
para que funcione, basta con hacer import readline
antes de
lanzar el modo interactivo.
breakpoint()
como función nativa: PEP 553 -- Built-in
breakpoint() https://www.python.org/dev/peps/pep-0553/.
import pdb; pdb.set_trace()
.
scrapy shell: https://docs.scrapy.org/en/latest/topics/shell.html.
Jesús Cea no echa de menos Scrapy https://docs.scrapy.org/en/latest/.
Jesús necesitaba ignorar tildes, lo que impacta en la extracción del lexema.
El backend está documentado, para que te lo puedas currar tú si lo necesitas.
Software para Django: https://www.djangoproject.com/.
REST: https://es.wikipedia.org/wiki/Transferencia_de_Estado_Representacional.
Permisos de usuario.
No hay cacheo.
Vulcain: https://github.com/dunglas/vulcain.
HTTP/2 Server Push: https://en.wikipedia.org/wiki/HTTP/2_Server_Push.
No se tiene que responder por orden. Multiplexación.
Volvemos a Structural Pattern Matching https://www.python.org/dev/peps/pep-0622/.
Complejidad de la sintaxis.
Un lenguaje pequeño y capaz reemplaza a lenguajes dinosaurio. Python reemplazó a otros lenguajes dinosaurio. Ahora Python es un dinosaurio. ¿Cuándo saldrá un lenguaje que reemplace a Python?
Closures: https://es.wikipedia.org/wiki/Clausura_(inform%C3%A1tica).
Ciertos cambios de sintaxis pueden unificar subculturas: "la forma oficial de hacerlo".
El operador ternario de Python v = VALOR1 if CONDICIÓN
else VALOR2
: PEP 308 -- Conditional Expressions
https://www.python.org/dev/peps/pep-0308/.
List comprehension: [f(i) for i in ITER if
CONDICIÓN(i)]
: PEP 202 -- List Comprehensions
https://www.python.org/dev/peps/pep-0202/.
True = 0
. Esto funciona en Pythonn 2.7. Es algo que
se cambió en Python 3.0:
https://docs.python.org/3.0/whatsnew/3.0.html#changed-syntax.
>>> all([])
True
>>> all([[]])
False
>>> all([[[]]])
True
Issue24676: Error in pickle using cProfile https://bugs.python.org/issue24676.
Issue9914: trace/profile conflict with the use of
sys.modules[__name__]
https://bugs.python.org/issue9914.
Issue9325: Add an option to pdb/trace/profile to run library module as a script https://bugs.python.org/issue9325.
Requiere mejorar el módulo runpy
https://docs.python.org/3/library/runpy.html.
A nadie le ha dolido lo suficiente el bug como para solucionarlo. No es que sea realmente difícil. Tal vez sí.
Ejecutables Python independientes de lo que tengas instalado en el sistema. Por ejemplo, para poder usar una versión de Python "moderna".
También funciona en MS Windows.
Combinación de caracteres unicode.
Las banderas de los países, por ejemplo, son un código "bandera" seguido del código del país: https://en.wikipedia.org/wiki/Regional_indicator_symbol.
La bandera de Taiwan se ve distinta en China que en el resto del mundo: https://emojipedia.org/flag-taiwan/.
"Collation" https://en.wikipedia.org/wiki/Unicode_collation_algorithm, para ordenar y comparar correctamente caracteres unicode: PyICU: https://pypi.org/project/PyICU/.