簡體   English   中英

flake8 在存根文件中以 python 版本為條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM