파이썬 & 오픈소스 개발 Tip과 강좌

이곳은 파이썬과 여러 오픈소스 기반 프레임워크 관련 Tip과 강좌 게시판 입니다. 관련 개발을 진행하면서 알아내신 Tip이나 강좌와 새로운 소식을 적어 주시면 다른 공부하는 분들에게 큰 도움이 됩니다. 감사합니다. SQLER.com은 개발자와 IT전문가의 지식 나눔을 실천하기 위해 노력하고 있습니다.

팀 프로젝트에서 코드 작성 후 코드의 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)

 

다시 강조하지만, 의도치 않는 패턴으로 변경될 수 있으니 주의해야 한다.

 

참고링크 :

autopep8 · PyPI

No. Subject Author Date Views
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2021년 1월 업데이트) 코난(김대우) 2021.01.01 510
» autopep8을 이용한 python 린트(linting) 구현 코난(김대우) 2021.09.15 5
105 Python에서 환경변수(environment variable) 처리 코난(김대우) 2021.09.15 5
104 Python에서 random 문자열이나 숫자 가져오는 방법 코난(김대우) 2021.09.15 6
103 Python 중급 강좌 - 9. 비동기 작업(Asynchronous operations): asyncio 코난(김대우) 2021.01.03 300
102 Python 중급 강좌 - 8. 외부 리소스 관리(Managing external resources): with 코난(김대우) 2021.01.03 171
101 Python 중급 강좌 - 7. 파일작업(File read/write) file 코난(김대우) 2021.01.03 195
100 Python 중급 강좌 - 6. 파일시스템(File system) 관리 코난(김대우) 2021.01.03 203
99 Python 중급 강좌 - 5. 다중상속(Mixins - multiple inheritance) 코난(김대우) 2021.01.03 108
98 Python 중급 강좌 - 4. 상속(Inheritance) 코난(김대우) 2021.01.03 55
97 Python 중급 강좌 - 3. 클래스(Class) 코난(김대우) 2021.01.03 66
96 Python 중급 강좌 - 2. 람다(Lamda) file 코난(김대우) 2021.01.03 92
95 Python 중급 강좌 - 1. Python 스타일 가이드: 서식(Formatting)과 린팅(Linting) file 코난(김대우) 2021.01.02 114
94 Python 초급 강좌 목차 - 19. 코드에서 중요한 키(패드워드) 관리 - dotenv 코난(김대우) 2021.01.02 72
93 Python 초급 강좌 목차 - 18. 데코레이터(Decorators) 코난(김대우) 2021.01.02 65
92 Python 초급 강좌 목차 - 17. JSON 데이터 처리 file 코난(김대우) 2021.01.02 138
91 Python 초급 강좌 목차 - 16. 외부 웹서비스 API 호출 file 코난(김대우) 2021.01.02 140
90 Python 초급 강좌 목차 - 15. 패키지(Package): import, pip 코난(김대우) 2021.01.02 58
89 Python 초급 강좌 목차 - 14. 함수 파라미터(Parameter) 코난(김대우) 2021.01.02 60
88 Python 초급 강좌 목차 - 13. 함수(Function) 코난(김대우) 2021.01.02 49
87 Python 초급 강좌 목차 - 12. 반복문(Loop): for, while 코난(김대우) 2021.01.02 45





XE Login