Redash v5 の変更内容一覧を CHANGELOG と Pull Request から確認する

# はじめに

v4.0.1 のリリースから約4ヶ月半、2018年9月21日に [Redash v5.0.0](https://discuss.redash.io/t/v5-beta-is-now-ready/2240) がリリースされたので、[CHANGELOG](https://github.com/getredash/redash/blob/master/CHANGELOG.md) と [Pull Request](https://github.com/getredash/redash/pulls?q=is%3Apr+is%3Aclosed) を確認しながらリリース内容をまとめました。

今回は、クエリ散乱の解決策として期待できそうな「**クエリとダッシュボードのタグ・お気に入り機能**」や、以前から要望が高かった「**ユーザの無効化**」のほか、多数の機能追加と変更およびバグフィックスが行われています。

また、過去のリリース内容は以下にまとめていますので、バージョンアップを検討中の方などの参考になればと思います。

- [Redash v4 の変更内容一覧を CHANGELOG と Pull Request から確認する \- Qiita](https://qiita.com/kyoshidajp/items/d11390fdc74dcb79cdab)
- [Redash v3 の変更内容一覧を CHANGELOG と Pull Request から確認する \- Qiita](https://qiita.com/kyoshidajp/items/061d391a24ddfd0b9bfc)

# v5.0.1 - 2018-09-27

## 追加

- [JWT 認証 (Cloudflare Access や Google IAP のようなサービス) のサポート](https://github.com/getredash/redash/pull/2768) [@SakuradaJun](https://github.com/SakuradaJun)

## 変更

- [Celery 3.1.26 へのアップデート](https://github.com/getredash/redash/pull/2865) [@jezdez](https://github.com/jezdez)
  -  Celery 4 へのアップデート準備

# v5.0.0 - 2018-09-21

## セキュリティ

- [Google OAuth クライアントシークレットを公開しない](https://github.com/getredash/redash/pull/2839) [@arikfr](https://github.com/arikfr)
  - Google OAuth の有効時に API `/api/config` から OAuth クライアントシークレットが漏れる問題の対策
  - v4 の場合 v4.0.2 にアップグレードするか、手動修正で対応する事を**強く推奨**
  - 詳細は次のページを参照
     - [Redash Security Release: v4\.0\.2 ⚠️ – Redash](https://blog.redash.io/important-redash-security-update-%EF%B8%8F-2fb8134ca689)

## 変更

- [モバイルのダッシュボードとクエリページを改善](https://github.com/getredash/redash/pull/2800) [@kocsmy](https://github.com/kocsmy)
  - before/after は https://github.com/getredash/redash/issues/2796 を参考に
- [クエリとダッシュボードの favorite と空の状態について UI を改善](https://github.com/getredash/redash/pull/2808) [@arikfr](https://github.com/arikfr)
  - トップページで、クエリまたはダッシュボードが未登録時の細かいメッセージと画面修正
- [クエリ検索ボックスの不要な X（クリアボタン）を削除](https://github.com/getredash/redash/pull/2736) [@kocsmy](https://github.com/kocsmy)
- [ダッシュボード一覧のソートを追加](https://github.com/getredash/redash/pull/2760) [@jezdez](https://github.com/jezdez)
  - 作成日時のソートが可能に
- [クエリ一覧の表示を作成日時の降順に変更](https://github.com/getredash/redash/pull/2759) [@jezdez](https://github.com/jezdez)
  - 修正前は昇順だった
  - 確かに降順が自然
- [ダッシュボードの非所有者がダッシュボードにアクセス可能なユーザを追加しようとするとエラーを表示する](https://github.com/getredash/redash/pull/2650) [@alison985](https://github.com/alison985)
  - ダッシュボードの権限管理は `REDASH_FEATURE_SHOW_PERMISSIONS_CONTROL` を `true` にするとダッシュボードページに編集メニューが追加される
- [Celery タスクのクエリ実行時エラーを正しく伝える](https://github.com/getredash/redash/pull/2713) [@alison985](https://github.com/alison985)
  - 以前はエラーの詳細が不明だった
- [ヘッダーの検索ボックスで検索した時にリロードするようにした](https://github.com/getredash/redash/pull/2750) [@jezdez](https://github.com/jezdez)
  - ヘッダーでの再検索が出来ない（反応しない）ようになっていた

## 修正

- [BigQuery のデフォルトのロケーションを US ではなく null にする](https://github.com/getredash/redash/pull/2841) [@arikfr](https://github.com/arikfr)
  - EU の場合は明示的に `EU` を指定する必要があったが、`null` にすることで US または EU が利用できる
- [Fix: query embeds are broken.](https://github.com/getredash/redash/pull/2837) [@arikfr](https://github.com/arikfr)
- [Celery ログフォーマットのタイポ修正](https://github.com/getredash/redash/pull/2835) [@ariarijp](https://github.com/ariarijp)
- [「Outdated Queries」リストで QuerySerializer を使用](https://github.com/getredash/redash/pull/2821) [@jezdez](https://github.com/jezdez)
  - このリストは Admin にある（パスは `/admin/queries/outdated`）
- [時々ウィジェットの高さが0になる問題を修正](https://github.com/getredash/redash/pull/2813) [@kravets-levko](https://github.com/kravets-levko)
- [Athena で NaN/Infinity を null としてシリアライズするために simple_json に変更](https://github.com/getredash/redash/pull/2783) [@kravets-levko](https://github.com/kravets-levko), [@jezdez](https://github.com/jezdez)
  - Athena から NaN または Infinity が返ってきた時に、“Error running query: failed communicating with server. Please check your Internet connection and try again.” というエラーが表示されるが、このエラーから原因が分かりづらいため
- [`value` フィールドを持たないパラメータのクエリを定期実行のスケジュール実行に失敗する問題を修正](https://github.com/getredash/redash/pull/2786) [@arikfr](https://github.com/arikfr)
  - `value` フィールドを持たないパラメータとは？ :confused:
- [MongoDB クエリの結果パーサがユニコードキーをサポートしていない問題を修正](https://github.com/getredash/redash/pull/2785) [@arikfr](https://github.com/arikfr)
- [Google Analytics スキーマがロード出来ない問題を修正](https://github.com/getredash/redash/pull/2784) [@arikfr](https://github.com/arikfr)
  - `defaultProfileId` を持たない Google Analytics プロパティではロードできなかった
- [date/time パラメータのグローバルオプションが機能しない問題を修正](https://github.com/getredash/redash/pull/2730) [@kravets-levko](https://github.com/kravets-levko)
- [ウィジェットを移動・リサイズした時に崩れる問題を修正](https://github.com/getredash/redash/pull/2754) [@kravets-levko](https://github.com/kravets-levko)
- [フィード名 `length` を考慮](https://github.com/getredash/redash/pull/2734) [@yossi-a](https://github.com/yossi-a)
  - フィード名に `length` を持つデータをグラフ表示できなかった
- [アラートページでクエリの選択ができない問題を修正](https://github.com/getredash/redash/pull/2741) [@sjakthol](https://github.com/sjakthol)
- [Embedded パラメータが有効な時の結果が正しく取得できない問題を修正](https://github.com/getredash/redash/pull/2742) [@nasmithan](https://github.com/nasmithan)
  - `REDASH_ALLOW_PARAMETERS_IN_EMBEDS` を `true` にする事で有効になる
- [ダッシュボード検索でユニコード文字列をサポート](https://github.com/getredash/redash/pull/2729) [@combineads] (https://github.com/combineads)
  - 日本のユーザにとって重要 :+1:
- [ユーザ検索でユニコード文字列をサポート](https://github.com/getredash/redash/pull/2724) [@arikfr](https://github.com/arikfr)
  - 日本のユーザにとって重要 :+1:
  - [クエリのユニコード文字列が正しく行えない](https://github.com/getredash/redash/issues/2622)という似た問題があるが、こちらは未解決

## その他

- [パラメータを使ったスケジュール実行クエリのテストを追加](https://github.com/getredash/redash/pull/2802) [@alison985](https://github.com/alison985)
- [コードのクリーンアップ](https://github.com/getredash/redash/pull/2820) [@jezdez](https://github.com/jezdez)
 - コミッターの jezdez 氏は VS Code 経由で [Flake8](http://flake8.pycqa.org/en/latest/) を使用しているとのこと
- [`QueryResultListResource#post` の docstring を更新](https://github.com/getredash/redash/pull/2815) [@tdsmith](https://github.com/tdsmith)
- CirlceCI 2.0 への移行 [@jrbenny35](), [@arikfr](https://github.com/arikfr)
  - [CircleCI 1.0 が 2018/8/31 に終了]([CircleCI 1\.0 End of Life on August 31, 2018](https://circleci.com/blog/sunsetting-1-0/))のため
  - 修正差分が大きいが、段階的に変更されている
     - [Initial update to circleci v2 config](https://github.com/getredash/redash/pull/2672)
     - [Updates to CircleCI 2 configuration](https://github.com/getredash/redash/pull/2774)
     - [More improvements to CircleCI configuration](https://github.com/getredash/redash/pull/2777)
- [不要な init メソッドの削除](https://github.com/getredash/redash/pull/2761) [@jezdez](https://github.com/jezdez)

# v5.0.0-Beta - 2018-08-06

## 追加

- [Date/Time Range パラメータタイプの追加](https://github.com/getredash/redash/pull/2712) [@kravets-levko](https://github.com/kravets-levko)
  - `Date`, `Date and Time`, `Date and Time（with seconds）` の3種類をパラメータの種類に追加
- [Alert Destination に ChatWork を対応](https://github.com/getredash/redash/pull/2482) [@matsumo](https://github.com/matsumo)
  - [ChatWork](https://go.chatwork.com/) は日本発のチャットツールなので、うれしい日本人ユーザも多いのでは？
- [クエリエディタに "Add Parameter" ボタンを追加](https://github.com/getredash/redash/pull/2678) [@kravets-levko](https://github.com/kravets-levko)
  - パラメータを明示的に追加するボタン
- [BigQuery の設定でロケーションを追加](https://github.com/getredash/redash/pull/2513) [@kyoshidajp](https://github.com/kyoshidajp)
  - これまで指定はできず US または EU マルチリージョン のみ対応だった
  - 東京リージョン（`asia-northeast1`）の追加に合わせて対応
- [チャートのカラーを指定できるようにした](https://github.com/getredash/redash/pull/2616) [@kravets-levko](https://github.com/kravets-levko)
- [Date/Time パラメータでデフォルト値 "Now" を設定](https://github.com/getredash/redash/pull/2697) [@kravets-levko](https://github.com/kravets-levko)
- [クエリエディタに検索機能を追加](https://github.com/getredash/redash/pull/2693) [@arikfr](https://github.com/arikfr)
  - `Control + f` で右上に検索ボックスが表示される
  - 正規表現や大文字小文字の指定が可能なので、ブラウザ標準のものより高機能
- [タグとお気に入り機能をクエリとダッシュボードに追加](https://github.com/getredash/redash/pull/2573) [@arikfr](https://github.com/arikfr)
  - クエリが散漫になるため定期的に不要なものを削除したり、検索性を向上するための命名規則を作るなどの運用が不要になるかも
- [クエリエディタとスキーマブラウザの折りたたむキーボードショートカットを追加](https://github.com/getredash/redash/pull/2640) [@kravets-levko](https://github.com/kravets-levko)
  - クエリが長くスキーマ情報が不要な場合に便利そう
- [Chrome Logger 機能拡張に対応](https://github.com/getredash/redash/pull/2674) [@arikfr](https://github.com/arikfr)
  - [Chrome Logger 機能拡張](https://craig.is/writing/chrome-logger)はサーバ側で対応する事で Chrome のコンソールにログを出力できる
- [ステータスページに Redash データベースのサイズを表示](https://github.com/getredash/redash/pull/2653) [@alison985](https://github.com/alison985)
  - クエリ結果と全体の2種類のサイズを表示
- [クエリ結果のメタデータに Athena のクエリ ID を追加](https://github.com/getredash/redash/pull/2669) [@tdawber](https://github.com/tdawber)
- [React コンポーネントの導入準備](https://github.com/getredash/redash/pull/2546) [@washort](https://github.com/washort)
  - React コンポーネントを使っているのはまだページのフッターのみで、他は [underscore](https://underscorejs.org/) から [lodash]((https://lodash.com/)) への置き換え
- [対応データソースに Yandex Metrika と AppMetrika を追加](https://github.com/getredash/redash/pull/2533) [@denisov-vlad](https://github.com/denisov-vlad)
  - [Yandex](https://yandex.com/company/) はロシアの検索システムの会社
  - [Yandex Metrika](https://metrika.yandex.ru/list) と [AppMetrika](https://appmetrica.yandex.ru/application/list) はそれぞれウェブとアプリの検索サイト
  - マイナーなデータソースだが、Redash の作者 Arik 氏は「[I always like adding more data sources to Redash :blush:](https://github.com/getredash/redash/pull/2533#pullrequestreview-122312446)」との事なので、気になるものがあればコントリビュートのチャンスかも
- [チャートの値、ラベル、ツールチップのフォーマットを変更できるようにした](https://github.com/getredash/redash/pull/2536) [@kravets-levko](https://github.com/kravets-levko)
  - 細かい調整が可能になった！
- [Policy オブジェクトの導入](https://github.com/getredash/redash/pull/2560) [@arikfr](https://github.com/arikfr)
- [Admin によるユーザの無効化](https://github.com/getredash/redash/pull/2380) [@kravets-levko](https://github.com/kravets-levko)
  - ユーザ一覧からユーザの無効化、ユーザ詳細から無効化後の有効化が可能になった
  - 以前から CLI からの削除は条件付きで可能だった
     - 参考: [Redash のユーザー削除が難しい \- kakakakakku blog](https://kakakakakku.hatenablog.com/entry/2017/10/14/030113)
  - 無効になったユーザが作成したクエリは他のユーザが参照・実行可能
  - 退職などでチームを離れたユーザの扱いはこれまでも課題だったが、これで改善されるチームは多そう
- [日付の標準フォーマットを Settings ページから変更できるようにした](https://github.com/getredash/redash/pull/2509) [@kyoshidajp](https://github.com/kyoshidajp)
  - 日付フォーマットのデフォルトは `DD/MM/YY`
     - 2018年8月17日の例： `17/08/18`
     - 日本人にはあまり馴染みがない :sweat_smile: 
  - フォーマットを追加するには環境変数 `REDASH_DATE_FORMAT` に追加する

## 変更

- [ユーザ一覧ページを改善](https://github.com/getredash/redash/pull/2715) [@arikfr](https://github.com/arikfr)
  - 各項目でのソートや検索性能の向上など
- [Ant Design の設定を Redash スタイルに調整](https://github.com/getredash/redash/pull/2710) [@kocsmy](https://github.com/kocsmy)
- [フォーマットボタンをパラメータ追加ボタンの右に移動](https://github.com/getredash/redash/pull/2709) [@arikfr](https://github.com/arikfr)
  - フォーマットボタンは常に表示されるように
- [ダッシュボードでクエリの読み込みに失敗した時にメッセージを表示する](https://github.com/getredash/redash/pull/2664) [@kravets-levko](https://github.com/kravets-levko)
  - 以前はスピナーが表示されていた
- [キャッシュ済みのクエリ結果は実際の状況を返すようにした](https://github.com/getredash/redash/pull/2626) [@kravets-levko](https://github.com/kravets-levko)
- [Google Spread Sheets: カラム名が空の場合、明示的に追加する](https://github.com/getredash/redash/pull/2663) [@ariarijp](https://github.com/ariarijp)
  - 空カラムの名前は `column_{}` のフォーマットで `{}` に列名（`A`, `B`, ...）が入る
    - 参考: https://github.com/getredash/redash/pull/2663/files#diff-016807582a2ac9d0d29325cf32959a58R128
- [Date/DateTime type パラメータの入力を改善](https://github.com/getredash/redash/pull/2695) [@kravets-levko](https://github.com/kravets-levko)
  - カレンダーや時間のコンポーネントが追加されて、入力がしやすくなった
- [使い捨てメールアドレスのユーザをブロック](https://github.com/getredash/redash/pull/2694) [@arikfr](https://github.com/arikfr)
  - 判定は [disposable-email-domains](disposable-email-domains) によるブラックリストドメインより
- [YAML の読み込みを `load` から `safe_load` に変更](https://github.com/getredash/redash/pull/2687) [@denisov-vlad](https://github.com/denisov-vlad)
  - PyYAML の `load` にはデリシアリズに脆弱性があるため（参考: [CVE-2017-18342](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-18342)）
- [Google spreadsheets: データのパースで失敗する問題を解消](https://github.com/getredash/redash/pull/2514) [@atharvai](https://github.com/atharvai)
  - 値の型に合ったパースを行うようにした
- [集計結果のページネーションの位置を中央揃えに](https://github.com/getredash/redash/pull/2570) [@alison985](https://github.com/alison985)
- [集計結果の横スクロールバーにページネーションを含めない](https://github.com/getredash/redash/pull/2584) [@alison985](https://github.com/alison985)
  - 以前の動作は PR の元となった [mozilla/redash の Issue](https://github.com/mozilla/redash/issues/322) を参考に
- [Script Query Runner の改善](https://github.com/getredash/redash/pull/2647) [@ariarijp](https://github.com/ariarijp)
  - リファクタリングおよびテストの追加
- [ダッシュボードウィジェットのクエリヘッダデザインを改善](https://github.com/getredash/redash/pull/2583) [@kocsmy](https://github.com/kocsmy)
- [UI の調整](https://github.com/getredash/redash/pull/2671) [@kocsmy](https://github.com/kocsmy)
- [レスポンス向上に](https://github.com/getredash/redash/pull/2658) [@alison985](https://github.com/alison985)
- [ドキュメントへのリンクを更新](https://github.com/getredash/redash/pull/2648) [@Pablohn26](https://github.com/Pablohn26)
  - 細かいですが、素晴らしい
- [Script Query Runner の改善](https://github.com/getredash/redash/pull/2613) [@ariarijp](https://github.com/ariarijp)
  - リファクタリング、エラーハンドリングの調整、テストの追加
- [データソース追加一覧の表示順で大文字小文字の区別をしない](https://github.com/getredash/redash/pull/2619) [@alison985](https://github.com/alison985)
- [Google Spreadsheets Query Runner を改善](https://github.com/getredash/redash/pull/2604) [@ariarijp](https://github.com/ariarijp)
- [X軸の表示を改善](https://github.com/getredash/redash/pull/2542) [@emtwo](https://github.com/emtwo)
- [不要な変数を削除](https://github.com/getredash/redash/pull/2590) [@ariarijp](https://github.com/ariarijp)
  - リファクタリング :thumbsup:
  - この PR で [Request Info](https://github.com/apps/request-info) がインストールされているのを知った！
- [クエリページでデータ参照モードの時に Visualization の追加・削除ができるようにした](https://github.com/getredash/redash/pull/2585) [@kravets-levko](https://github.com/kravets-levko)
- [PostgreSQL: `get_tables` がすべてのビューとパーティションテーブルを返すようにした](https://github.com/getredash/redash/pull/2549) [@coreyhuinker](https://github.com/coreyhuinker)
  - 「通常のテーブル」「ビュー」「マテリアライズドビュー」「外部テーブル」「パーティションテーブル」の5種類
  - パーティション機能は10.0より前からあったが、パーティションテーブルは 10.0 で追加された
    - 参考: [5\.10\. テーブルのパーティショニング](https://www.postgresql.jp/document/10/html/ddl-partitioning.html)
- [データソース追加一覧でデータソースをアルファベットの昇順表示](https://github.com/getredash/redash/pull/2568) [@alison985](https://github.com/alison985)
  - 検索ボックスがあるとはいえ、パット見分かりやすい
- [SAML 認証でレスポンスのパースに失敗した場合エラーメッセージを表示する](https://github.com/getredash/redash/pull/2444) [@sjakthol](https://github.com/sjakthol)
  - 以前は 500 Internal Server Error を返していた
- [削除確認時に対象の名前を表示する](https://github.com/getredash/redash/pull/2554) [@kyoshidajp](https://github.com/kyoshidajp)
  - ダッシュボード、データソース、destination の削除確認ダイアログ表示時
- [削除時に確認ダイアログを表示する](https://github.com/getredash/redash/pull/2510) [@kyoshidajp](https://github.com/kyoshidajp)
  - データの削除を慎重に
- [デザインの改善](https://github.com/getredash/redash/pull/2518) [@kocsmy](https://github.com/kocsmy)
  - 各種サイズ調整や、初期状態のイラスト表示など
- [スキーマブラウザでデータソースの絞り込み検索を行えるようにした](https://github.com/getredash/redash/pull/2520) [@kyoshidajp](https://github.com/kyoshidajp)
  - 1文字入力ごとにインクリメンタルサーチが行われる
  - データソースが複数あった場合に便利

## 修正

- [Elasticsearch: リクエスト時に `source_content_type` パラメータを送信しないようにした](https://github.com/getredash/redash/pull/2722) [@arikfr](https://github.com/arikfr)
  - 6.0 サポートのために `source_content_type` パラメータを送信していたが、6.0 未満のユーザでエラーになっていた
  - `Content-Type` ヘッダに指定することで回避
- [`input` 要素の閉じタグを削除](https://github.com/getredash/redash/pull/2719) [@maxv](https://github.com/maxv)
  - `input` 要素は閉じタグが許可されていない（[参考](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input)）
- [BigQuery: スキーマブラウザにすべてのテーブルを表示](https://github.com/getredash/redash/pull/2458) [@kyoshidajp](https://github.com/kyoshidajp)
  - 以前は先頭の50件までしか表示されなかった
- [すべてのデータソース取得時に重複をさせない](https://github.com/getredash/redash/pull/2698) [@arikfr](https://github.com/arikfr)
- [Hive でレスポンスの型が不正になる問題を修正](https://github.com/getredash/redash/pull/2315) [@yuua](https://github.com/yuua)
- [空のクエリを持つウィジェットを追加した時に、ダッシュボードでのレンダリングを行わない](https://github.com/getredash/redash/pull/2638) [@kravets-levko](https://github.com/kravets-levko)
  - この修正が入る前はこの状況になると画面からダッシュボードを編集できなくなっていた:innocent:
- [ファイルエクスポート時のファイル名を修正](https://github.com/getredash/redash/pull/2610) [@gabrieldutra](https://github.com/gabrieldutra)
  - クエリ名に半角スペースが複数存在した場合、すべて `_` に変換されたファイル名となる
  - コマンドライン操作時などで便利
- [アラートのチェック前にクエリ結果をコミットするようにした](https://github.com/getredash/redash/pull/2574) [@mtrbean](https://github.com/mtrbean)
- [ダッシュボードのテキスト追加・編集で内容の文字列を折返すようにした](https://github.com/getredash/redash/pull/2580) [@alison985](https://github.com/alison985)
- [CLI の create_tables/drop_tables 時の DB 接続エラーを改善する](https://github.com/getredash/redash/pull/2578) [@ariarijp](https://github.com/ariarijp)
  - 接続失敗時には30秒待って再接続、を繰り返す
- [アーカイブされたクエリのメニューにある不要な線を削除](https://github.com/getredash/redash/pull/2572) [@alison985](https://github.com/alison985)
- [ダッシュボードのピボットテーブル表示を修正](https://github.com/getredash/redash/pull/2526) [@deecay](https://github.com/deecay)
  - "Hide Control" がオンとオフのウィジェットがあった時に両方共コントロール可能になっていた
- [signed_out.html を修正](https://github.com/getredash/redash/pull/2511) [@kocsmy](https://github.com/kocsmy)
- [値が null の時にフロンエンド側で `null` と表示される問題を修正](https://github.com/getredash/redash/pull/2523) [@innovia](https://github.com/innovia)

## その他

- [すべての PR に Zeit の Now プレビュービルドを適用](https://github.com/getredash/redash/pull/2682) [@arikfr](https://github.com/arikfr)
  - GitHub Integration の [Now](https://zeit.co/blog/now-for-github) を追加
  - メンテナのメンバーしか確認できない？
- [Ubuntu のインストールスクリプトを Redash 4.0.1 に対応](https://github.com/getredash/redash/pull/2668) [@ariarijp](https://github.com/ariarijp)
  - [Docker ベースのスクリプト](https://github.com/getredash/redash/pull/2463)がリリースされるまではこちらでの対応が続きそう
- [Google SpreadSheets のテストを追加](https://github.com/getredash/redash/pull/2639) [@ariarijp](https://github.com/ariarijp)
- [Query Results のテストを追加](https://github.com/getredash/redash/pull/2635) [@ariarijp](https://github.com/ariarijp)
- [不要な末尾セミコロンを削除](https://github.com/getredash/redash/pull/2537) [@sieben](https://github.com/sieben)
  - Python で末尾のセミコロンは文法上問題ないが修正箇所については不要
  - [PEP 8](https://www.python.org/dev/peps/pep-0008/) を確認したが言及はされていない模様