Help us understand the problem. What is going on with this article?
いやいや何が決まり!だよ、全然決まらねーよっていうタイトルすみません。 キャッチーなタイトルをつける検証をしています。 きっかけ 自動コード整形ツール。弊社では全く導入されていない。 何故か。 知らないからだ。 vimプラグインと手作業での修正という現状だ。 これはどげんかせんといかん。 代表的なautopep8、yapf、blackについて、社内で布教したいので調べてみた。 着目すべきは、 コード整形の精度(ある程度のflake8準拠) 設定のしやすさ(+ あんま設定いじらなくて済むか) 勢い(githubスター数) 各ツールのテストにはautopep8が提示している以下のサンプルコードを使用した。 import math, sys; def example1(): ####This is a long comment. This should be wrapped to fit wit
本記事をお読みになる前に 掲題のとおり、本記事では Python のソースコードにおいてインデントレベル 2 で自動整形する設定について扱っております。 しかしながら、コメントにて @shiracamus 様からご指摘いただいたように、推奨されているインデントレベルは 4 であり、本記事の内容はそれから外れたものとなりますのでご注意ください。 既存ソースコードに合わせたり、プロジェクトの方針として 4 以外を設定する、といったケースにおいて本記事が参考になればと思います。 以下、ご指摘いただいた内容を転記いたします。 既存コードに合わせてインデントを2にするのはいいですが、そうでないならインデントは4が推奨ですね。 参考: PEP8: Pythonコーディングスタイルガイド コードのレイアウト インデント 1レベルインデントするごとに、スペースを4つ使いましょう。 @shiracamus
tl;dr; PythonのLinterであるflake8はpep8に従っていろいろと教えてくれますが、 マニュアルで行うとなかなかに面倒な修正案を提示します。 近頃Golangの自動フォーマッタに慣れてしまった自分としては、 もう勝手にやってくれよ、とちょいちょい思ってました。 非同期にLinterを実行するVimプラグインとして有名なALEには、 エラー箇所を自動で修正するALEFixコマンドがあり、前々からやってみようかなと思っていたので、 この機会にALEでPythonコードのLintと自動整形をやらせてみたいと思います。 前提 NeoVim 私は素のVimではなくNeoVim使いなのでこっちを使った方法になります。 素のVimとはPythonのパス解決の仕方が異なるのでご注意ください。 NVIM v0.3.1 あとALEを使うのでALEのインストールはもちろん必要です。公式は丁寧
直すのが大変そうな時も pyformat や isort など補助してくれそうなツールがある。 2015-08-11 追記 (既に修正済み): PEP 257 周りの説明で事実の誤認があった。 hacking だけでは PEP 257 のチェックはしないようだ。 flake8-pep257 をインストールすることでチェックできる。 エディタの補助 可能な限りはやく気がつくため、エディタのプラグイン等で自動チェックできるなら、した方がいい。 以下は代表的なエディタでの flake8 でチェックするプラグイン。 これらの機能を取り込んだ IDE 化するプラグインもあるので、好きな方を使おう。 Vim ... vim-flake8 Emacs ... flymakes-python-pyflakes Sublime Text ... Python Flake8 Lint Atom ... lin
はじめに 開発部の tasaki です。 6 月の記事(「Pythonのパッケージングのベストプラクティスについて考える2018」)では setuptools, pip, venv を使ったパッケージングのフローについて考えました。 techblog.asahi-net.co.jp 今回はモダンな開発用ツールチェーンを持つ他の言語(具体的には JavaScript (Node.js), Go, Rust あたりを意識)と似たような開発フローを Python において構築するにはどうすればよいかということを考えていきます。 はじめに 対象バージョン 備考 TL;DR (結論) pip と virtualenv の統合 (Pipenv) 概要 使い方 インストール Pipenv プロジェクトの新規作成 setup.py との併用 静的な型の検査 (mypy) 概要 設定例 使い方 Lintin
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く