
Sign up to save your podcasts
Or
Participantes:
Jesús Cea, email: [email protected], twitter:
Víctor Ramírez, twitter: @virako,
Miguel Sánchez, email:
Juan Carlos.
Plutarco, conectando desde Madrid.
Eduardo Castro, email:
Julio, conectando desde Chile.
Audio editado por Pablo Gómez, twitter:
La música de la entrada y la salida es "Lightning Bugs", de Jason
[00:52] Presentaciones.
[03:24] Aviso legal de que se está grabando y objetivos de la
[06:22] Autoimport, ¿debería ser una funcionalidad del IDE?
[12:52] Los IDEs y las inercias.
PyCharm: https://www.jetbrains.com/pycharm/.
Atajos de teclado.
vim: https://es.wikipedia.org/wiki/Vim.
Uso del teclado en vez del ratón.
Emacs: https://es.wikipedia.org/wiki/Emacs.
[19:22] Operador morsa (walrus). Sigue usándose muy poco.
Python va complicando la sintaxis más y más.
Se habló en una tertulia anterior.
Jesús solo ha encontrado este caso útil:
Pasar de:
A lo siguiente:
[25:57] Erratas en tertulias anteriores:
Migración de Python a Github fue en 2017.
No es "Steering committee" sino "Steering Council".
[27:02] Pablo Galindo forma parte del "council" tras las
Charla de Pablo Galindo en la PyconES 2019 sobre el mundo
Algunos proyectos Python están usando Rust. Por ejemplo:
Las variables locales pueden ser modificadas a través de su
Esto es lo que hace, por ejemplo, un debugger.
[35:37] ¡Spoiler sobre la resolución del "Memory Leak"!
Issue35930: Raising an exception raised in a "future"
Traceback:
Frame:
Stack:
[39:17] Usar una técnica similar para detectar las
[41:32] Sigo explicando detalles de la solución del "Memory
Issue35930: Raising an exception raised in a "future"
Estamos continuando una conversación que ha durado varias
Jesús Cea pone un ejemplo de cómo generar un ciclo con una
La caja y media de cervezas se las lleva... ¡Jesús!
[47:22] No se está conectando gente desde Hispanoamérica. ¿Por
[50:07] Más erratas: Los "tracebacks" NO son inmutables.
[50:32] Nuevo método "with_traceback()" a la hora de crear
https://docs.python.org/3/library/exceptions.html#BaseException.with_traceback.
Puedes generar una excepción con un "traceback"
El caballo de batalla del bug es que el "future"
Explicando cómo se visualizan los "traceback" si un "future"
Cuando un "future"
Hay varias formas de solucionar el bug. Ahora hay que pensar
[01:01:52] Sobre el "nivel" de las tertulias y sus motivaciones.
[01:06:12] Referencia rápida a temas de la tertulia anterior:
Dataclasses:
Pydantic: https://pypi.org/project/pydantic/.
FastAPI: https://pypi.org/project/fastapi/.
[01:09:17] Diagnóstico exhaustivo del bug "Memory Leak", causa
Issue35930: Raising an exception raised in a "future"
Exploración del propio código fuente de Python.
Repaso detallado del funcionamiento de un "future"
Uno de los problemas fundamentales de trabajar con hilos es
Este "transporte" es lo que está ocasionando el "Memory
¡Agárrate que vienen curvas!
[01:21:32] Ojo a la línea self = None. Aquí se rompe el
Closures:
"Pool" de "workers". De forma estándar, Python te
[01:31:32] Las partes relevantes en el hilo principal son:
https://github.com/python/cpython/blob/3.9/Lib/concurrent/futures/_base.py#L413.
https://github.com/python/cpython/blob/2fe408497e6838b6fb761e42e8f8ffc70bd6f3b1/Lib/concurrent/futures/_base.py#L387.
[01:37:02] ¡Brainstorming!
[01:42:42] try ... finally
Jejeje, alguien propone algo que funcionaría :-).
[01:43:57] Weakref:
Se pueden "resucitar" objetos.
[01:51:02] Volvemos al hilo, la corrección del bug.
El gráfico de antes, con ciclos:
El gráfico de después, sin ciclos:
[01:55:12] Comprobar este bug con un test unitario.
Por sus características... complicado.
"sys.getrefcount()":
"sys.exc_info()": https://docs.python.org/3/library/sys.html#sys.exc_info.
"Race conditions":
[01:59:22] Cuando recoge basura de objetos, podemos pedir que
"gc.DEBUG_SAVEALL":
Se puede limpiar "gc.garbage" antes de la ejecución del
[02:03:42] Bola extra:
Editar los audios.
Machine learning para el procesado de audio.
El problema del cocktail:
RNNoise https://jmvalin.ca/demo/rnnoise/.
[02:09:52] Repaso del día para los que llegaron tarde.
[02:12:52] Weakref:
Jesús ofrece algunos ejemplos de su utilidad.
[02:19:22] Iteradores WSGI
[02:21:12] Weakref en caché de objetos Durus
[02:23:52] El valor de la tertulia es llevarse algo que probar
[02:25:22] La tertulia la hacen los asistentes.
[02:28:36] Final.
Participantes:
Jesús Cea, email: [email protected], twitter:
Víctor Ramírez, twitter: @virako,
Miguel Sánchez, email:
Juan Carlos.
Plutarco, conectando desde Madrid.
Eduardo Castro, email:
Julio, conectando desde Chile.
Audio editado por Pablo Gómez, twitter:
La música de la entrada y la salida es "Lightning Bugs", de Jason
[00:52] Presentaciones.
[03:24] Aviso legal de que se está grabando y objetivos de la
[06:22] Autoimport, ¿debería ser una funcionalidad del IDE?
[12:52] Los IDEs y las inercias.
PyCharm: https://www.jetbrains.com/pycharm/.
Atajos de teclado.
vim: https://es.wikipedia.org/wiki/Vim.
Uso del teclado en vez del ratón.
Emacs: https://es.wikipedia.org/wiki/Emacs.
[19:22] Operador morsa (walrus). Sigue usándose muy poco.
Python va complicando la sintaxis más y más.
Se habló en una tertulia anterior.
Jesús solo ha encontrado este caso útil:
Pasar de:
A lo siguiente:
[25:57] Erratas en tertulias anteriores:
Migración de Python a Github fue en 2017.
No es "Steering committee" sino "Steering Council".
[27:02] Pablo Galindo forma parte del "council" tras las
Charla de Pablo Galindo en la PyconES 2019 sobre el mundo
Algunos proyectos Python están usando Rust. Por ejemplo:
Las variables locales pueden ser modificadas a través de su
Esto es lo que hace, por ejemplo, un debugger.
[35:37] ¡Spoiler sobre la resolución del "Memory Leak"!
Issue35930: Raising an exception raised in a "future"
Traceback:
Frame:
Stack:
[39:17] Usar una técnica similar para detectar las
[41:32] Sigo explicando detalles de la solución del "Memory
Issue35930: Raising an exception raised in a "future"
Estamos continuando una conversación que ha durado varias
Jesús Cea pone un ejemplo de cómo generar un ciclo con una
La caja y media de cervezas se las lleva... ¡Jesús!
[47:22] No se está conectando gente desde Hispanoamérica. ¿Por
[50:07] Más erratas: Los "tracebacks" NO son inmutables.
[50:32] Nuevo método "with_traceback()" a la hora de crear
https://docs.python.org/3/library/exceptions.html#BaseException.with_traceback.
Puedes generar una excepción con un "traceback"
El caballo de batalla del bug es que el "future"
Explicando cómo se visualizan los "traceback" si un "future"
Cuando un "future"
Hay varias formas de solucionar el bug. Ahora hay que pensar
[01:01:52] Sobre el "nivel" de las tertulias y sus motivaciones.
[01:06:12] Referencia rápida a temas de la tertulia anterior:
Dataclasses:
Pydantic: https://pypi.org/project/pydantic/.
FastAPI: https://pypi.org/project/fastapi/.
[01:09:17] Diagnóstico exhaustivo del bug "Memory Leak", causa
Issue35930: Raising an exception raised in a "future"
Exploración del propio código fuente de Python.
Repaso detallado del funcionamiento de un "future"
Uno de los problemas fundamentales de trabajar con hilos es
Este "transporte" es lo que está ocasionando el "Memory
¡Agárrate que vienen curvas!
[01:21:32] Ojo a la línea self = None. Aquí se rompe el
Closures:
"Pool" de "workers". De forma estándar, Python te
[01:31:32] Las partes relevantes en el hilo principal son:
https://github.com/python/cpython/blob/3.9/Lib/concurrent/futures/_base.py#L413.
https://github.com/python/cpython/blob/2fe408497e6838b6fb761e42e8f8ffc70bd6f3b1/Lib/concurrent/futures/_base.py#L387.
[01:37:02] ¡Brainstorming!
[01:42:42] try ... finally
Jejeje, alguien propone algo que funcionaría :-).
[01:43:57] Weakref:
Se pueden "resucitar" objetos.
[01:51:02] Volvemos al hilo, la corrección del bug.
El gráfico de antes, con ciclos:
El gráfico de después, sin ciclos:
[01:55:12] Comprobar este bug con un test unitario.
Por sus características... complicado.
"sys.getrefcount()":
"sys.exc_info()": https://docs.python.org/3/library/sys.html#sys.exc_info.
"Race conditions":
[01:59:22] Cuando recoge basura de objetos, podemos pedir que
"gc.DEBUG_SAVEALL":
Se puede limpiar "gc.garbage" antes de la ejecución del
[02:03:42] Bola extra:
Editar los audios.
Machine learning para el procesado de audio.
El problema del cocktail:
RNNoise https://jmvalin.ca/demo/rnnoise/.
[02:09:52] Repaso del día para los que llegaron tarde.
[02:12:52] Weakref:
Jesús ofrece algunos ejemplos de su utilidad.
[02:19:22] Iteradores WSGI
[02:21:12] Weakref en caché de objetos Durus
[02:23:52] El valor de la tertulia es llevarse algo que probar
[02:25:22] La tertulia la hacen los asistentes.
[02:28:36] Final.
1,115 Listeners