Episode Description
Participantes:
-
Jesús Cea, email: jcea@jcea.es, twitter: @jcea, https://blog.jcea.es/, https://www.jcea.es/. Conectando desde Madrid.
-
Jesús, conectando desde Ferrol.
-
Felipem, conectando desde Cantabria.
-
Eduardo Castro, email: info@ecdesign.es. Conectando desde A Guarda.
-
Víctor Ramírez, twitter: @virako, programador python y amante de vim, conectando desde Huelva.
-
Sergio, conectando desde Vigo.
-
Juan José, Nekmo, https://nekmo.com/, https://github.com/Nekmo/. Madrileño conectando desde Málaga.
-
Miguel Sánchez, email: msanchez@uninet.edu, conectando desde Las Palmas.
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] Presentaciones.
-
[03:47] Utilizar diferentes versiones de Python en el mismo ordenador.
-
Cada paquete instalado está vinculado a una instancia concreta de Python instalada en el sistema.
-
Nunca hacer
pip install
, sino indicar la versión:pip3.9 install
. -
A la hora de instalar paquetes Python en la versión nativa del sistema operativo, se puede usar
pip
o bien el gestor de paquetes del sistema operativo. Mezclar ambas es una receta para el desastre.
-
-
[16:37] Un problema de los paquetes precompilados ("wheels" https://www.python.org/dev/peps/pep-0427/) es que no se suelen precompilar de forma retroactiva para la última versión de Python que acaba de salir.
- No suelen estar disponibles hasta que sale una versión nueva del paquete, lo que puede tardar meses.
-
[19:52] ¿Bibliotecas para manejar imágenes, compatibles con PyPy https://www.pypy.org/?
- Numpy https://numpy.org/ aún no funciona en PyPy https://www.pypy.org/.
-
[21:17] ¿Qué es PyPy https://www.pypy.org/ exactamente?
-
Jit: Compilación al vuelo https://es.wikipedia.org/wiki/Compilaci%C3%B3n_en_tiempo_de_ejecuci%C3%B3n.
-
Barrera de entrada muy grande para entrar en el proyecto. Curva de aprendizaje.
-
Problemas con los módulos en C. No valoraron la importancia del ecosistema.
-
-
[27:27] Experiencia de un par de semanas con Flit https://pypi.org/project/flit/.
-
Jesús Cea lo está utilizando para publicar su biblioteca toc2audio https://docs.jcea.es/toc2audio/.
-
Herramienta propuesta en la charla "Python Packaging: Lo estás haciendo mal" https://www.youtube.com/watch?v=OeOtIEDFr4Y, de Juan Luis Cano.
-
PEP 621 -- Storing project metadata in pyproject.toml https://www.python.org/dev/peps/pep-0621/.
-
Lo importante que es tener enlaces directos al "changelog" o a la documentación en PyPI https://pypi.org/.
-
-
[31:32] Módulos de documentación. Carencias.
-
Docstrings.
-
Sphinx https://pypi.org/project/Sphinx/.
make html
.
-
Tema eterno: Incluir una biblioteca en la biblioteca estándar o como biblioteca estándar.
-
ReST: reStructuredText https://docutils.sourceforge.io/rst.html.
- PEP 287 -- reStructuredText Docstring Format https://www.python.org/dev/peps/pep-0287/.
-
docutils: https://pypi.org/project/docutils/.
-
-
[40:02] ¿Formato tertulia o preguntas y respuestas?
-
[41:22] Estado actual de Durus https://www.mems-exchange.org/software/DurusWorks/ y comentarios variados sobre el sistema de persistencia.
-
Jesús Cea ha estado intentando conectar con los autores, con poco éxito.
-
Jesús Cea tiene problemas con la licencia.
-
¿Abandonar el proyecto y pasarse a ZODB https://zodb.org/en/latest/?
-
La gente está haciendo "forks" https://en.wikipedia.org/wiki/Fork_(software_development) pasando olímpicamente de las licencias.
-
Jesús Cea se está currando varios cambios de licencia en ciertos proyectos que le interesan, con muy poco éxito.
-
COPYRIGHT ASSIGNMENT https://www.copylaw.com/forms/copyassn.html.
-
-
[50:32] ¿Cómo funciona un sistema de persistencia?
-
Modelo completamente diferente a un ORM https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping.
-
Working set: https://en.wikipedia.org/wiki/Working_set.
-
-
[58:17] Volvemos al tema de licencias.
-
[59:52] Explícame esto: https://lists.es.python.org/pipermail/general/2021-April/003476.html.
Creamos un fichero "a.py" con el contenido: def x(): print('X') Creamos otro fichero "b.py" con el contenido: import a class clase: x = a.x def p(self): print(self.x) self.x() if __name__ == '__main__': a.x() b = clase() b.p() Ejecutas "b.py" y me explicas por qué sale lo que sale :-).
-
[01:03:42] A la gente le encanta que le "piquen".
-
[01:03:52] Las versiones actuales de Python ya han integrado el parche del "memory leak" que se habló en navidades.
- bpo-35930: Raising an exception raised in a "future" instance will create reference cycles #24995 https://github.com/python/cpython/pull/24995.
-
[01:04:22] Llamada a ponencias de la PyConES https://2021.es.pycon.org/.
-
[01:05:22] Volvemos al reto en https://lists.es.python.org/pipermail/general/2021-April/003476.html.
-
Pista: los métodos son descriptores: https://docs.python.org/3/howto/descriptor.html.
-
Bound method: https://www.geeksforgeeks.org/bound-methods-python/.
-
Métodos estáticos: https://pythonbasics.org/static-method/.
-
No se ha entendido nada porque ha habido numerosos cortes de sonido. El tema está bastante mejor explicado y se entiende en, por ejemplo, From Function to Method https://wiki.python.org/moin/FromFunctionToMethod.
-
-
[01:10:02] Atributos de función. PEP 232 -- Function Attributes https://www.python.org/dev/peps/pep-0232/.
- Se pueden meter atributos a un método, pero se hace a nivel
de clase, no de instancia, porque los métodos pertenecen a
la clase, no a la instancia:
class clase: def p(self): clase.p.hola = 78 >>> x=clase() >>> x.p() >>> x.p.hola 78 >>> y=clase() >>> a.p.hola 78 >>> clase.p.hola 78
- Se pueden meter atributos a un método, pero se hace a nivel
de clase, no de instancia, porque los métodos pertenecen a
la clase, no a la instancia:
-
[01:14:42] Notas de las grabaciones, temas futuros y enviar temas con algún tiempo previo a la tertulia si requieren pensar.
-
[01:16:06] Final.