跳转到主要内容

更多点击。

项目描述

more_click

PyPI PyPI - Python Version PyPI - License DOI

我在几乎所有存储库中使用的click的额外功能

更多选项

模块 more_click.options 包含几个选项(预定义的 click.option() 实例),我经常使用。首先,verbose_option 通过使用 -v 使调整你的软件包的日志记录器变得容易。

还有一些对Web内容有用的选项,包括

名称 类型 标志
more_click.host_option str --host
more_click.port_option str --port

Web工具

在许多软件包中,我已经在 wsgi.py 中包含了一个Flask Web应用程序。我通常在 cli.py 文件中使用以下形式导入Web应用程序,并使其与其他软件包相关使用隔离开来

# cli.py
import click
from more_click import host_option, port_option


@click.command()
@host_option
@port_option
def web(host: str, port: str):
    from .wsgi import app  # modify to point to your module-level flask.Flask instance
    app.run(host=host, port=port)


if __name__ == '__main__':
    web()

但是,有时我想通过CLI使用 gunicorn 来运行它,所以我将使用以下扩展来自动确定应该使用Flask的开发服务器还是gunicorn。

# cli.py
import click
from more_click import host_option, port_option, with_gunicorn_option, workers_option, run_app


@click.command()
@host_option
@port_option
@with_gunicorn_option
@workers_option
def web(host: str, port: str, with_gunicorn: bool, workers: int):
    from .wsgi import app  # modify to point to your module-level flask.Flask instance
    run_app(app=app, with_gunicorn=with_gunicorn, host=host, port=port, workers=workers)


if __name__ == '__main__':
    web()

对于终极懒惰模式,我编写了一个围绕第二个的包装器

# cli.py
from more_click import make_web_command

web = make_web_command('my_package_name.wsgi:app')

if __name__ == '__main__':
    web()

这使用标准的 wsgi 风格字符串来定位应用程序,因为你不想在CLI中急切地导入应用程序,因为它可能依赖于像Flask这样的可选依赖。如果你的CLI有其他内容,可以将Web命令包含在一个组中,如

# cli.py
import click
from more_click import make_web_command


@click.group()
def main():
    """My awesome CLI."""


make_web_command('my_package_name.wsgi:app', group=main)

if __name__ == '__main__':
    main()

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

more_click-0.1.2.tar.gz (8.0 kB 查看哈希值)

上传时间

构建分发

more_click-0.1.2-py3-none-any.whl (6.7 kB 查看哈希值)

上传时间 Python 3

由以下组织支持