PycharmでPythonコードのステップ数(行数)をカウントする

Pythonでコードを書く際、Pycharmは非常に便利なのですが、プロジェクト全体のステップ数(行数)を簡単にカウントする方法が無かったので調べてみたら記事がなかったので紹介します。
とはいえ同じJetBrainsのツールIntelliJ IDEAと同じ方法が使えるようなので、それをPycharmに導入してます。

# インストール
Pycharmでステップ数をカウントするには標準ではないようなので「Statistic」プラグインを入れます。
以下の要領で実施します。今回は「Pycharm Community 2018.3版」で実施しています。

1. Pycharmのメニューバーより「File」→「Settings」をクリックし、Settingsウィンドウを立ち上げる。
1. Pluginsをクリックし、「Search plugins in market place」（検索欄）に「Statistic」と入力してEnter
1. 「Search Results」欄に「Statistic」プラグインが出てくるので「Install」をクリック。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/d4ce6da9-f127-cdc8-ef17-5adb561193ee.png" width="80%">

1. 以下が表示されたら、「Accept」を押してインストール。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/273ceb45-298d-0365-2eb0-16133ab69fa8.png" width="55%">

1. インストールが完了し、以下のダイアログが表示されたらRestartをクリックしてPyCharmを再起動。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/a77ee4c3-d2be-275b-ad16-ffedf7147684.png" width="40%">

1. 再起動した後、メニューバーより「View」→「Tool Windows」→「Statistic」をクリック。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/7ae30c4e-d6a7-b284-46da-f7cd85a5521a.png" width="55%">
もしくはステータスバー近くにある「Statistic」のアイコンをクリック。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/205a23d5-dd81-5275-de80-fa105c71d34d.png" width="40%">

1. 以下が表示されたら完了
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/09d4d09a-e65e-da34-2096-494fa9415142.png" width="90%">

# 使い方
1. 測定したいプロジェクトを開く。
1. Statistic上の「Refresh」ボタンを押す。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/056c47a2-94fd-670b-f59f-a7b87a2e0005.png" width="90%">

1. 解析結果が表示される。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/8d18cc76-bb5a-932a-4ecf-d57bcaac0039.png" width="90%">
上記の通りOverViewタブには検出されたファイル一式のファイルサイズ等のサマリーが表示されます。
「py」タブを押せばPythonファイルのみが表示されるので、ステップ数を参考にする場合はこちらになります。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/a735985b-68db-abe9-8ed1-e62725ce77fc.png" width="90%">

# 設定
ちなみに、初期設定では一部ファイルを除くプロジェクト内全ファイルを検索してしまうので、除外設定をした方が便利です。
たとえば.ideaやvenvフォルダなど、実際に自分が書いたコードやファイル以外も検出されてしまうのでこれらをステップ数カウントから外します。

## 除外フォルダの設定
1. Statistic上の「Settings」ボタンを押す。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/4b523657-92d8-d28d-8dd6-9aa2dc64d9bc.png" width="90%">

1. Settingsウィンドウが開き、Statisticの設定項目になるので、「Excluded directories」の左にある「Add」ボタンをクリック。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/389a2afd-d14e-ab32-ccf3-5e15d4ca07e9.png" width="60%">

1. Select Pathウィンドウが開く
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/eb9e0d6c-7491-7e31-6282-9c4226525aa3.png" width="40%">
なお隠しフォルダ内もデフォルトでは検索対象となるが非表示になっているので、ディレクトリで右クリックを押し「Show Hidden Files and Directories」をクリックしてチェックマークを付け隠しフォルダを表示させる。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/7efa0e21-85c2-1213-74df-2f201051d240.png" width="40%">

1. 除外するディレクトリを選択したら、OKをクリックする。（<kbd>Ctrl</kbd>+クリックで複数選択可能）
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/3b49197e-c568-9eeb-01c9-57eb91bf66cd.png" width="40%">
※今回の例では[以前紹介した記事で書いたコード](https://qiita.com/noca/items/d42f7f68ef41d88a3b04#transitions_table%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)のtrasntions_table以下のみを解析対象としています。

1.  Settingsウィンドウに戻り「Excluded directories」に除外されるフォルダパスが表示されていれば完了。

## 除外拡張子の設定
いくつかの拡張子を持つファイルは既に除外されているが、加えて除外したい場合は「Excluded file types」に入れてください。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/a95f78d0-05ab-eab7-0c57-d7eb521d32f7.png" width="90%">
除外する拡張子はセミコロンで分けて記載していく。Pythonならキャッシュ(.pyc)やNotebookファイル(.ipynb)を指定しても良いかもしれません。
ココで指定したモノは解析結果のOverviewでも表示されません。プロジェクト内各ファイル種ごとのサイズを検索する場合は役立つ事もあるので、無理に除外しなくても問題ありません。

## 設定後再度検索してみる
設定が終わったらSettingsウィンドウのOKを押し設定ウィンドウを閉じたら、同様にStatisticウィンドウで「Refresh」ボタンを押せば除外フォルダ/除外拡張子指定したものを除いた結果が表示されます。
※今回はpycやipynbは除外していません。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/2591536f-f1fa-0136-2e86-c6a9f6748288.png" width="90%">
Pythonスクリプトも除外フォルダを除いたファイルが解析され表示されています。
<img src="https://qiita-image-store.s3.amazonaws.com/0/291448/c3966e21-364e-c6fc-2f03-381a265ee334.png" width="90%">

# まとめ
PyCharmでステップ数をカウントするプラグイン「Statistic」とその使い方、設定を紹介しました。
メトリックス等のより詳細なコード解析はできませんが、サクッとPythonコードのステップ数をカウントしたい場合はこちらが便利かと思います。
正直過去の記事と被る部分はあるものの、設定などは参考にして頂けたらと思います。

# 参考
本記事は以下の記事を参考にしています。
　[IntelliJ IDEAでソースコードのステップ数をカウントする](https://qiita.com/tamura__246/items/adb580bc5a98c278e5f9)