Help us understand the problem. What is going on with this article?

AWS Cloud9でyapfを使ってPythonコードを自動整形する

More than 1 year has passed since last update.

AWS Cloud9にyapfを導入

AWS Cloud9ではCustom Code Formatterを設定できるので
ファイル保存時にyapfを実行し、
Pythonコードをフォーマットするようにしたいと思います

yapfとは

yapf( https://github.com/google/yapf )とは
Pythonのコードフォーマッターで、
次の例のようにコードを綺麗にフォーマットしてくれます

フォーマット前

x = {  'a':37,'b':42,

'c':927}

y = 'hello ''world'
z = 'hello '+'world'
a = 'hello {}'.format('world')
class foo  (     object  ):
  def f    (self   ):
    return       37*-+2
  def g(self, x,y=42):
      return y
def f  (   a ) :
  return      37+-+a[42-x :  y**3]

フォーマット後

x = {'a': 37, 'b': 42, 'c': 927}

y = 'hello ' 'world'
z = 'hello ' + 'world'
a = 'hello {}'.format('world')


class foo(object):
    def f(self):
        return 37 * -+2

    def g(self, x, y=42):
        return y


def f(a):
    return 37 + -+a[42 - x:y**3]

コマンドだと下記のように実行します

$ yapf -i sample.py

設定手順

yapfをインストール

sudo pip install yapf

Custom Code Formatterの設定

AWS Cloud9の「Preferences」の「Python Support」の中に
「Custom Code Formatter」の欄があるので、

yapf -i "$file"

と書きます

スクリーンショット 2018-03-04 12.24.43.png

以上で設定完了です。
コードを保存すると、自動でフォーマットしてくれます。

フォーマットスタイルのカスタマイズ

フォーマットスタイルはデフォルトではpep8になっていますが、
好みに合わせてカスタマイズできます

詳細はこちらにあります
https://github.com/google/yapf

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away