Пайланс утверждает, что код под именем if not dfs: недоступен, и выделяет его серым цветом в VS Code.
import pandas as pd
def concat_dfs(dfs: tuple[pd.DataFrame | None], logger) -> pd.DataFrame | None:
# filter out dfs that are None, if any
dfs = [df for df in dfs if df is not None]
# concatinate dfs, if any are not None:
if not dfs:
logger.warning("All elements of dfs are None, so no inputs remain to be analyzed")
return None # greyed out as unreachable
else:
return pd.concat(dfs).sort_index()
Я пытался вернуть только dfs, а не pd.concat(dfs).sort_index(), так как некоторые pd.concat есть/были > связанные ошибки в Pylance.
Я также попробовал провести небольшой тест. Если Пайланс прав, я бы ожидал, что это будет не dfs = False, а True:
dfs = (None, None)
dfs = [df for df in dfs if df is not None] # dfs is an empty list
not dfs # returns True --> code should be reachable when every dataframe in dfs is None to begin with...
Подробнее здесь: https://stackoverflow.com/questions/787 ... -otherwise