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 make a user possible 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.

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.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.2.0.16.10.tar.gz (8.6 kB view details)

Uploaded Source

Built Distributions

iterfzf-0.2.0.16.10-py2.py3-none-win_amd64.whl (2.3 MB view details)

Uploaded Python 2 Python 3 Windows x86-64

iterfzf-0.2.0.16.10-py2.py3-none-win32.whl (2.2 MB view details)

Uploaded Python 2 Python 3 Windows x86

iterfzf-0.2.0.16.10-py2.py3-none-manylinux1_x86_64.whl (873.6 kB view details)

Uploaded Python 2 Python 3

iterfzf-0.2.0.16.10-py2.py3-none-manylinux1_i686.whl (813.4 kB view details)

Uploaded Python 2 Python 3

iterfzf-0.2.0.16.10-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 (866.5 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.2.0.16.10-py2.py3-none-macosx_10_10_i386.macosx_10_11_i386.macosx_10_12_i386.whl (810.0 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.2.0.16.10.tar.gz.

File metadata

File hashes

Hashes for iterfzf-0.2.0.16.10.tar.gz
Algorithm Hash digest
SHA256 45f7eaec268aed51373fbc36bb63f4a4f546b2ec9a0749894ac32aa5da0b5344
MD5 fb87832c7995a09ee8e64fd3ff92e6f8
BLAKE2b-256 294a875a206fe877c628e5b23b15c2206736b162e58d250703e0c421c12dde1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iterfzf-0.2.0.16.10-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 990d70db8ac0c52703cc9aa1ee47f4d12a0d7a183683ceb005acf9672b468c89
MD5 9bcab35d66101e4dca729f6e8285badf
BLAKE2b-256 7d7aeea2a3398a8719e5bc771e1ede78517ef24156737d7543bfa5e0130c44bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iterfzf-0.2.0.16.10-py2.py3-none-win32.whl
Algorithm Hash digest
SHA256 cf5c644b89c2518cae0eb6ba0e450219af5f52b8b8598aaeb73e821cf6f0b0cb
MD5 cf40202b6ccd3168cbef1be724249446
BLAKE2b-256 ea3c4140dc71e3b1ce20a45e817bec1abb35bdb0de33bcd281611cb1af76548d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iterfzf-0.2.0.16.10-py2.py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 a74608b1832422804f02bac46340854a15256f98c1c797cb149e849566b5d8bf
MD5 454efb7fa697b41485e0065e2f54dcf5
BLAKE2b-256 fc2d2e12bf9737ac886bc9a7043421cd1909c78863d60df5cb9dc944db0ca396

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iterfzf-0.2.0.16.10-py2.py3-none-manylinux1_i686.whl
Algorithm Hash digest
SHA256 df844243056703f80f483d94648af909f8d6057669f0996cc7208d45b3488935
MD5 1b2a13b2e23b7752fb92af20bf449e17
BLAKE2b-256 bdda7b1515e96ff475115459bd3c871d4ead7f907531fb72a13972734086320d

See more details on using hashes here.

File details

Details for the file iterfzf-0.2.0.16.10-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.2.0.16.10-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 c7b903e701e649ba40aeaf5bc3bd67251d4d198385f1ebd329a3b93822b4a5c4
MD5 625b41be7fb082b36362801667fcc3f9
BLAKE2b-256 794021718704f59a3f6db010aae239e7228c28b3113892dd03b9b15a0343de80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iterfzf-0.2.0.16.10-py2.py3-none-macosx_10_10_i386.macosx_10_11_i386.macosx_10_12_i386.whl
Algorithm Hash digest
SHA256 459be7d2f0a22807b34d31b194a6a988ca4f60601f8744ba2e147b277266225f
MD5 ebee0f135eb8304a442417bc8e717f6c
BLAKE2b-256 a14acf3a41b6ebefcc37524b13956859dcad1d5a0d1072f2a012b1306a06bf8f

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