Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

ClickをつかってPython製CLIツールをスマートにする その4:パスワード入力

shuzo-kino.hateblo.jp
のシリーズ。
今回はパスワードの入力支援です

Pythonにはデフォでgetpassという入力を不可視化するライブラリが入ってたりします
shuzo-kino.hateblo.jp
が、Clickの方がちょっとだけ高機能です。

実際のところ

import click
import codecs

@click.command()
@click.option('--password', prompt=True, hide_input=True,
              confirmation_prompt=True)
def encrypt(password):
    click.echo('Encrypting password to %s' % password)


def func():
    click.echo("some function")

if __name__ == '__main__':
   password = ""
   func()
   encrypt(password)

つかってみた

起動すると、期待通り。
一致の確認もあってgetpassより親切。

$ python sample_click.py

Password: 
Repeat for confirmation: 
Encrypting password to yuyuyuy

ちなみに、上記設定だと一致してない場合は再確認をしてくれます。

$ python sample_clic.py
some function
Password: 
Repeat for confirmation: 
Error: the two entered values do not match
(ry