[英]flake8 conditional with python version in stub file
我需要同時支持 python 3.8 和低於 3.8 的版本,但是我需要導入到我的存根 (*.pyi) 文件中的 package 在 <3.8 中具有不同的名稱
import sys
if sys.version_info.minor < 8:
import xyz
else:
import zyx
一般來說,這應該可以完成這項工作,但是當我使用 *.pyi 文件配置( flake8 --config flake8-pyi.ini
)運行 flake8 時,我得到了這個:
Y002 If test must be a simple comparison against sys.platform or sys.version_info
有什么想法可以做些什么嗎?
提前致謝!
從flake8-pyi 的描述(一個 flake8 插件,不是 flake8 本身的一部分):
Y002:如果測試必須是與 sys.platform 或 sys.version_info 的簡單比較。 存根文件支持簡單的條件來指示 Python 版本或平台之間的差異,但類型檢查器只能理解 Python 語法的有限子集,並且此警告會觸發類型檢查器可能無法理解的條件。
解決方法是將您的條件更改為:
if sys.version_info < (3, 8):
請注意,您的代碼會在2.8
(是的,有些人這樣做!)和4.0
中中斷,因此您應該小心省略部分比較;)——我編寫了一個 flake8 插件,它有助於 lint 防止可能有問題的條件:薄片8-2020
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.