Skip to main content

Pythonic interface to fzf

Project description

Latest PyPI version Build status (Travis CI) Build status (AppVeyor)

Demo session

iterfzf demo session

See also the API reference.

Key features

  • No dependency but only Python is required. Prebuilt fzf binary for each platform is bundled into wheels. Everything is ready by pip install iterfzf. (Note that not wheels of all supported platforms are uploaded to PyPI as they don’t allow minor platforms e.g. FreeBSD. The complete wheels can be found from the GitHub releases.)

  • Consumes an iterable rather than a list. It makes UX way better when the input data is long but streamed from low latency network. It can begin to display items immediately after only part of items are ready, and before the complete items are ready.

  • Supports Python 2.6, 2.7, 3.3 or higher.

iterfzf.iterfzf(iterable, **options)

Consumes the given iterable of strings, and displays them using fzf. If a user chooses something it immediately returns the chosen things.

The following is the full list of parameters. Please pass them as keyword arguments except for iterable which comes first:

iterable (required)

The only required parameter. Every element which this iterable yields is displayed immediately after each one is produced. In other words, the passed iterable is lazily consumed.

It can be an iterable of byte strings (e.g. [b'foo', b'bar']) or of Unicode strings (e.g. [u'foo', u'bar']), but must not be mixed (e.g. [u'foo', b'bar']). If they are byte strings the function returns bytes. If they are Unicode strings it returns Unicode strings. See also the encoding parameter.

multi

True to let the user to choose more than one. A user can select items with tab/shift-tab. If multi=True the function returns a list of strings rather than a string.

False to make a user possible to choose only one. If multi=False it returns a string rather than a list.

For both modes, the function returns None if nothing is matched or a user cancelled.

False by default.

Corresponds to -m/--multi option.

print_query

If True the return type is a tuple where the first element is the query the user actually typed, and the second element is the selected output as described above and depending on the state of multi.

False by default.

Corresponds to --print-query option.

New in version 0.3.0.

encoding

The text encoding name (e.g. 'utf-8', 'ascii') to be used for encoding iterable values and decoding return values. It’s ignored when the iterable values are byte strings.

The Python’s default encoding (i.e. sys.getdefaultencoding()) is used by default.

extended

True for extended-search mode. False to turn it off.

True by default.

True corresponds to -x/--extended option, and False corresponds to +x/--no-extended option.

exact

False for fuzzy matching, and True for exact matching.

False by default.

Corresponds to -e/--exact option.

case_sensitive

True for case sensitivity, and False for case insensitivity. None, the default, for smart-case match.

True corresponds to +i option and False corresponds to -i option.

query

The query string to be filled at first. (It can be removed by a user.)

Empty string by default.

Corresponds to -q/--query option.

prompt

The prompt sequence. ' >' by default.

Corresponds to --prompt option.

mouse

False to disable mouse. True by default.

Corresponds to --no-mouse option.

Author and license

The iterfzf library is written by Hong Minhee and distributed under GPLv3 or later.

The fzf program is written by Junegunn Choi and distributed under MIT license.

Changelog

Versioning scheme

Note that iterfzf does not follow Semantic Versioning. The version consists of its own major and minor number followed by the version of bundled fzf. For example, 1.2.3.4.5 means that iterfzf’s own major version is 1, and its own minor version is 2, plus the version of fzf it bundles is 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

Version 0.3.0.17.1

