\xbfSe pueden usar diferentes versiones de una misma librer\xeda en un proyecto? (resumen: \xa1No vayas por ah\xed!). MultiVersion Concurrent Control https://podcast.jcea.es/python/19\n
Participantes:
\nJes\xfas Cea, email: jcea@jcea.es, twitter:\n @jcea, https://blog.jcea.es/,\n https://www.jcea.es/. Conectando desde Madrid.
\nV\xedctor Ram\xedrez, twitter: @virako,\n programador python y amante de\n vim, conectando desde Huelva.
\nJavier, conectando desde Madrid.
\nMiguel S\xe1nchez, email:\n msanchez@uninet.edu, conectando desde\n Canarias.
\nAudio editado por Pablo G\xf3mez, twitter:\n@julebek.
\nLa m\xfasica de la entrada y la salida es "Lightning Bugs", de Jason\nShaw. Publicada en https://audionautix.com/ con licencia\n- Creative Commons Attribution 4.0 International\nLicense.
\n[00:52] Pr\xf3logo:
\nFOSDEM https://fosdem.org/.
\nEscuchar audios previos para ver errores y comentar\n "erratas".
\n[03:07] \xa1Tenemos un voluntario para editar el podcast!
\nDetalles de c\xf3mo grabamos las tertulias.
\nTodo se graba en una sola pista :-(.
\nIdeas para automatizar el proceso.
\n[09:17] Aviso legal de que se est\xe1 grabando el sonido y que se\n va a publicar online.
\n[11:22] Errata de la tertulia anterior: No, pipenv\n https://pypi.org/project/pipenv/ no puede instalar dos\n versiones diferentes de la misma librer\xeda.
\n[13:07] Tormenta de ideas\n https://es.wikipedia.org/wiki/Lluvia_de_ideas sobre c\xf3mo usar\n diferentes versiones de la misma librer\xeda en el mismo proyecto.\n Conclusi\xf3n: \xa1No vayas por ah\xed!
\nLas bibliotecas solo se cargan una vez en el programa,\n aunque se hagan muchos import
en el c\xf3digo.
sys.modules
\n https://docs.python.org/3/library/sys.html#sys.modules.
Dependencias transitivas.
\nSubint\xe9rpretes Python. PEP 554:\n https://www.python.org/dev/peps/pep-0554/.
\nM\xf3dulos en C: PEP 489 -- Multi-phase extension module\n initialization https://www.python.org/dev/peps/pep-0489/.
\n[22:17] Python 3.10a5. PEP 636 -- Structural Pattern Matching:\n Tutorial https://www.python.org/dev/peps/pep-0636/.
\n\xa1M\xe1s sintaxis nueva!
\nPEP 617 -- New PEG parser for CPython\n https://www.python.org/dev/peps/pep-0617/.
\n[23:57] Nuitka https://nuitka.net/.
\n[26:02] Volvemos a "Structural Pattern Matching"\n https://www.python.org/dev/peps/pep-0636/.
\n[27:32] Lo importante que fue la modernizaci\xf3n de los tutoriales\n y ejemplos para ayudar a la migraci\xf3n de Python 2 a Python 3.
\nPEP 414 -- Explicit Unicode Literal for Python 3.3\n https://www.python.org/dev/peps/pep-0414/.
\nJes\xfas Cea opina que la migraci\xf3n de Python 2 a Python 3\n se hizo mal y ha sido muy traum\xe1tica.
\n[30:22] PEP 8 https://www.python.org/dev/peps/pep-0008/.
\n\xbfAjustarse estrictamente a 80 columnas?
\nFlake8: https://pypi.org/project/flake8/.
\n[33:22] Mucho cuidado con "python-ideas"\n https://mail.python.org/mailman3/lists/python-ideas.python.org/.
\nTabulaci\xf3n de c\xf3digo.
\nLa anotaci\xf3n de tipos puede gustar o no, pero de momento es\n opcional.
\nTema recurrente: \xbfQu\xe9 es ser pythonico?
\n[35:12] Ventajas de anotar tipos.
\nOrigen de MYPY: http://mypy-lang.org/.
\nAportar informaci\xf3n al IDE\n https://en.wikipedia.org/wiki/Integrated_development_environment.
\nValor a la hora de documentar los tipos en los API\n https://en.wikipedia.org/wiki/API.
\n[39:52] Cryptography https://cryptography.io/en/latest/ y\n pol\xe9mica al integrar m\xf3dulos en Rust\n https://en.wikipedia.org/wiki/Rust_(programming_language)
\n[41:27] Digresi\xf3n sobre systemd\n https://en.wikipedia.org/wiki/Systemd y otras cosas de\n sistemas.
\n[45:07] El peso de la web est\xe1 movi\xe9ndose otra vez al backend.\n \xbfQu\xe9 opciones tiene Python en este area?
\nEl cliente web solo env\xeda eventos al servidor y recibe\n cambios al DOM\n https://es.wikipedia.org/wiki/Document_Object_Model\n enviadas por el servidor.
\nAbre la posibilidad olvidarnos de JavaScript:\n https://es.wikipedia.org/wiki/JavaScript.
\nItsNat: https://en.wikipedia.org/wiki/ItsNat.
\n[51:02] splash https://pypi.org/project/splash/.\n Servicio de dibujado de javascript en Python.
\n[56:07] Integrar Python en otros programas y demonios.
\n[57:07] PyOxidizer\n https://pyoxidizer.readthedocs.io/en/stable/ y PyO3\n https://pyo3.rs/.
\nInteractuar con otros lenguajes.
\nPython en Java, interactuando sin dolor: Jython\n https://www.jython.org/.
\n[59:52] \xbfC\xf3mo empezamos en Python?
\nValor de Python como lenguaje f\xe1cil de entender y\n pseudoc\xf3digo.
\nTutorial de Python:\n https://docs.python.org/es/3/tutorial/index.html.
\n[01:05:07] Modificaci\xf3n at\xf3mica de ficheros.
\nEn Unix se suele hacer: write + flush + rename.
\nMS Windows eso no funciona.
\nPython 3.3 a\xf1adi\xf3 os.replace()
\n https://docs.python.org/3.8/library/os.html#os.replace.
En MS Windows es at\xf3mico... casi siempre: Issue8828: Atomic\n function to rename a file\n https://bugs.python.org/issue8828.
\n[01:10:02] Combinar fork e hilos en Python es una receta para el\n desastre.
\nfork:\n https://www.man7.org/linux/man-pages/man2/fork.2.html.
\nmultiprocessing
:\n https://docs.python.org/3/library/multiprocessing.html.
[01:11:37] Decorador @overload
\n https://docs.python.org/3/library/typing.html#typing.overload.
@functools.singledispatch
\n https://docs.python.org/3/library/functools.html.
\xbfQu\xe9 se ve cuando salta una excepci\xf3n?
\nEspecializaciones.
\nCython https://cython.org/.
\n[01:17:00] AnyIO\n https://anyio.readthedocs.io/en/stable/basics.html.\n Unificaci\xf3n de reactores as\xedncronos.
\n[01:18:12] "lxml soporta xpath".
\nHilo en la lista de correo: "[Python-es] Biblioteca XPATH"\n https://mail.python.org/pipermail/python-es/2021-February/037931.html.
\nlxml: https://lxml.de/.
\nbeautifulsoup4: https://pypi.org/project/beautifulsoup4/.
\nScrapy: https://scrapy.org/.
\nEl buscador de PyPI https://pypi.org/ funciona fatal a la\n hora de ordenar por relevancia.
\n[01:20:02] El valor de estudiar el c\xf3digo fuente ajeno no solo\n para aprender de \xe9l sino tambi\xe9n para descubrir qu\xe9 bibliotecas\n \xfatiles utilizan para a\xf1adirlas a tu caj\xf3n de herramientas.
\nEs la documentaci\xf3n \xfaltima.
\nLos tests son muy \xfatiles para saber c\xf3mo se usa el producto.
\n[01:22:02] \xbfC\xf3mo gestion\xe1is la paginaci\xf3n cuando los datos del\n backend cambian? \xbfC\xf3mo evit\xe1is repetir resultados o saltaros\n datos?
\nBrainstorming de diversas estrategias.
\nBerkeley DB: https://pypi.org/project/berkeleydb/.
\nMultiversion concurrency control:\n https://es.wikipedia.org/wiki/Multiversion_concurrency_control.
\nCopy on Write:\n https://es.wikipedia.org/wiki/Copy_on_write.
\nSnapshot:\n https://es.wikipedia.org/wiki/Copia_instant%C3%A1nea_de_volumen.
\nPostgreSQL: https://www.postgresql.org/.
\nZFS:\n https://es.wikipedia.org/wiki/ZFS_(sistema_de_archivos).
\nNormalizaci\xf3n y formas normales:\n https://es.wikipedia.org/wiki/Forma_normal_(base_de_datos).
\n[01:48:42] FOSDEM https://fosdem.org/:
\nVirako recomienda las siguientes:
\nSome SQL Tricks of an Application DBA - Non-trivial tips for\n database development\n https://fosdem.org/2021/schedule/event/postgresql_some_sql_tricks_of_an_application_dba/.
\nDatabase Disasters and How to Find Them\n https://fosdem.org/2021/schedule/event/postgresql_database_disasters_and_how_to_find_them/.
\nPractical advice for using Mypy - Hidden gems in the typing\n system!\n https://fosdem.org/2021/schedule/event/python_mypy/.
\nEscaping the Cargo Cult - How to structure your project\n without losing your mind.\n https://fosdem.org/2021/schedule/event/python_escaping_cargo_cult/.
\n[01:52:02] Charla Python Madrid https://www.python-madrid.es/.
\n[01:54:27] Comentado en la tertulia de la semana pasada: Bugs\n sobre "pickle" https://docs.python.org/3/library/pickle.html\n en el m\xf3dulo __main__
.
Se trata de un problema conocido.
\nEjemplo de c\xf3digo: https://pastebin.com/vGM1sh8r.
\nIssue24676: Error in pickle using cProfile\n https://bugs.python.org/issue24676.
\nIssue9914: trace/profile conflict with the use of\n sys.modules[__name__]
https://bugs.python.org/issue9914.
Issue9325: Add an option to pdb/trace/profile to run library\n module as a script https://bugs.python.org/issue9325.
\n[02:00:42] Que te cuenten lo que no funciona es mucho m\xe1s\n interesante.
\n[02:02:52] Whoosh:\n https://whoosh.readthedocs.io/en/latest/intro.html. \xbfC\xf3mo\n normalizar las palabras para espa\xf1ol?
\n[02:05:48] Final.
\n