跳转到主要内容

Pythonic接口到fzf

项目描述

Latest PyPI version Build status (GitHub Actions)

演示会话

iterfzf demo session

另请参阅 API参考

主要功能

  • 无依赖,只需Python。每个平台的预构建 fzf 二进制文件都已打包进轮子中。通过 pip install iterfzf 即可使用一切。(注意,并非所有支持的平台的轮子都上传到PyPI,因为它们不支持较小的平台,例如FreeBSD。完整的轮子可以在 GitHub发行版 中找到。)

  • 消费可迭代对象而不是列表。当输入数据长且从低延迟网络中 流式传输 时,这会使用户体验大大提升。它可以在只准备好部分项目后立即开始显示项目,甚至在完整的项目准备好之前。

  • 支持Python 3.8或更高版本。

iterfzf.iterfzf(iterable, *, **options)

消费给定的字符串 iterable,并使用 fzf 显示它们。如果用户选择了一些内容,它将立即返回所选择的内容。

以下是参数的完整列表。除了 iterable 之外,都应作为 关键字参数 传递

iterable(必需)

唯一必需的参数。每当生成一个元素时,该 iterable 生成的每个元素都会立即显示。换句话说,传递的 iterable 被惰性消费。

它可以是字节字符串(例如 [b'foo', b'bar'])或Unicode字符串(例如 [u'foo', u'bar'])的可迭代对象,但不能混合使用(例如 [u'foo', b'bar'])。如果是字节字符串,函数返回字节。如果是Unicode字符串,则返回Unicode字符串。有关更多信息,请参阅 encoding 参数。

sort

如果为 True,则对结果进行排序。默认为 False

multi

设置为 True 允许用户选择多个。用户可以使用 tab/shift-tab 选择项目。如果 multi=True,函数将返回一个字符串列表,而不是单个字符串。

设置为 False 允许用户只选择一个。如果 multi=False,则返回一个字符串而不是列表。

在这两种模式下,如果没有匹配项或用户取消,函数返回 None

默认为 False

对应于 -m/--multi 选项。

bind

将传递给 fzf 的键/事件绑定。

形式为 {KEY: ACTION} 或 {EVENT: ACTION} 的字典。

对应于 --bind=KEYBINDS 选项。

print_query

如果为 True,则返回类型为元组,其中第一个元素是用户实际输入的查询,第二个元素是如上所述选择的输出,具体取决于 multi 的状态。

默认为 False

对应于 --print-query 选项。

自版本 0.3.0 以来新增。

encoding

用于编码 iterable 值和解码返回值的文本编码名称(例如 'utf-8''ascii')。如果 iterable 值是字节字符串,则忽略此参数。

默认使用 Python 的默认编码(即 sys.getdefaultencoding())。

extended

设置为 True 为扩展搜索模式。设置为 False 关闭。

默认为 True

设置为 True 对应于 -x/--extended 选项,设置为 False 对应于 +x/--no-extended 选项。

exact

模糊匹配为 False,精确匹配为 True

默认为 False

对应于 -e/--exact 选项。

case_sensitive

区分大小写为 True,不区分大小写为 False。默认为智能匹配的 None

True 对应于 +i 选项,False 对应于 -i 选项。

query

首先填充的查询字符串。(用户可以将其删除。)

默认为空字符串。

对应于 -q/--query 选项。

prompt

提示序列。默认为 ' >'

对应于 --prompt 选项。

preview

要执行的预览命令。默认为 None

对应于 --preview 选项。

mouse

禁用鼠标为 False,默认为 True

对应于 --no-mouse 选项。

ansi

启用 ANSI 颜色模式为 True,默认为 None

对应于 --ansi 选项。

cycle

启用循环滚动为 True

默认为 False

对应于 --cycle 选项。

__extra__

传递给 fzf 的额外原始选项/参数的可迭代对象。

默认为空。

作者和许可协议

iterfzf 库由 Hong Minhee 编写,并按 GPLv3 或更高版本分发。

fzf 程序由 Junegunn Choi 编写,并按 MIT 许可证分发。

更新日志

版本号方案

注意,iterfzf 不遵循 语义版本控制。版本由其自己的主版本号和次版本号以及捆绑的 fzf 版本组成。例如,1.2.3.4.5 表示 iterfzf 的主版本号为 1,次版本号为 2,捆绑的 fzf 版本为 3.4.5。

/---------- 1. iterfzf's major version
|   /------ 3. bundled fzf's major version
|   |   /-- 5. bundled fzf's patch version
|   |   |
v   v   v
1.2.3.4.5
  ^   ^
  |   |
  |   \---- 4. bundled fzf's minor version
  \-------- 2. iterfzf's minor version

版本 1.4.0.54.3

于 2024 年 8 月 24 日发布。捆绑 fzf 0.54.3

版本 1.4.0.51.0

