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.

¿Cómo puedo probar la igualdad de objetos de forma limpia en Mypy sin producir errores?

Tengo la siguiente función:

import pandas as pd

def eq(left: pd.Timestamp, right: pd.Timestamp) -> bool:
    return left == right

Recibo el siguiente error al ejecutarlo a través de Mypy:

error: Returning Any from function declared to return "bool"

Creo que esto se debe a que Mypy no conoce pd.Timestamp, por lo que lo trata como Any. (Usar la función reveal_type de Mypy muestra que Mypy trata left y right como Any.)

¿Cuál es la forma correcta de manejar esto para evitar que Mypy se queje?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    La forma correcta de abordar este problema es importar Timestamp del módulo pandas y utilizarlo en la declaración de la función en lugar de pd.Timestamp. La función actualizada se vería así:

    from pandas import Timestamp
    
    def eq(left: Timestamp, right: Timestamp) -> bool:
        return left == right
    

    Esto permitirá que Mypy reconozca correctamente el tipo de left y right como Timestamp y evitará el error “Returning Any from function declared to return “bool””.

Comments are closed.