팀 프로젝트에서 코드 작성 후 코드의 syntax나 패턴을 일치시킬 필요가 있다.
이때 pep8과 같은 도구로 보통 linting한다.
autopep8은 이런 코드 린팅을 자동으로 돕는 도구이다. 하지만, 의도치 않게 작동할 경우도 있으니 주의가 필요.
설치 및 실행
$ pip install --upgrade autopep8
이렇게 pip로 설치한다. 이어서 아래와 같은 방식으로 실행한다.
$ autopep8 --in-place --aggressive --aggressive <filename>
import math, sys; def example1(): ####This is a long comment. This should be wrapped to fit within 72 characters. some_tuple=( 1,2, 3,'a' ); some_variable={'long':'Long code lines should be wrapped within 79 characters.', 'other':[math.pi, 100,200,300,9876543210,'This is a long string that goes on'], 'more':{'inner':'This whole logical line should be wrapped.',some_tuple:[1, 20,300,40000,500000000,60000000000000000]}} return (some_tuple, some_variable) def example2(): return {'has_key() is deprecated':True}.has_key({'f':2}.has_key('')); class Example3( object ): def __init__ ( self, bar ): #Comments should have a space after the hash. if bar : bar+=1; bar=bar* bar ; return bar else: some_string = """ Indentation in multiline strings should not be touched. Only actual code should be reindented. """ return (sys.path, some_string)
그러면, 이런 위와 같은 패턴의 코드가 아래처럼 자동 수정된다.
import math import sys def example1(): # This is a long comment. This should be wrapped to fit within 72 # characters. some_tuple = (1, 2, 3, 'a') some_variable = { 'long': 'Long code lines should be wrapped within 79 characters.', 'other': [ math.pi, 100, 200, 300, 9876543210, 'This is a long string that goes on'], 'more': { 'inner': 'This whole logical line should be wrapped.', some_tuple: [ 1, 20, 300, 40000, 500000000, 60000000000000000]}} return (some_tuple, some_variable) def example2(): return ('' in {'f': 2}) in {'has_key() is deprecated': True} class Example3(object): def __init__(self, bar): # Comments should have a space after the hash. if bar: bar += 1 bar = bar * bar return bar else: some_string = """ Indentation in multiline strings should not be touched. Only actual code should be reindented. """ return (sys.path, some_string)
다시 강조하지만, 의도치 않는 패턴으로 변경될 수 있으니 주의해야 한다.
참고링크 :