公共Python API?

Flake8 3.0.0目前還沒有一個公共的、穩定的Python API。

當它這樣做時,它將位于 flake8.api 在這里記錄下來。

傳統API?

什么時候? Flake8 打破了它對pycodestyle復雜內部結構的嚴格依賴,也失去了簡單的向后兼容性。為了幫助API的現有用戶 flake8.api.legacy . 這個模塊包括一對類(下面有文檔)和一個函數。

Flake8的開發人員觀察到的主要用法是使用 get_style_guide() 函數然后調用 check_files() . 在較小程度上,人們似乎也在使用 get_statistics() 什么方法 check_files 返回。然后我們試圖在這個模塊中保留這個API。

讓我們一起來看一段代碼示例:

from flake8.api import legacy as flake8


style_guide = flake8.get_style_guide(ignore=['E24', 'W503'])
report = style_guide.check_files([...])
assert report.get_statistics('E') == [], 'Flake8 found violations'

這代表了所有現有Flake8 2.x集成的基本通用用法。我們發現的每個例子都有明顯的不同,但這是一種要點,所以讓我們來看看這個。

所有向后兼容的API都在 flake8.api.legacy 子模塊。這是為了清楚地表明,舊的API正在被使用。

我們創造了一個 flake8.api.legacy.StyleGuide 通過呼叫 flake8.api.legacy.get_style_guide() . 我們可以將選項傳遞給 flake8.api.legacy.get_style_guide() 與可能使用的命令行選項相對應的。例如,我們可以通過 ignore , select , exclude , format ,等等。我們的遺留API不強制實施遺留行為,因此我們可以組合 ignoreselect 就像我們在命令行一樣,例如。,

style_guide = flake8.get_style_guide(
    ignore=['E24', 'W5'],
    select=['E', 'W', 'F'],
    format='pylint',
)

一旦我們 flake8.api.legacy.StyleGuide 我們可以使用與以前相同的方法,即

StyleGuide.check_files(paths=None)[源代碼]?

對提供的文件運行收集的檢查。

這將檢查傳入的文件并返回 Report 實例。

參數

paths (list) -- 要檢查的文件名(或路徑)列表。

返回

對象模擬Flake8 2.0的Reporter類。

返回類型

flake8.api.legacy.Report

StyleGuide.excluded(filename, parent=None)[源代碼]?

確定是否排除文件。

參數
  • filename (str) -- 要檢查是否排除的文件的路徑。

  • parent (str) -- 包含文件的父目錄的名稱。

返回

如果文件名被排除,則為True,否則為False。

返回類型

bool

StyleGuide.init_report(reporter=None)[源代碼]?

為這次Flake8運行設置格式化程序。

StyleGuide.input_file(filename, lines=None, expected=None, line_offset=0)[源代碼]?

對單個文件運行收集的檢查。

這將檢查傳入的文件并返回 Report 實例。

參數
  • filename (str) -- 要檢查的文件的路徑。

  • lines (list) -- 從Flake8 3.0開始被忽略。

  • expected -- 從Flake8 3.0開始被忽略。

  • line_offset (int) -- 從Flake8 3.0開始被忽略。

返回

對象模擬Flake8 2.0的Reporter類。

返回類型

flake8.api.legacy.Report

警告

這些不是 完美 向后兼容。并不是所有的參數都被重新劃分,并且某些工作所必需的類型也發生了變化。

我們觀察到,大多數人都在使用 check_files() . 您可以使用它來指定要檢查的文件名或目錄的列表。在 Flake8 但是,我們返回了一個具有相似方法的不同對象。我們返回一個 flake8.api.legacy.Report 哪有辦法

Report.get_statistics(violation)[源代碼]?

獲取違規事件的列表。

返回

沖突出現的列表,格式為:{Count}{Error Code}{Message},例如。, 8 E531 Some error message about the error

返回類型

list

我們注意到的這種方法的大多數用法如上文所述。但是請記住,它提供了一個字符串列表,而不是任何更具延展性的東西。

自動生成的舊文檔?

在Flake8 2.x行為周圍包含墊片的模塊。

以前,用戶會導入 get_style_guide()flake8.engine . 在3.0中,我們不再有“引擎”模塊,但我們從中維護了API。

flake8.api.legacy.get_style_guide(**kwargs)[源代碼]?

提供樣式指南以供使用。

參數

**kwargs -- 為StyleGuide提供一些選項的關鍵字參數。

返回

初始化的樣式指南

返回類型

StyleGuide

class flake8.api.legacy.StyleGuide(application)[源代碼]?

模擬Flake8 2.0的StyleGuide的面向公眾的對象。

注解

與Flake8 2.x中提供的StyleGuide對象相比,該對象的行為方式發生了重要變化。

警告

用戶不應直接實例化此對象。

在 3.0.0 版更改.

property options?

返回應用程序的選項。

的實例 argparse.Namespace 包含解析的選項。

property paths?

返回作為路徑傳遞的額外參數。

class flake8.api.legacy.Report(application)[源代碼]?

這是面向公共對象的API 8.0。

注解

與Flake8 2.x中提供的對象相比,此對象的行為方式有重要變化。

警告

這不應該由用戶實例化。

在 3.0.0 版更改.

property total_errors?

返回錯誤總數。