이번에는 PEP8을 가이드 하는 도구에 대해서 소개한다.
pep8와 autopep8
- pep8
- https://pypi.python.org/pypi/pep8
- 코드 리뷰를 통해서 작성자에게 적절한 pep8 규칙을 가이드 한다.
- autopep8
- https://pypi.python.org/pypi/autopep8/
- pep8을 기반으로 자동으로 코드를 수정한다.
* 각 도구는 상세한 옵션들을 제공한다.
* 본문에서는 간단한 사용 예제만 다룬다.
pep8 사용 예제
Mark$ pep8 --show-source sample.py
b.py:8:1: E302 expected 2 blank lines, found 1
def get_label_value(dict_):
^
b.py:21:1: E302 expected 2 blank lines, found 1
def is_label(dict_):
^
b.py:44:46: E231 missing whitespace after ','
for next_obj in obj.find_all(RULE_ALL,recursive=False):
^
b.py:49:45: E231 missing whitespace after ','
GLOBAL_LIST.append((next_lev,get_label_value(next_obj.attrs)))
^
b.py:58:1: E302 expected 2 blank lines, found 1
def main(file_name):
^
b.py:67:27: E231 missing whitespace after ','
finder(file_name + '_',root)
^
b.py:72:5: E265 block comment should start with '# '
#RULE_DATA_FORMAT = re.compile('xsd:choice|xsd:restriction|xsd:sequence')
^
b.py:85:50: E231 missing whitespace after ','
df = pd.DataFrame(GLOBAL_LIST,columns=['dist','name'])
^
b.py:87:80: E501 line too long (82 > 79 characters)
df['level'] = df['dist'].apply(lambda i: len(i.split('_')[-1].split('.')) - 1)
^
b.py:88:5: E301 expected 1 blank line, found 0
def set_tag(name):
^
b.py:89:32: E701 multiple statements on one line (colon)
if name.startswith('~'): return 'ref'
^
b.py:94:40: E231 missing whitespace after ','
df = df[['file','dist','name','tag','level']]
autopep8 사용 예제
Mark$ autopep8 --in-place --aggressive --aggressive sample.py
* --in-place 옵션을 통해서 sample.py 본문의 pep8 권고사항들이 바로 적용된다.
* 확인 차원에서 autopep8 사용 이후에 pep8을 돌려 보자.
0 개의 댓글:
댓글 쓰기