Click 中没有名称的命令

2023-11-22

我想要一个命令行工具,其用法如下:

$ program <arg>            does something, no command name required
$ program cut <arg>
$ program eat <arg>

Click 代码如下所示:

@click.group()
def main() :
    pass

@main.command()
@click.argument('arg')
def noname(arg) :
    # does stuff

@main.command()
@click.argument('arg')
def cut(arg) :
    # cuts stuff

@main.command()
@click.argument('arg')
def eat(arg) :
    # eats stuff

我的问题是,使用这段代码,总是有一个必需的命令名称,即:我需要运行$ program noname arg。但我希望能够跑步$ program arg.


有一个选项适合您,“无需命令的组调用 ”:

@click.group(invoke_without_command=True)
@click.pass_context
def main(ctx):
    if not ctx.invoked_subcommand:
        print('main stuff')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Click 中没有名称的命令 的相关文章

随机推荐

  • PHP 的 mysql_real_escape_string() 的 Java 等效项

    Java 是否有相当于 PHP 的 mysql real escape string 这是为了在将 SQL 注入尝试传递给 Statement execute 之前逃避它们 我知道我可以使用PreparedStatement代替 但我们假设
  • 将不同长度的向量保存在矩阵/数据框中

    我有一个称为区域的长度为 166860 的数字 它由 412 个不同的元素组成 大部分长度为 405 一些长度为 809 我有它们的开始和结束 id 我的目标是提取它们并将它们放入具有 412 列的矩阵 数据框中 现在 我正在尝试这段代码
  • 文件的拖放是如何完成的?

    如在winamp或vlc播放器中 如何拖放文件 我的意思是我想知道什么样的编码进入应用程序 我想知道 c 在 Windows 上的纯 C C 中 开始阅读有关拖动接受文件函数和WM DROPFILES信息 如果您使用更强大的 C 库 Qt
  • 在 perl 中匹配字符串数组进行搜索的最简单方法?

    我想要做的是根据我的搜索字符串检查字符串数组并获取相应的密钥 以便我可以存储它 有没有一种神奇的方法可以用 Perl 来做到这一点 或者我注定要使用循环 如果是这样 最有效的方法是什么 我对 Perl 比较陌生 我只编写了另外 2 个脚本
  • .NET 中的窗口句柄可以改变它的值吗?

    在 NET 进程的生命周期中 System Windows Forms Form 假设使用的主要形式Application Run form 实际上改变它的值 即如果在不同的进程中使用句柄的值 例如IntPtr handle User32
  • 在 Django 模型中表示工作日的多选字段

    我一直在寻找一种优雅的方式来在 Django 模型中表示多选工作日字段 周一 周二 周三 我最初考虑使用按位数学来处理整数字段 但我不确定这是否是正确的方法 这将是一个最常被阅读的领域 我希望 Queryset 方法类似于Entry obj
  • 如何在Android中从网络加载React Native JS包?

    对于我的 Android 应用程序 我需要能够在运行时动态更新捆绑包 并使用资产中预先保存的捆绑包作为后备 我在官方文档 在 iOS 版本的 React Native 中 有一个方法可以让你指定一个 URL 来加载 JS 包 但我还没有看到
  • Cordova + Angularjs + 设备就绪

    我正在使用 Cordova 和 AngularJS 开发移动应用程序 如何在 Cordova 设备准备就绪之前限制 AngluarJS 的引导 基本上我不想在设备准备好之前使用任何 AngularJS 控制器 手动引导您的 Angular
  • 如何排除调试代码

    假设我有一个简单的记录器 void main var logger new MyLogger logger log hello Dart 我希望这段代码在开发模式 虚拟机检查模式 下运行 但我不希望它出现在我的生产代码中 我希望它能被 da
  • 3NF 和 BCNF 的简单区别(必须能够向 8 岁的孩子解释)

    我读过这句话 数据取决于密钥 1NF 整个密钥 2NF 仅取决于密钥 3NF 但是 我无法理解 3 5NF 或 BCNF 因为它被称为 这是我的理解 BCNF比3NF更严格 表中任何 FD 的左侧必须是超级键 或至少是候选键 那么为什么有些
  • openpyxl - 调整列宽大小

    我有以下脚本 它将 CSV 文件转换为 XLSX 文件 但我的列大小非常窄 每次我都必须用鼠标拖动它们来读取数据 有谁知道如何设置列宽openpyxl 这是我正在使用的代码 usr bin python2 6 import csv from
  • PopupWindow $BadTokenException:无法添加窗口 - 令牌 null 无效

    显示 PopupWindow 时出现以下错误 错误由以下行触发 checkInPopup showAtLocation ViewGroup mapView getParent Gravity CENTER HORIZONTAL 0 0 ma
  • 如何在 Clojure 中创建随机数的惰性序列

    如何创建随机数的惰性序列 我当前的代码 import java util Random def r new Random defn rnd nextInt r 10 defn random numbers max iterate nextI
  • 动态数据库模式[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 为动态逻辑数据库模式提供存储的推荐架构是什么 澄清一下 如果系统需要为模型提供存储 而模型的模式在生产中可能会被用户扩展或更改 那么有哪些好的技术 数据库模型或存储引擎可以实现这一点 几种
  • 如何将颜色名称转换为 3 元素 RGB 向量?

    在许多 MATLAB 绘图函数中 您可以将颜色指定为字符串或直接列出红色 绿色和蓝色值的三元素向量 例如 这两个语句是等效的 plot x y Color r plot x y Color 1 0 0 可以通过字符串值指定 8 种颜色 r
  • 如何在 C# 中获取原始 TCP 数据包?

    我想接收原始 TCP 数据包 然后以相同的工作负载将其发回 它应该看起来像这样 void OnPacketReceived TcpPacket p byte body p GetBody 注意 我需要 TCP 数据包而不是以太网帧 如果将套
  • 如何为 PyQt5 构建 Qt WebEngine?

    Qt 网络引擎此链接显示 Qtwebengine 的 python 包装器 请问谁能告诉我如何在 pyqt5 环境中添加这个 谢谢 看来我已经成功了 要么安装pyqt版本 5 10 仍然附带 Web 引擎 安装更新的版本 我使用 5 12
  • TYPO3 v10 持久性映射

    TYPO3 v10 改变了映射持久性类的方式 老方法看起来像这样 config tx extension extension persistence classes Vendor ExtensionExtend Domain Model O
  • json_decode 返回字符串类型而不是对象

    我将 JSON 编码的字符串传递给json decode 我期望它的输出是对象类型 但我得到的是字符串类型 我怎样才能返回一个对象 在文档中 以下内容返回一个对象 json a 1 b 2 c 3 d 4 e 5 var dump json
  • Click 中没有名称的命令

    我想要一个命令行工具 其用法如下 program