Closed2
argparseの代替手段classopt
個人的にargparseは読みにくくて好きではないので、代替手段を探してみたところclassoptというライブラリがあった
dataclassっぽくコマンドライン引数を指定できる。読みやすい書きやすくてよい。argparse標準のコマンド引数ArgumentParser.add_argumentも同様につかえる
from classopt import classopt, config
@classopt(default_long=True, default_short=True)
class Args:
paths: list[str] = config(help="Input paths")
flag: bool = config(help="Input flag")
args: Args = Args.from_args()
def __post_init__(self):
でdataclass同様に、コマンドライン引数を用いて、何かしらの処理をしてクラス管理ができる
@classopt(default_long=True, default_short=True)
class Args:
date = datetime.now().strftime("%Y-%m-%d/%H-%M-%S")
def __post_init__(self):
self.output_dir = Path("outputs") / self.date
非常に使いやすい!
このスクラップは2023/05/30にクローズされました