Как связать httpie с httpie-aws-authv4 в zipapp Python?
Это просто упаковать httpie в Python "Pyz" (zipapp), например, с помощью
$ pip install --upgrade zapp
$ zapp httpie.pyz httpie.__main__:main httpie
$ python ./httpie.pyz --version
1.0.3
Теперь я попытался включить httpie-aws-authv4 в качестве подключаемого модуля к httpie для аутентификации AWS. Увы,httpie
не подхватывает этот плагин.
$ zapp httpie-aws4.pyz httpie.__main__:main httpie httpie-aws-authv4
$ python ./httpie-aws4.pyz
usage: http [--json] [--form] [--pretty {all,colors,format,none}]
...
[--auth USER[:PASS]] [--auth-type {basic,digest}]
$ python ./httpie-aws4.pyz -A aws4 http://localhost:9200/
...
http: error: argument --auth-type/-A: invalid choice: u'aws4' (choose from 'basic', 'digest')
Следует сказать [--auth-type {basic,digest,aws4}]
Кто-нибудь знает, как заставить это работать?
1 ответ
Для справки, я решил проблему загрузки подключаемого модуля, зарегистрировав расширение во встроенном списке механизмов аутентификации. Это делает плагин доступным и работоспособным, хотя и с помощью другого механизма. Для использования zipapp это прекрасно:
zapp httpie-aws4.pyz httpie.__main__:main httpie httpie-aws-authv4
mkdir -p httpie/plugins
unzip -q -c httpie-aws4.pyz httpie/plugins/__init__.py | gsed \
-e '15i from httpie_aws_authv4 import AWSv4AuthPlugin # ADDED' \
-e '19i AWSv4AuthPlugin, # ADDED' \
> httpie/plugins/__init__.py
zip httpie-aws4.pyz httpie/plugins/__init__.py
В aws4
Затем при желании появляются механизмы аутентификации:
python ./httpie-aws4.pyz 2>&1 | grep auth-type
[--auth USER[:PASS]] [--auth-type {aws4,basic,digest}]