es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python typing: ¿Los stubs tienen preferencia sobre las fuentes de la biblioteca?

Estoy dividiendo mi código en múltiples paquetes, que se pueden instalar a través de PyPI. Luego, estos paquetes se utilizan en un paquete secundario, donde quiero que la información de tipos de los paquetes de “biblioteca” se utilice por completo. Para tener una verificación de tipos completa, me gustaría usar pyright / pylance, localmente y en CI.

¿Cuál es la forma recomendada de documentar los tipos para una biblioteca de Python? Actualmente estoy anotando parcialmente los tipos en el código fuente. ¿Debo proporcionar stubs? Cuando uso mi biblioteca en otro proyecto, recibo advertencias como “Archivo de stub no encontrado” en vscode.

Preguntas específicas:
1. ¿Es necesario tener stubs para una biblioteca de Python si quiero que los usuarios tengan acceso a la tipificación?
2. ¿Los stubs tienen prioridad sobre el código fuente de la biblioteca si ambos tienen tipos?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para utilizar completamente la información de tipos de paquetes de biblioteca al dividir el código en varios paquetes, se recomienda usar pyright / pylance para una verificación completa de tipos. Al documentar los tipos de una biblioteca de Python dividida en varios paquetes, se recomienda proporcionar stubs para asegurar que los usuarios tengan acceso a la tipificación. Si bien es útil anotar parcialmente los tipos en el código fuente, los stubs brindan una mejor autocompletado de código e inferencia de tipos para los usuarios de la biblioteca.

    En cuanto a preguntas específicas:

    1. Se recomienda encarecidamente proporcionar stubs para una biblioteca de Python si desea que los usuarios tengan acceso a la tipificación. Sin stubs, es posible que los usuarios no tengan acceso a la información completa de tipos y puedan ver advertencias como Archivo stub no encontrado en sus editores.

    2. En general, los stubs tienen prioridad sobre el código fuente de una biblioteca si ambos tienen tipos. Esto significa que si existe un stub para una función o clase, se utilizará en lugar de cualquier anotación de tipo en el código fuente. Si no existe un stub para una función o clase en particular, se utilizarán las anotaciones de tipo en el código fuente. Sin embargo, esto puede depender de las herramientas y editores específicos que se estén utilizando, por lo que es importante realizar pruebas a fondo.

Comments are closed.