Tener varias versiones de Python en el mismo ordenador, estado de Durus, su licencia y cómo funciona la persistencia de datos
Autor: Jesús Cea & Otros - Contacto: python2021@podcast.jcea.es
Fecha de grabación: 2021/04/13 - Duración: 01:16:58
Fecha de publicación: 2021/06/29
Palabras clave: Tertulia
Descarga el audio: M4A (20274301 bytes) - OPUS (10066970 bytes)
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.
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.
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.
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/.
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.
docutils: https://pypi.org/project/docutils/.
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.
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.
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 :-).
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.
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