Python en español #28: Tertulia 2021-04-13
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.
<timestamp compact="1" offset="52" ts="52">[00:52 ]<topic> Presentaciones.</topic></timestamp>
<timestamp compact="1" offset="52" ts="227">[03:47 ]<topic> Utilizar diferentes versiones de Python en el mismo
ordenador.</topic></timestamp>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
.
installA la hora de instalar paquetes Python en la versión nativa
del sistema operativo, se puede usarpip
o bien el gestor
de paquetes del sistema operativo. Mezclar ambas es una
receta para el desastre.
<timestamp compact="1" offset="52" ts="997">[16:37 ]<topic> 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.</topic></timestamp>- No suelen estar disponibles hasta que sale una versión nueva
del paquete, lo que puede tardar meses.
- No suelen estar disponibles hasta que sale una versión nueva
<timestamp compact="1" offset="52" ts="1192">[19:52 ]<topic> ¿Bibliotecas para manejar imágenes, compatibles con PyPy
https://www.pypy.org/?</topic></timestamp>- Numpy https://numpy.org/ aún no funciona en PyPy
https://www.pypy.org/.
- Numpy https://numpy.org/ aún no funciona en PyPy
<timestamp compact="1" offset="52" ts="1277">[21:17 ]<topic> ¿Qué es PyPy https://www.pypy.org/ exactamente?</topic></timestamp>
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.
<timestamp compact="1" offset="52" ts="1647">[27:27 ]<topic> Experiencia de un par de semanas con Flit
https://pypi.org/project/flit/.</topic></timestamp>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/.
<timestamp compact="1" offset="52" ts="1892">[31:32 ]<topic> Módulos de documentación. Carencias.</topic></timestamp>
Docstrings.
doctest
https://docs.python.org/3/library/doctest.html.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/.
- PEP 287 -- reStructuredText Docstring Format
docutils: https://pypi.org/project/docutils/.
<timestamp compact="1" offset="52" ts="2402">[40:02 ]<topic> ¿Formato tertulia o preguntas y respuestas?</topic></timestamp>
<timestamp compact="1" offset="52" ts="2482">[41:22 ]<topic> Estado actual de Durus
https://www.mems-exchange.org/software/DurusWorks/ y
comentarios variados sobre el sistema de persistencia.</topic></timestamp>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.ZOPE https://zopefoundation.github.io/Zope/.
COPYRIGHT ASSIGNMENT
https://www.copylaw.com/forms/copyassn.html.
<timestamp compact="1" offset="52" ts="3032">[50:32 ]<topic> ¿Cómo funciona un sistema de persistencia?</topic></timestamp>
Modelo completamente diferente a un ORM
https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping.SQL: https://en.wikipedia.org/wiki/SQL.
Working set: https://en.wikipedia.org/wiki/Working_set.
<timestamp compact="1" offset="52" ts="3497">[58:17 ]<topic> Volvemos al tema de licencias.</topic></timestamp>
<timestamp compact="1" offset="52" ts="3592">[59:52 ]<topic> Explícame esto:
https://lists.es.python.org/pipermail/general/2021-April/003476.html.</topic></timestamp>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 :-).<timestamp compact="0" offset="52" ts="3822">[01:03:42 ]<topic> A la gente le encanta que le "piquen".</topic></timestamp>
<timestamp compact="0" offset="52" ts="3832">[01:03:52 ]<topic> Las versiones actuales de Python ya han integrado el
parche del "memory leak" que se habló en navidades.</topic></timestamp>- bpo-35930: Raising an exception raised in a "future"
instance will create reference cycles #24995
https://github.com/python/cpython/pull/
- bpo-35930: Raising an exception raised in a "future"