TransWikia.com

Mypy ¿Es mejor usar archivos stub o tipos dentro del código para librerías nuevas en Python?

Stack Overflow en español Asked by Genarito on January 15, 2021

Estoy escribiendo una nueva biblioteca desde cero en Python, me gustaría usar Mypy para el chequeo de tipos. Pero no sé si es mejor especificar los tipos en el código fuente o en un archivo stub.

Veo que proyectos como Django tiene un repositorio diferente con stubs (este proyecto se mergearía con el proyecto original cuando esté terminado), mientras que otros como Pandas tienen los tipos en el código.

¿Qué sería mejor para la mantenibilidad? ¿Por qué los contribuyentes no están haciendo PR con tipos dentro del código de Django en lugar de un fork con stubs? ¿Hay alguna buena práctica sobre esto? He leído el PEP 484 pero no menciona un método preferido o casos de uso.

Desde ya muchas gracias!

One Answer

después de un tiempo he consultado en diferentes sitios de manera informal y me han comentado que los archivos Stubs son para agregar soporte a grandes proyectos que ya se encuentran escritos y que cambiar el código para agregar tipado puede ser un proceso costoso o, incluso, ir en contra de los planes de los desarrolladores que mantienen un proyecto, como es el caso de Django donde el equipo considera que agregaría más problemas que soluciones (propuesta en Github). De esta manera se puede crear un archivo con la estructura tipada que se pueda incorporar a un proyecto ya instalado de manera independiente.

En el caso que se haga una librería desde 0 con soporte para tipos de Mypy, se puede agregar el tipado al core sin problemas ya que afecta en lo absoluto al funcionamiento final del código Python.

Evidentemente no hay una solución global, sino que se debe optar por la opción que más se adecúe a las necesidades de cada proyecto.

Correct answer by Genarito on January 15, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP