我在一个项目中使用 mypy 1.2.0。我正在检查以下代码:
from datetime import date, timedelta
from pydantic import BaseModel
class ScheduleItem(BaseModel):
start_date: Optional[date] = None
items = [
ScheduleItem(start_date=None),
ScheduleItem(start_date=date.today()),
ScheduleItem(start_date=date.today() - timedelta(days=3)),
]
sorted_items = sorted(
[item for item in items if item.start_date],
key=lambda item: item.start_date,
)
我收到以下 lint 错误:
error: Argument "key" to "sorted" has incompatible type "Callable[[ScheduleItem], Optional[date]]"; expected "Callable[[ScheduleItem], Union[SupportsDunderLT[Any], SupportsDunderGT[Any]]]" [arg-type]
error: Incompatible return value type (got "Optional[date]", expected "Union[SupportsDunderLT[Any], SupportsDunderGT[Any]]") [return-value]
但是,我将一个列表传递给
sorted
,它强制执行排序的值不是None
。我如何将其传达给 mypy?