0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

pythonのツール「Flake8」について特徴や機能などの基本を理解したいと思い、「Flake8」について調べてみました。

開発環境
・WSL2/Ubuntu環境
・Python: 3.10.12

Flake8とは

以下は「Flake8」のGithubのREADMEより引用

Flake8 is a wrapper around these tools:

・PyFlakes
・pycodestyle
・Ned Batchelder's McCabe script

Flake8は「PyFlakes」と「pycodestyle」と「Ned Batchelder's McCabe script」の3つのツールのラッパーです。

PyFlakes

Pythonプログラムのエラーをチェックするプログラムです。
PyFlakesは設計方針として、Pylintよりも高速に動作することを挙げています。
PyFlakesを実際に以下のtkinterを使用したサンプルプログラムに適用してみました。
その結果もあわせて記載します。

PyflakesSample.py

import tkinter as tk
from tkinter import filedialog, Text

# Function to save file
def Sample_SaveFunc(event=None):
    local_notuse = "Not use"
    print("Save_Sample")


# configure root
root = tk.Tk()
root.title("pyflakes_sample")
root.geometry("800x600")

# configure text
text = Text(root, wrap="word", undo=True)
text.pack(fill="both", expand=True)

# configure key-bind
root.bind("<Control-s>", Sample_SaveFunc)
root.bind("<Control-S>", Sample_SaveFunc)
# display window
root.mainloop()

Pyflakesの出力
PyflakesSample.py:2:1: 'tkinter.filedialog' imported but unused
PyflakesSample.py:6:5: local variable 'local_notuse' is assigned to but never used

「使用されていないインポート文の検出」や「使用していないローカル変数の検出」も実施していることを確認できました。

pycodestyle

PEP8のスタイル規則に照らし合わせて、Pythonプログラムをチェックするツールです。
以下pypiのサイト内で「使用例と出力」の章がありますが、この章にてE201:「 ( の後ろに空白がある場合に発生する警告」や E221:「演算子の前に複数の空白が存在する警告」などPEP8に沿ったコーディングであるかをチェックしていることが確認できました。

Ned Batchelder's McCabe script

McCabe の複雑性をチェックするスクリプトです。
Pyflakesの箇所で紹介したサンプルプログラム:PyflakesSample.pyに対して、以下コマンドを実行することでMcCabe の複雑性を確認してみます。

python -m mccabe PyflakesSample.py
コマンドの出力結果
5:0: 'Sample_SaveFunc' 1

Sample_SaveFunc関数のMcCabe複雑度が1であることを示しています。
本スクリプトでMcCabe複雑度をチェックしていることを確認できました。

おわりに

Flake8は、「PyFlakes」と「pycodestyle」と「Ned Batchelder's McCabe script」のラッパーであり、それぞれ「Pythonプログラムのエラーをチェック」、「PEP8のスタイル規則に沿っているかをチェック」、「McCabe複雑度をチェック」しているツールであることがわかりました。本記事の内容が少しでも何かの役に立てば幸いです。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?