Internet Archive, no acabamos de hablar del nuevo "pattern matching", complejidad creciente de la sintaxis de Python https://podcast.jcea.es/python/20
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 semana.
La documentación guía el desarrollo.
Paralelismo con los tests.
https://realpython.com/products/cpython-internals-book/.
https://es.wikipedia.org/wiki/Api para programar extensiones C
para Python, independizándote de la versión del intérprete y
compatible con cosas como PyPy: https://www.pypy.org/.
https://archive.org/details/inlibrary.
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.
Pattern Matching https://www.python.org/dev/peps/pep-0622/.
¿"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.
https://docs.python.org/3/library/pdb.html#pdbcommand-condition.
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/.
https://whoosh.readthedocs.io/en/latest/intro.html.
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.
gigabytes con pocos cambios internos?
Software para Django: https://www.djangoproject.com/.
https://en.wikipedia.org/wiki/Hackathon.
el podcast:
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.
por bibliotecas:
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?
https://realpython.com/python-metaclasses/.
Closures:
https://es.wikipedia.org/wiki/Clausura_(inform%C3%A1tica).
subculturas de Python.
Ciertos cambios de sintaxis pueden unificar subculturas: "la
forma oficial de hacerlo".
El operador ternario de Python v = VALOR1 if CONDICIÓN: PEP 308 -- Conditional Expressions
else VALOR2
https://www.python.org/dev/peps/pep-0308/.
List comprehension: [f(i) for i in ITER if: PEP 202 -- List Comprehensions
CONDICIÓN(i)]
https://www.python.org/dev/peps/pep-0202/.
como 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.
Está obsesionado con el tamaño del lenguaje.
https://github.com/satwikkansal/wtfpython:
>>> all([])
True
>>> all([[]])
False
>>> all([[[]]])
True
por Virako en las últimas semanas: Ejemplo de código:
https://pastebin.com/vGM1sh8r.
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/.
https://www.python.org/dev/peps/pep-0013/ vota un tema
polémico, la decisión es final. Ya no se busca el consenso a
toda costa.