tengo la siguiente función:
import pandas as pd def eq(left: pd.Timestamp, right: pd.Timestamp) -> bool: return left == rightRecibo el siguiente error cuando lo ejecuto a través de Mypy:
error: devolver cualquiera de la función declarada para devolver "bool"
Creo que esto se debe a que Mypy no conoce pd.Timestamp , por lo que lo trata como Any . (Usar la función Mypy reveal_type muestra que Mypy trata a left y a right como Any ).
¿Cuál es la forma correcta de lidiar con esto para evitar que Mypy se queje?
puedes lanzarlo como un bool.
import pandas as pd def eq(left: pd.Timestamp, right: pd.Timestamp) -> bool: return bool(left == right) si a cast no le gusta eso, puede importar la conversión de tipeo y usarla para convertirla en un bool.
import pandas as pd from typing import cast def eq(left: pd.Timestamp, right: pd.Timestamp) -> bool: result = bool(left == right) return cast(bool, result)Lo he probado también sin usar el comando cast . La verificación de Mypy se pasa sin ningún error con el siguiente código:
import pandas as pd def eq(left: pd.Timestamp, right: pd.Timestamp) -> bool: return bool(left == right)(Probado con Mypy 0910.)