Show notes
Persistencia de datos en Python https://podcast.jcea.es/python/9Escucharme (Jesús Cea) es agotador.¡Persistencia!Participantes:Eduardo Castro [email protected].Jesús Cea, email: [email protected], twitter: @jcea, https://blog.jcea.es/, https://www.jcea.es/.Sergio, desde Moaña.Adrián, desde Vigo.Juan Carlos, desde Bilbao.Javier, desde Madrid.Audio editado por Pablo Gómez, twitter:@julebek.La música de la entrada y la salida es "Lightning Bugs", de JasonShaw. Publicada en https://audionautix.com/ con licencia- Creative Commons Attribution 4.0 InternationalLicense.[00:52] Amplia comunidad tecnológica en Vigo.[05:22] Contexto y estilo de las tertulias.[08:52] Proyectos importantes e interesantes que pasandesapercibidos.Apache Airflow: https://airflow.apache.org/.Tryton: https://www.tryton.org/.El mundo es muy grande...[12:52] Antes de empezar un proyecto nuevo hay que investigar elestado del ecosistema.[14:12] La mayoría de las charlas Python se centran en libreríasconcretas.A mí me interesa el lenguaje concreto o técnicas útiles paracualquier programador Python.[16:37] ¿Compatibilidad hacia atrás? Poner límites a lacompatibilidad, por salud mental.La compatibilidad hacia atrás te limita a la hora de adoptarnovedades en el lenguaje o hacer limpieza en el código.Soportar solo las versiones soportadas de Python.[23:22] ¿Qué pasa si la versión nueva de la librería solo funcionaen Python 3 pero la está instalando en Python 2?PIP no permite imprimir nada en pantalla, a menos que sea un error.Las versiones modernas de PIP permiten especificar la compatibilidad con versiones de Python.[27:52] Interfaces de usuario en Python.wxWidgets: https://wxwidgets.org/.Kivi: https://kivy.org/.Usar directamente HTML/JS/CSS con un microservidor en 127.0.0.1. Una ventaja adicional es que permite el acceso remoto.[31:40] Compilar y distribuir módulos binarios Python para MSWindows.¿Por qué nadie ha sacado un generador de instaladoresmutiplataforma? Poder generar un instalador para MS Windows desdeLinux?¿Algún servicio al que mandas código fuente y te devuelva unaversión compilada para MS Windows?[38:32] ¡Persistencia!Persistencia de objetos nativos de Python comparado con losORM. Adaptación de impedancias entre lenguajes: Python/SQL.ZODB: http://www.zodb.org/en/latest/.Durus: https://www.mems-exchange.org/software/DurusWorks/.Ecosistemas pequeños.Migración de versiones.[56:22] Nuevo "resolver" de PIP:https://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html.[01:00:52] Diferencia entre "file.readlines()" y"string.splitlines()".CBOR: https://tools.ietf.org/html/rfc7049.JSON no mola.[01:12:07] ¿Ya habeis migrado a Python 3.9? Mejoras.¿Cual es la versión más antigua que estáis usando?. Python 3.6es la versión más antigua aún soportado. "Async" pasó a ser unapalabra reservada.Mantener la compatibilidad impide usar las novedades dellenguaje, por ejemplo, f-strings o "dataclasses"https://docs.python.org/3/library/dataclasses.html.Paquete externo "dataclasses" para versiones antiguas dePython: https://pypi.org/project/dataclasses/.[01:19:12] Cacheo de números -5..256.En CPython los destructores se invocan inmediatamente.Deuda técnica que hay que pagarla... o no.[01:21:42] Volvemos a persistencia / SQL. Abstracciones.¿Qué pasa cuando actualizas Python?Actualizaciones de tu programa. Migraciones.[01:34:52] Profundizamos en cómo funciona la persistencia.[01:48:17] Profiling de memoria.memory-profiler https://pypi.org/project/memory-profiler/.tracemalloc https://docs.python.org/3/library/tracemalloc.html.Algunos trucos para ayudar, por ejemplo, etiquetar las estructura de datos.Manhole: https://pypi.org/project/manhole/.Volcar la memoria de un proceso sin matar el proceso: gcore https://www.linux.org/docs/man1/gcore.html.Top 5 Python Memory Profilers https://stackify.com/top-5-python-memory-profilers/.[01:59:22] Cierre de la tertulia y administratrivia.[02:03:37] Arggg, ¡otra vez persistencia! ¡Menudo rollo!Pyramid https://trypyramid.com/.ZODB: http://www.zodb.org/en/latest/.Durus: https://www.mems-exchange.org/software/DurusWorks/.

