Python en español

Python en español #28: Tertulia 2021-04-13


Listen Later

Tener varias versiones de Python en el mismo ordenador, estado de Durus, su licencia y cómo funciona la persistencia de datos https://podcast.jcea.es/python/28

Participantes:

  • Jesús Cea, email: [email protected], 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:

    [email protected]. 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:

    [email protected], 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.

            • HPy https://hpyproject.org/.

            • [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.

                • https://github.com/astrojuanlu/charla-python-packaging.

                • https://nbviewer.jupyter.org/format/slides/github/astrojuanlu/charla-python-packaging/blob/main/Charla%20Python%20packaging.ipynb#/

                • 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.

                  • 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/.
                      • 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.

                        • ZOPE https://zopefoundation.github.io/Zope/.

                        • 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.

                          • SQL: https://en.wikipedia.org/wiki/SQL.

                          • 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
                                • [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.

                                  ...more
                                  View all episodesView all episodes
                                  Download on the App Store

                                  Python en españolBy Jesús Cea


                                  More shows like Python en español

                                  View all
                                  Libros para Emprendedores by Luis Ramos

                                  Libros para Emprendedores

                                  1,115 Listeners