Released on October 16, 2017. Bundles fzf 0.17.1.

  • Added print_query option. [#1 by George Kettleborough]

Version 0.2.0.17.0

Released on August 27, 2017. Bundles fzf 0.17.0.

Version 0.2.0.16.11

Released on July 23, 2017. Bundles fzf 0.16.11.

Version 0.2.0.16.10

Released on July 23, 2017. Bundles fzf 0.16.10.

Version 0.2.0.16.8

Released on June 6, 2017. Bundles fzf 0.16.8.

  • Upgraded fzf from 0.16.7 to 0.16.8.

Version 0.2.0.16.7

Released on May 20, 2017. Bundles fzf 0.16.7.

  • Made sdists (source distributions) possible to be correctly installed so that older pip, can’t deal with wheels, also can install iterfzf.

Version 0.1.0.16.7

Released on May 19, 2017. Bundles fzf 0.16.7. The initial release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iterfzf-0.3.0.17.1.tar.gz (9.1 kB view details)

Uploaded Source

Built Distributions

iterfzf-0.3.0.17.1-py2.py3-none-win_amd64.whl (2.5 MB view details)

Uploaded Python 2 Python 3 Windows x86-64

iterfzf-0.3.0.17.1-py2.py3-none-win32.whl (2.4 MB view details)

Uploaded Python 2 Python 3 Windows x86

iterfzf-0.3.0.17.1-py2.py3-none-manylinux1_x86_64.whl (924.5 kB view details)

Uploaded Python 2 Python 3

iterfzf-0.3.0.17.1-py2.py3-none-manylinux1_i686.whl (861.5 kB view details)

Uploaded Python 2 Python 3

iterfzf-0.3.0.17.1-py2.py3-none-macosx_10_10_intel.macosx_10_10_x86_64.macosx_10_11_intel.macosx_10_11_x86_64.macosx_10_12_intel.macosx_10_12_x86_64.whl (913.4 kB view details)

Uploaded Python 2 Python 3 macOS 10.10+ intel macOS 10.10+ x86-64 macOS 10.11+ intel macOS 10.11+ x86-64 macOS 10.12+ intel macOS 10.12+ x86-64

iterfzf-0.3.0.17.1-py2.py3-none-macosx_10_10_i386.macosx_10_11_i386.macosx_10_12_i386.whl (856.1 kB view details)

Uploaded Python 2 Python 3 macOS 10.10+ i386 macOS 10.11+ i386 macOS 10.12+ i386

File details

Details for the file iterfzf-0.3.0.17.1.tar.gz.

File metadata

File hashes

Hashes for iterfzf-0.3.0.17.1.tar.gz
Algorithm Hash digest
SHA256 d91dab3dda0b28f218a5c518983575ed0372365029c0b95b90eae474d8223d58
MD5 ac1a8c065d1e310ba3eda5c04a936493
BLAKE2b-256 25ade19a5f575fadf951445a90100a26f35871186027ae380722313057c14e8b

See more details on using hashes here.

File details

Details for the file iterfzf-0.3.0.17.1-py2.py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for iterfzf-0.3.0.17.1-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ed9771db046fda646afe7fc62357a9ed60cb0a6e2dbd84f41a0aa1e977db9f09
MD5 a80f181272b1ecc25dd961493a199e58
BLAKE2b-256 f5f44f40ede437aa6d7b91818ae2c6d38ac50f646cdf0378e7cf2dbe6bb38e4d

See more details on using hashes here.

File details

Details for the file iterfzf-0.3.0.17.1-py2.py3-none-win32.whl.

File metadata

File hashes

Hashes for iterfzf-0.3.0.17.1-py2.py3-none-win32.whl
Algorithm Hash digest
SHA256 0b22b56d1e6411ac03be30b0dc055d828c3ad333a1b67359f72dd3885505e011
MD5 9ac27f58b23c1ba78e2b65de2e738179
BLAKE2b-256 ff30d926cd33b7a0ea4d51bb922f428f0321fcb0fa739b666036b307c40ae7d8

See more details on using hashes here.

File details

Details for the file iterfzf-0.3.0.17.1-py2.py3-none-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for iterfzf-0.3.0.17.1-py2.py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 f8c35c864d10d5cf0ff93ffa054dde964ccbe004385004a2d5615ac44a1602d2
MD5 e0e3927aa83dec38ae7d1d529e1280a7
BLAKE2b-256 31c92d38e00b3b781663f67a157969ec17da5b6811a4f9c2a10ee9456b68c4d2

See more details on using hashes here.

File details

Details for the file iterfzf-0.3.0.17.1-py2.py3-none-manylinux1_i686.whl.

File metadata

File hashes

Hashes for iterfzf-0.3.0.17.1-py2.py3-none-manylinux1_i686.whl
Algorithm Hash digest
SHA256 a5591b994dc9a496a51165d1228f42cddf8a0514d40e9854406b4fa89831273b
MD5 3989207d9a44b90f2447a13037f7668e
BLAKE2b-256 fe31edd24986590243bd1b10f41bbec8f410baa6687e9f430522096e8d6dd870

See more details on using hashes here.

File details

Details for the file iterfzf-0.3.0.17.1-py2.py3-none-macosx_10_10_intel.macosx_10_10_x86_64.macosx_10_11_intel.macosx_10_11_x86_64.macosx_10_12_intel.macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for iterfzf-0.3.0.17.1-py2.py3-none-macosx_10_10_intel.macosx_10_10_x86_64.macosx_10_11_intel.macosx_10_11_x86_64.macosx_10_12_intel.macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 be2e46c6ab782a54e8f955ade101249dbcaf2e3cb530946b5ba2eb1b7d569792
MD5 c2082cd268eb64e03e569115a9aa0e40
BLAKE2b-256 be030a7be2dd805ed1883b82930b050d8edb11a6bf909f224b4b58b5f17475b4

See more details on using hashes here.

File details

Details for the file iterfzf-0.3.0.17.1-py2.py3-none-macosx_10_10_i386.macosx_10_11_i386.macosx_10_12_i386.whl.

File metadata

File hashes

Hashes for iterfzf-0.3.0.17.1-py2.py3-none-macosx_10_10_i386.macosx_10_11_i386.macosx_10_12_i386.whl
Algorithm Hash digest
SHA256 c1daecaeefa38d4cb6d5ce996cbe3cec096a5740468c0ffd178869d0c560e69a
MD5 cf7822aed1869e375d31d647d4a87063
BLAKE2b-256 57a2f08309e055eb098d4cb2d370ff7e42874df63b71100ca1c78a78f92072d7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page