コーディング規約自動化: Pylintのカスタムルールを作ろう
10/15, 13:50–14:20 (Asia/Tokyo), pyconjp_1
言語: 日本語

皆さんの周りで独自のコーディング規約を採用しているプロジェクトはありませんか?
また、それらのコーディング規約は100%守られているでしょうか?
Pythonの一般的なコーディング規約はflake8やblackのようなLinter/Formatterでチェックできますが、プロジェクト独自の規約はチェックしてくれません。
このトークでは、Pythonの主要なLinterやFormatterで提供されていないルールをPylintのプラグインとして自作する方法をご紹介します。


Pylintのプラグインとして自作のルールを作成する方法を紹介します。

Linterの基本、Pylintの仕組みとルールの作り方、プラグイン化の方法について解説します。
Pylintの仕組みではAbstract Syntax TreeやVisitorパターンなどのLinterのバックグラウンドにある知識についても触れていきます。
プラグイン化の方法では、自作のプラグインを読み込ませる場合に躓きやすいポイントと回避方法を紹介します。
また、より実践的なルールを実装する場合に役立つテクニックをいくつか紹介します。

「print関数の利用の検知」と「ネストしすぎたif文の検知」を題材に使う予定です。

atama plus株式会社のエンジニアです。
Django/Django REST Frameworkを使ってAI教材「atama+」を開発しています

https://github.com/yukihira1992
https://twitter.com/yukihira1992