Python en español #25: Tertulia 2021-03-23

Python en español - Un pódcast de Jesús Cea

Categorías:

Pattern Matching en Python 3.10, Sans IO y Encuesta mundial de programadores Python https://podcast.jcea.es/python/25 Participantes: Jesús Cea, email: [email protected], twitter: @jcea, https://blog.jcea.es/, https://www.jcea.es/. Conectando desde Madrid. Felipem, conectando desde Cantabria. Jesús, conectando desde Ferrol. Víctor Ramírez, twitter: @virako, programador python y amante de vim, conectando desde Huelva. Eduardo Castro, email: [email protected]. Conectando desde A Guarda. 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:52] Advertencia de que el audio tiene lagunas y puede ser difícil seguir el hilo. [01:07] Conecta gente nueva y cambio de horario. ¡Queremos que las tertulias sean más cortas! [04:57] Python 3.10: ¿Mandar y cómo mandar deberes? ¿Probar las novedades cuando se anuncian o esperar a que entren en producción? [08:19] Presentaciones. [10:32] Jesús Cea ha enviado ya el parche para el bug que se discutió en navidades: Issue35930: Raising an exception raised in a "future" instance will create reference cycles https://bugs.python.org/issue35930. [11:12] Los que se autodenominan novatos también tienen mucho que aportar. [12:21] Unpacking en bucles for: PEP 3132 -- Extended Iterable Unpacking: https://www.python.org/dev/peps/pep-3132/. Busca en Internet: "Python tuple unpacking". PEP 448 -- Additional Unpacking Generalizations: https://www.python.org/dev/peps/pep-0448/. [15:57] Python Packaging: Lo estás haciendo mal https://www.youtube.com/watch?v=OeOtIEDFr4Y. https://github.com/astrojuanlu/charla-python-packaging. https://nbviewer.jupyter.org/format/slides/github/astrojuanlu/charla-python-packaging/blob/main/Charla%20Python%20packaging.ipynb#/ [18:07] Machete Mode: https://nedbatchelder.com/blog/202103/machete_mode_tagging_frames.html. [18:42] Pattern Matching en Python 3.10: 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/. Tema recurrente: ¿Compensa complicar la sintaxis del lenguaje? [22:27] ¡Combina todo eso con el Walrus operator (operador morsa)!: PEP 572 -- Assignment Expressions https://www.python.org/dev/peps/pep-0572/. Presentación en vídeo: Pattern Matching in Python 3.10: https://morioh.com/p/aa1e6d5352c3, minuto 8:47. [24:32] Temas recurrentes de Jesús Cea: complejidad accidental del lenguaje. ¿Python ha perdido el rumbo? Guido van Rossum https://es.wikipedia.org/wiki/Guido_van_Rossum está apoyando muchos cambios polémicos en Python. El principio del fin fue la implementación de async/await y dividir Python en dos mundos: síncrono y asíncrono. [27:02] Código que puede funcionar tanto en el mundo síncrono y asíncrono. Biblioteca asyncio: https://docs.python.org/3/library/asyncio.html. Biblioteca unsync: https://pypi.org/project/unsync/. inspect.iscoroutinefunction(object): https://docs.python.org/3/library/inspect.html#inspect.iscoroutinefunction. inspect.iscoroutine(object): https://docs.python.org/3/library/inspect.html#inspect.iscoroutine. inspect.isawaitable(object): https://docs.python.org/3/library/inspect.html#inspect.isawaitable. inspect.isasyncgenfunction(object): https://docs.python.org/3/library/inspect.html#inspect.isasyncgenfunction. inspect.isasyncgen(object): https://docs.python.org/3/library/inspect.html. [29:12] Lo bueno de tener dificultad para mezclar el mundo síncrono y el mundo asíncrono es que ha surgido un movimiento para desvincular los protocolos del propio medio de comunicación. Sans IO: https://sans-io.readthedocs.io/. Máquina de estados: https://es.wikipedia.org/wiki/M%C3%A1quina_de_estados. [33:15] How to write obfuscated python https://archive.org/details/pyvideo_398___how-to-write-obfuscated-python. [33:52] Seguridad en PyPI https://pypi.org/: New packaging security funding & NYU https://discuss.python.org/t/new-packaging-security-funding-nyu/7792. PEP 458 -- Secure PyPI downloads with signed repository metadata https://www.python.org/dev/peps/pep-0458/. Permite meter espejos de PyPI https://pypi.org/ sin tener que confiar en ellos. [36:27] Encuesta mundial de programadores Python: Python Developers Survey 2020 Results https://www.jetbrains.com/lp/python-developers-survey-2020/. Aquí no vamos a describir cada respuesta de la encuesta en las notas de la tertulia, pero listamos puntos y enlaces que pueden ser de interés. [40:32] Usar Python en el navegador web: Brython http://www.brython.info/. [44:42] ¿No molaría poder mezclar código Python y Javascript y poder llamarse mutuamente? [45:42] Precendente: Python y Java: Jython https://www.jython.org/. WAR: https://en.wikipedia.org/wiki/WAR_(file_format). [47:42] Python soportado en los navegadores. PyXPCOM: https://developer.mozilla.org/pl/docs/PyXPCOM. WebAssembly: https://es.wikipedia.org/wiki/WebAssembly. asm.js: https://en.wikipedia.org/wiki/Asm.js. Emscripten: https://emscripten.org/. Javascript en javascript: Polyfill https://en.wikipedia.org/wiki/Polyfill_(programming). Pyodide https://pyodide.org/en/stable/index.html. [59:37] Aún hay mucha documentación online sin actualizar, con ejemplos en Python 2. [01:00:42] Corte de conexión. Se supone que había un más gente grabando la tertulia, pero luego resultó que no. [01:04:12] pipenv https://pypi.org/project/pipenv/. [01:09:22] Las características deseadas de Python chocan con lo que más se valora en él... [01:11:32] La documentación de FastAPI https://fastapi.tiangolo.com/ es fantástica y puedes aprender muchísimos conceptos web. REST: https://en.wikipedia.org/wiki/Representational_state_transfer. [01:18:07] Libro "Modern Tkinter for Busy Python Developers" https://tkdocs.com/book.html. [01:19:12] En la escuesta no salen librerías de generación de PDFs https://es.wikipedia.org/wiki/PDF. Se sugieren algunas: Reportlab https://pypi.org/project/reportlab/. PyPDF3 https://pypi.org/project/PyPDF3/. weasyprint https://pypi.org/project/weasyprint/. [01:21:52] No hay representación de tecnologías de persistencia de datos en los resultados de la encuesta. [01:22:22] Tortoise ORM https://tortoise-orm.readthedocs.io/en/latest/index.html es asíncrona. [01:22:47] SQLite https://sqlite.org/ es perfecta si quieres SQL https://es.wikipedia.org/wiki/SQL, pero solo hay un programa usando la base de datos. [01:26:42] Map/Reduce https://es.wikipedia.org/wiki/MapReduce. Manta: Triton's object storage and converged analytics solution https://apidocs.joyent.com/manta/. [01:27:32] Lo dejamos en la mitad de la encuesta: Technologies and Cloud. [01:28:22] Intentamos coordinar el acceso a la segunda captura de audio de la tertulia. Lamentablemente la cosa no funcionó. [01:29:22] Queda pendiente comentar cómo va la publicación de las tertulias en formato podcast. [01:30:17] ¡Nuevo horario! [01:31:05] Final.