1
click
을 사용하여 datetime
초 및 쉼표로 구분 된 매개 변수 목록을 취하는 CLI를 정의하고 있습니다.클릭 유형 변환
import click
def valid_date(s):
try:
return dt.strptime(s, "%Y-%m-%d")
except ValueError:
msg = "Not a valid date: '{0}'.".format(s)
raise Exception(msg)
except TypeError:
return None
split_parameter = lambda _, __, s: s.split(",")
check_date = lambda _, __, s: valid_date(s)
@click.command()
@click.argument('symbols', callback=split_parameter)
@click.option('--start_date', callback=check_date)
@click.option('--end_date', callback=check_date)
@click.option('--file_name')
def f(symbols, start_date, end_date, file_name):
return None
그것은 작동하지만 callback
의 주변의 논리가 조금 어색하다. 목록을 분할하고 datetime
으로 변환하면 클릭의 멋진 간단한 구조가 중단됩니다. 이것을하기위한 파이썬적인 방법이 있습니까?