We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ここでは、CLIツールの引数のパースに使うライブラリとして、Arpgarse の代わりに、Click を使ってみましょう。今回は使いませんが、同じ用途のライブラリとしては docopt や Fire も有名です。開発の規模や用途に応じて使い分けてみても良いかもしれません。
Clickをインポートし、ない場合はインストールします。
Clickを使うと、次のように書き直すことができます。関数の引数をCLIツールの引数とすることができるので、補完が効くようになり、よりスムーズにコードを書くことができます。また、関数をサブコマンドと対応させることもできるので、サブコマンドが複数あるときにも書きやすくなります。
import sys import click def fizzbuzz(n: int, fizz: int = 3, buzz: int = 5) -> str: ... @click.command() @click.argument("nums", nargs=-1, type=int) @click.option("--fizz", type=int, default=3, help="Number corresponds to Fizz.") @click.option("--buzz", type=int, default=5, help="Number corresponds to Buzz.") def main(nums, fizz, buzz): """Fizz Buzz program. If no arguments are passed, it reads numbers from stdin.""" if nums: # 数字の列が引数から渡された場合には、それらの数字にFizzBuzzを適用する sys.stderr.write("Reading numbers from arguments ...\n") for n in nums: sys.stdout.write(f"{fizzbuzz(n, fizz=fizz, buzz=buzz)}\n") else: # 数字の列が引数から渡されなかった場合には、標準入力から数字を読み込む sys.stderr.write("Reading numbers from stdin ...\n") try: line = sys.stdin.readline() while line: sys.stdout.write(f"{fizzbuzz(int(line), fizz=fizz, buzz=buzz)}\n") line = sys.stdin.readline() except KeyboardInterrupt: return
実際に作成したPRは #21 になります。
The text was updated successfully, but these errors were encountered:
Successfully merging a pull request may close this issue.
ここでは、CLIツールの引数のパースに使うライブラリとして、Arpgarse の代わりに、Click を使ってみましょう。今回は使いませんが、同じ用途のライブラリとしては docopt や Fire も有名です。開発の規模や用途に応じて使い分けてみても良いかもしれません。
1. Clickを使ってCLIツールを書き直しましょう
Clickをインポートし、ない場合はインストールします。
Clickを使うと、次のように書き直すことができます。関数の引数をCLIツールの引数とすることができるので、補完が効くようになり、よりスムーズにコードを書くことができます。また、関数をサブコマンドと対応させることもできるので、サブコマンドが複数あるときにも書きやすくなります。
2. clickの依存関係をsetup.pyに記述する
3. PRを作り、マージする
実際に作成したPRは #21 になります。
目次
The text was updated successfully, but these errors were encountered: