madwind / flexget_qbittorrent_mod

flexget qbittorrent删种、辅种 自动签到 插件
MIT License
552 stars 117 forks source link

fix mypy error #92

Closed vivodi closed 2 years ago

vivodi commented 2 years ago

将不能为None的值改为用索引运算符访问,而不是使用get()方法,如selector.get('detail_sources').values()改为selector['detail_sources'].values()。因为selector.get('detail_sources')None还是会报错:

AttributeError: 'NoneType' object has no attribute 'values'

vivodi commented 2 years ago

如果返回值需要被使用,如判断是否为None,则需要显示地编写 return None

madwind commented 2 years ago

参数不写None也报错?这看起来就像在说这个方法可以传None def decode(response: Response | None) -> str | None:

vivodi commented 2 years ago

https://github.com/madwind/flexget_qbittorrent_mod/blob/44ee57fbab82dba197a99b5d846e3f9e4bf479d8/ptsites/utils/net_utils.py#L13-L22

14行和15行说明是可以传入 None

vivodi commented 2 years ago

如果你觉得不应该传入 None,要不要我将14-15行删去,然后修改函数签名?

vivodi commented 2 years ago

我也认为不应传入 None

因为在用 decode() 之前,一般都要先用 check_network_state() 检查 response 是否为 None。再者用到这个函数的代码好像都没有判断其返回值是否为 None,而是直接将其返回值当做非 None 来用的。

madwind commented 2 years ago

也可以吧 我看request也定义了 -> Response | None: 类型也算对得上