Под spartans/bin/
У меня есть click
cli-модуль с именем spartans.py
, который выглядит следующим образом:
import click
@click.group()
def main():
...
@main.command()
def hub_push():
...
@main.command()
@click.argument('username', type=str, required=False)
@click.argument('password', type=str, required=False)
def hub_clean(username='', password=''):
...
@main.command()
@click.argument('force', type=bool, required=False)
def hub_delete(force=False):
...
if __name__ == '__main__': # necessary?
main()
Я пытаюсь установить этот пакет spartans
с помощью setuptools, так что яМожно запустить из командной строки следующие команды:
$ spartans hub_push
$ spartans hub_clean --username ...
$ spartans hub_delete --force
Технически я тестирую на Windows, но он должен быть в состоянии работать так на любом.Однако я не могу понять, как получить этот шаблон с помощью setuptools.
Если я просто перехожу в каталог с папкой, содержащей spartans.py
, модуль click позволяет мне использовать его следующим образом:
$ spartans.py hub_push
$ spartans.py hub_clean --username ...
$ spartans.py hub_delete --force
но если я хочу использовать entry_points
с setuptools, я должен сделать это так:
...
entry_points={
"console_scripts": [
"spartans = spartans.bin.spartans:hub_clean",
# "spartans = spartans.bin.spartans", # module not callable!
]
},
Поскольку сам модуль не может быть вызван, я не знаю, как создать шаблонЯ хочу выше.кажется, мне придется согласиться на что-то вроде:
$ spartans-hub_push
$ spartans-hub_clean --username ...
$ spartans-hub_delete --force
Где я объединяю конкретную команду с модулем.Но это не может быть правдой.Я посмотрел документацию, но она все еще вызывает только определенную функцию: http://click.palletsprojects.com/en/5.x/setuptools/
Как мне получить setuptools
для вызова click
cli пакета?