于 2024 年 5 月 7 日发布。捆绑 fzf 0.51.0

  • 添加了 bind 选项。[#21#36 by Gregory.K]

版本 1.3.0.51.0

于 2024 年 5 月 6 日发布。捆绑 fzf 0.51.0

  • 添加了 sort 选项。[#18#35 by Gregory.K]

  • 官方支持 Python 3.12。

版本 1.2.0.46.1

于 2024 年 3 月 6 日发布。捆绑 fzf 0.46.1

  • 在等待前关闭stdin以允许--select-1工作。[由Alex Wood在#34提交]

版本1.1.0.44.0

发布于2023年11月18日。捆绑fzf 0.44.0

  • 添加了cycle选项。[由Daniele Trifirò在#33提交]

  • 添加了__extra__选项。[由#32提交]

版本1.0.0.42.0

发布于2023年9月18日。捆绑fzf 0.42.0

  • 取消支持Python 2.7, 3.5, 3.6和3.7。

  • 官方支持Python 3.8, 3.9, 3.10和3.11。

  • 取消支持FreeBSD i386, Linux i686, Linux armv8l, OpenBSD i386和Windows 32位,因为fzf不再支持它们。

  • 取消支持OpenBSD amd64。

  • 除了第一个参数iterable外,所有参数都必须是关键字参数。(请注意,尽管以前没有强制执行,但这始终是推荐的方式。)

  • 添加了ansi选项。[由Erik Lilja在#16提交]

  • 现在,executable参数接受os.PathLike而不是str,这具有向后兼容性。

  • 为模块添加了__version____fzf_version__属性。

  • 为模块添加了POSIX_EXECUTABLE_NAMEWINDOWS_EXECUTABLE_NAME属性。

  • 模块属性EXECUTABLE_NAME现在是Literal['fzf', 'fzf.exe']类型,与之前的str类型向后兼容。

  • 模块属性BUNDLED_EXECUTABLE现在是Optional[pathlib.Path]类型。

版本0.5.0.20.0

发布于2020年2月9日。捆绑fzf 0.20.0。

  • 取消支持Python 2.6, 3.3和3.4。

  • 正式支持Python 3.7(尽管它已经可以工作)。

  • 将包标记为支持类型检查,遵循PEP 561

  • 添加了preview选项。[由Marc Weistroff在#6提交]

  • 修复了一个在Windows上通过在加载所有选项完成之前选择选项而引发IOError的错误。[由Jeff Rimko在#3提交]

版本0.4.0.17.3

发布于2017年12月4日。捆绑fzf 0.17.3。

版本0.4.0.17.1

发布于2017年10月19日。捆绑fzf 0.17.1。

  • 再次添加了缺失的macOS二进制轮。[这些在0.3.0.17.1(之前的版本)中缺失。]

版本0.3.0.17.1

发布于2017年10月16日。捆绑fzf 0.17.1。

  • 添加了print_query选项。[由George Kettleborough在#1提交]

版本0.2.0.17.0

发布于2017年8月27日。捆绑fzf 0.17.0。

版本0.2.0.16.11

发布于2017年7月23日。捆绑fzf 0.16.11。

版本0.2.0.16.10

发布于2017年7月23日。捆绑fzf 0.16.10。

版本0.2.0.16.8

发布于2017年6月6日。捆绑fzf 0.16.8。

  • fzf从0.16.7升级到0.16.8。

版本0.2.0.16.7

发布于2017年5月20日。捆绑fzf 0.16.7。

  • 使源分布(sdists)能够正确安装,即使旧的 pip 无法处理 wheels,也可以安装 iterfzf

版本 0.1.0.16.7

发布于 2017 年 5 月 19 日。包含 fzf 0.16.7。首次发布。

项目详情


下载文件

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

源分布

iterfzf-1.4.0.54.3.tar.gz (1.8 MB 查看哈希值)

上传时间

构建版本

iterfzf-1.4.0.54.3-py3-none-win_arm64.whl (1.6 MB 查看哈希值)

上传时间 Python 3 Windows ARM64

iterfzf-1.4.0.54.3-py3-none-win_amd64.whl (1.8 MB 查看哈希值)

上传时间 Python 3 Windows x86-64

iterfzf-1.4.0.54.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.5 MB 查看哈希值)

上传时间 Python 3 manylinux: glibc 2.17+ s390x

iterfzf-1.4.0.54.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.4 MB 查看哈希值)

上传时间 Python 3 manylinux: glibc 2.17+ ppc64le

iterfzf-1.4.0.54.3-py3-none-manylinux_1_2_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB 查看哈希值)

上传时间 Python 3 manylinux: glibc 1.2+ x86-64 manylinux: glibc 2.17+ x86-64

iterfzf-1.4.0.54.3-py3-none-manylinux_1_2_aarch64.manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB 查看哈希值)

上传时间 Python 3 manylinux: glibc 1.2+ ARM64 manylinux: glibc 2.17+ ARM64

iterfzf-1.4.0.54.3-py3-none-macosx_11_0_arm64.whl (1.6 MB 查看哈希值)

上传时间 Python 3 macOS 11.0+ ARM64

iterfzf-1.4.0.54.3-py3-none-macosx_10_7_x86_64.macosx_10_9_x86_64.whl (1.6 MB 查看哈希值)

上传时间 Python 3 macOS 10.7+ x86-64 macOS 10.9+ x86-64

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面