python - 如何从 python 中调用 python click ?

标签 python command-line-interface read-eval-print-loop python-click

如果我错了,请纠正我,但点击装饰器似乎掩盖了函数的默认值和构造。从 REPL 调用包装的 from 不会立即以与 REPL 相同的方式工作。例如,从 dask 分布式中查看:

@click.option('--bokeh-prefix', type=str, default=None,
              help="Prefix for the bokeh app")
@click.option('--preload', type=str, multiple=True, is_eager=True,
              help='Module that should be loaded by each worker process '
                   'like "foo.bar" or "/path/to/foo.py"')
@click.argument('preload_argv', nargs=-1,
                type=click.UNPROCESSED, callback=validate_preload_argv)
def main(scheduler, host, worker_port, listen_address, contact_address,
         nanny_port, nthreads, nprocs, nanny, name,
         memory_limit, pid_file, reconnect, resources, bokeh,
         bokeh_port, local_directory, scheduler_file, interface,
         death_timeout, preload, preload_argv, bokeh_prefix, tls_ca_file,
         tls_cert, tls_key): 

是否有一些简单的模式可以获取该函数及其所有默认值?

最佳答案

据我推测,唯一的选择是 this issue ,是为了

  1. 调用底层函数,例如main.callback(*args)。那么您就缺少点击界面中的默认参数。

  2. 通过 click.testing.CliRunner().invoke(main, ['--host', '127.0.0.1'], catch_exceptions=False) 等方式使用点击测试界面.

我认为从我的角度来看,选项 1 是我们能做的最好的;默认参数只需手动完成。我也很好奇是否有更好的替代方案。

关于python - 如何从 python 中调用 python click ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49843017/

相关文章:

vim 映射不适用于 slimv 插件

python - 在 Django 中一次查找最大项目的数量

python - 定期检查 api 是否有新数据的正确方法?

python - zip() 和 zip(*) 似乎给出了相似的结果

Python检测高斯模糊

amazon-web-services - 有没有办法在 aws cli 配置文件中指定 --endpoint-url

windows - 通过命令行切换窗口应用程序

mysql - 使用命令行截断 MySQL 数据库中的特定表

Clojure 和 ClojureScript REPL 产生不同的输出

f# - 如何实现 F# Read Eval Print Loop (REPL)?