該項目不再積極維護。
內容
Tidypy是一種封裝許多其他靜態分析工具的工具,並使其易於配置,執行和查看其結果。
*.py源文件。除了執行代碼上的許多不同工具外,它還可以檢查您的YAML,JSON,PO,POT和RST文件。pyproject.toml文件,由PEP 518定義。所有工具的所有選項都在一個地方聲明,而不是要求您以不同的方式配置每個工具。# noqa評論,以輕鬆忽略任何工具報告的問題。安裝TidyPy( pip install tidypy tidypy時,應在您的環境中可用:
$ tidypy--螺旋
用法:tidypy [options]命令[args] ...
在Python項目上執行多個靜態分析工具的工具
並彙總結果。
選項:
- Version顯示版本和退出。
- 主持人顯示此消息和退出。
命令:
檢查在項目文件上執行工具。
Default-Config輸出默認配置,可用於
引導自己的配置文件。
擴展輸出所有可用的tidypy擴展名的清單。
安裝VCS將Tidypy作為預先承諾的掛鉤安裝到指定的
VCS。
列表代碼輸出所有已知問題代碼的清單
可以舉報。
吹掃-Config-cache刪除了從
在主要配置之外。
刪除-VC從指定的
VCS。
要使TidyPy分析您的項目,請使用check子命令:
$ tidypy檢查 - 螺旋
用法:Tidypy檢查[選項] [路徑]
在項目文件上執行工具。
接受一個論點,這是通往Python項目基礎的道路。
如果未指定,則默認為當前工作目錄。
選項:
-x, - 隔離正則指定正則表達式匹配
反對您想排除的道路
考試。可以指定多個
時代。覆蓋指定的表達式
在配置文件中。
-t,-tool [Bandit | dlint |根除| JSONLINT |清單| McCabe | Polint | Pycodestyle | Pydiatra | Pydoctyle | Pydocstyle | Pydocstyle | Pyflakes | Pyflakes | Pylint | Pyromal | Pyroma | pyroma | rstlint | rstlint |秘密| Vulture | Vulture | Vulture | Yamllint]
指定在此期間使用的工具的名稱
考試。可以指定多個
時代。覆蓋配置文件。
-r, - 報告[控制台,CSV,Custom,Json,Null,PyCodestyle,Pycodestyle,Pylint,Pylint-parsable,toml,yaml] [:filename]
指定要執行的報告的名稱
考試後。可以指定一個
使用表單-r的可選輸出文件名
報告:文件名。如果文件名不設,則
報告將在Stdout上寫。可以
多次指定。覆蓋
配置文件。
-c, - config文件名指定了通往幻想的路徑
配置文件而不是
在項目中找到的配置
pyproject.toml。
- 工人num_workers同時使用的工人人數
執行工具。覆蓋
配置文件。
- 易於混合禁用各種問題的合併
工具當Tidypy認為它們等效時。
覆蓋配置文件。
- 可行的過程禁用進度欄的顯示。
- disable-noqa可以禁用使用使用的能力
Python文件中的“#NOQA”註釋。
- 可訪問時可用於檢索時緩存的使用
“擴展”引用的配置
選項。
- 主持人顯示此消息和退出。
如果您需要使用默認選項生成骨架配置文件,請使用default-config子命令:
$ tidypy默認config-螺旋
用法:tidypy默認config [options]
輸出默認配置,可用於引導您自己的
配置文件。
選項:
- 型 - 八型將配置輸出,以便可以在pyproject.toml中使用它
文件。
- 主持人顯示此消息和退出。
如果您想查看可以返回的可能問題代碼的列表,請使用list-codes命令:
$ tidypy列表編碼 - 螺旋
用法:Tidypy列表編碼[選項]
輸出工具可能報告的所有已知問題代碼的列表。
選項:
-t,-tool [Bandit | dlint |根除| JSONLINT |清單| McCabe | Polint | Pycodestyle | Pydiatra | Pydoctyle | Pydocstyle | Pydocstyle | Pyflakes | Pyflakes | Pylint | Pyromal | Pyroma | pyroma | rstlint | rstlint |秘密| Vulture | Vulture | Vulture | Yamllint]
指定代碼的工具的名稱
應該輸出。如果未指定,默認
到所有工具。
-f, - format [toml | json | yaml | csv]
指定工具的格式
應該輸出。如果未指定,默認
到湯姆爾。
- 主持人顯示此消息和退出。
如果要在項目的VCS中安裝或刪除作為預先承諾的鉤子,請使用install-vcs / remove-vcs子命令:
$ tidypy install-vcs-Help
用法:tidypy install-vcs [options] vcs [path]
將TIDYPY作為預先承諾的鉤子安裝到指定的VC中。
接受兩個論點:
VCS:將鉤子安裝到的版本控制系統。選擇:
Git,HG
路徑:通往存儲庫底座的路徑,將鉤子安裝到。
如果未指定,則默認為當前工作目錄。
選項:
- 如果發現縫隙
問題。
- 主持人顯示此消息和退出。
$ tidypy remove-vcs-Help
用法:tidypy remove-vcs [options] vcs [path]
從指定的VC中刪除tidypy的預加入鉤。
接受兩個論點:
VCS:從中卸下鉤子的版本控制系統。選擇:
Git,HG
路徑:通往存儲庫底座的路徑以從中卸下鉤子。如果
未指定,默認為當前工作目錄。
選項:
- 主持人顯示此消息和退出。
如果您想啟用tidypy的bash完成,請在外殼中運行以下內容(或將其放入bash啟動腳本中):
$ est
如果您不想在系統或Virtualenv上本地安裝Tidypy,則可以使用已發布的Docker Image:
$ docker run -rm -tty -tty -volume =`pwd`:/project tidypy/tidypy
上面的命令將在當前目錄的內容上運行tidypy check 。如果您想在其他目錄上運行它,請將`pwd`更改為所需的任何路徑(目標是將項目目錄安裝到容器/project量中)。
以這種方式運行易變具有一些限制,主要是圍繞以下事實:由於Tidypy是按照自己的,孤立的Python環境運行的,諸如Pylint之類的工具將無法在本地安裝您的項目包裝,因此它可能會報告圍繞“ Import-Error”,“無名模型”,“ No Mecember”,“ No-Meber”,“”,“”等誤報,等等。
如果要運行check以外的其他命令,請在調用Docker時通過該命令:
$ docker run - rm -tty -tty-volume =`pwd`:/project tidypy/tidypy tidypy list-codes
托多
除了通過配置文件從工具中忽略整個文件,工具或特定問題類型外,還可以使用Python源文件中的註釋來忽略特定行上的問題。有些工具為此具有自己的內置支持和符號:
# pylint評論# nosec評論# noqa評論# noqa評論# pragma: whitelist secret評論Tidypy超出了這些特定於工具的標誌,可以在全球範圍內為Python源文件實現# noqa 。無論工具提出什麼工具,它都會忽略具有# noqa評論的行的問題。如果您只想在行上忽略特定類型的問題,則可以使用以下語法:
#NOQA:Code1,Code2
或者,如果在多個工具中使用了特定代碼,則可以在註釋中指定確切的工具:
#NOQA:PyCodestyle:Code1,Pylint:Code2
或者,如果您想忽略任何特定工具在行上提出的任何問題,則可以指定該工具:
#NOQA: @PyCodestyle, @Pylint
當然,如果需要,可以在單個評論中混合所有三個符號:
#NOQA:Code1,Pylint:Code2,@PyCodestyle
您可以通過在命令行上指定--disable-noqa選項,或者通過將noqa選項設置為“配置文件中的false來禁用Tidypy的NOQA行為。不過,請注意:目前的PyCodestyle和PydocStyle不尊重此選項,並且將始終尊重他們發現的任何# noqa評論。
開箱即用,Tidypy包括對許多工具的支持:
Tidypy包括許多不同的方法來介紹和/或導出項目分析的結果。開箱即用,提供以下內容:
filename , line , character , tool , code , message 。Tidypy包含少數插件/集成,將其連接到其他工具中。
--tidypy ,或將其作為addopts屬性的一部分包含在pytest config中。--with-tidypy ,也可以將with-tidypy屬性設置為setup.cfg中的1 。tidypy測試將tidypy包含在您的PBBT腳本中。要啟用它,您可以在運行PBBT時在命令行上指定--extend=tidypy.plugin.pbbt ,或在setup.cfg或pbbt.yaml中設置extend屬性為tidypy.plugin.pbbt 。存在一個簡單的接口,用於擴展潮論,以包括更多和不同的工具和記者。要添加一個工具,請創建一個擴展tidypy.tool的類,在您的setup.py中,請聲明tidypy.tools的entry_point 。
entry_points = {
'tidypy.tools':[
'myCooltool = path.to.model:myCoolToolClassName',
],,
}
要添加記者,該過程幾乎是相同的,只是您擴展了tidypy.Report並聲明tidypy.reports的entry_point 。
是的,發生了。我選擇遵循此工具的理念是,我不希望它向我隱藏任何東西。我希望其默認行為能夠使用最令人討厭的設置執行其套件中的每個工具。然後,當我看到全部損壞範圍時,我可以決定通過項目級配置禁用特定工具或問題。我認為如果有人花時間對特定問題進行檢查,他們必須認為這有一定的價值。如果我的工具默認情況下將其隱藏起來,那麼我將無法從中獲得任何好處。
通常,當您認為自己“完成”時,我不建議開始使用襯里或其他類型的靜態分析儀。您應該在項目開始時將它們納入工作流程中 - 就像您(或應該)單位測試一樣。這樣,您就很早就找到東西並向它們學習(或禁用它們)。當您逐步解決這些任務時,要處理的任務要艱鉅得多。
貢獻是最歡迎的。特別是如果它們是錯誤修復!要在此代碼上進行黑客攻擊,只需克隆它,然後運行make setup即可。這將使用所需的所有工具創建Virtualenv。 Makefile還具有運行Pytest Suite的test目標,並且是在本身上運行Tidypy的lint目標。
Tidypy按照MIT許可的條款發布。