Python 라이브러리: 'Click'

서기현·2024년 4월 12일

DeepLearning

목록 보기
3/6

개요

CLI를 편하게 할 수 있도록 도와주는 라이브러리.
argument pasring 보다 편리하게 이용 가능.

ref : document

설명

command

Click은 기본적으로 데코레이터를 활용해 커멘드를 정의힌다.

@click.command()
def click_test():
	print("test")

위처럼 함수에 붙어 해당 함수를 커맨드 함수로 지정한다.

인자 추가

크게 두 가지 방식이 존재한다. option()과 argument().

argument()

@click.command()
@click.argument('name', type=str)
def click_test(name):
	print(f"{name} test")
python test.py my

my test

argument는 필수적으로 호출되어야 하는 인자이다. "type"을 통해 입력 타입을 강제해줄 수 있다.

@click.command()
@click.argument('name', type=click.Choice(['my', 'yours']))
def click_test(name):
	print(f"{name} test")

click의 Choice 메소드를 통해 입력 값을 강제해 줄 수도 있다.
이 외에도 click.Path, click.DateTime 등의 형식도 지원한다.

option()

@click.command()
@click.option('--name', type=str, default='my')
def click_test(name):
	print(f"{name} test")
python test.py

my test
python test.py --name=opt

opt test

option은 위치 인수(--)와 함께 값을 입력한다. default를 정해주어, 입력이 들어오지 않을 시 default 값을 사용한다.

결론

Click이 argparse에 비해 유연성이 떨어지는 것은 사실이다. 실제로 개발자도 그렇게 이야기하고 있다.(Why Click? 참고)
하지만, 그럼에도 불구하고, option과 argument 두 가지 만으로 꽤나 편리하고 쉽게 스크립트를 구성할 수 있는 것은 사실이다.
앞으로 스크립트를 구성하는데 종종 쓰일 것 같다.

0개의 댓글