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

Uploaded Source

Built Distributions

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

Uploaded Python 2 Python 3 Windows x86-64

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

Uploaded Python 2 Python 3 Windows x86

iterfzf-0.2.0.17.0-py2.py3-none-manylinux1_x86_64.whl (924.0 kB view details)

Uploaded Python 2 Python 3

iterfzf-0.2.0.17.0-py2.py3-none-manylinux1_i686.whl (861.2 kB view details)

Uploaded Python 2 Python 3

iterfzf-0.2.0.17.0-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 (912.8 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.17.0-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.2.0.17.0.tar.gz.

File metadata

File hashes

Hashes for iterfzf-0.2.0.17.0.tar.gz
Algorithm Hash digest
SHA256 7c217103a7e26510ee885e2081a5ee0abc8b71aecae84a548d0d448ef89c3cfa
MD5 c33f56e9565aa988545e66d1983becca
BLAKE2b-256 34ac9d276bf60b109b9f5a8a25e3e903b799e3c713385de7fa02c0d1da908cfe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iterfzf-0.2.0.17.0-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 cabc92adc67e44ef208b2b0aa2f5befd34799c2ea750798f21b94f1594853d84
MD5 d0a6edae9e6a6ffc0e934cd1a8ffc786
BLAKE2b-256 1cdede7e192fe7ae305afc11ccbb04e2a023386c6254553c7b0abd5ddb86d00a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iterfzf-0.2.0.17.0-py2.py3-none-win32.whl
Algorithm Hash digest
SHA256 de989f6ca8f9157fb0d3436296c9286b5b5d2a519ec8850c7d958b759dcbbcd9
MD5 d91d4826f6789ac359f991057684b347
BLAKE2b-256 556a8f58f332c1d072cf9baca716c11252f2105755a5f67ed63c82bc4c07c032

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iterfzf-0.2.0.17.0-py2.py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 0fec905aea3212874a68c5ebdddd3bbf5b4181930873c98732c7466fe35454c0
MD5 b61390c25cd845f434a4cec8fa1b6766
BLAKE2b-256 bd2c407f51c8ebac948ceb18ea74b31a11f23ebb82cedab317139fa7343887f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iterfzf-0.2.0.17.0-py2.py3-none-manylinux1_i686.whl
Algorithm Hash digest
SHA256 75caad0d0311e01720a2ab15aaf59c7dc3897f785bc5672302bd8f6d14be1ead
MD5 cb275352ed2421e2d9089adc92bd42c7
BLAKE2b-256 c6dc20a90688633bc588c1969075313d9799823bc3662fd0d3d92b4c9d5decb5

See more details on using hashes here.

File details

Details for the file iterfzf-0.2.0.17.0-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.17.0-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 819bba74f007cd9322310f63d6569739362375a20d530a437c3fea5253c2b31f
MD5 b89c49d0f01b8c2a11878bb1588b68f0
BLAKE2b-256 297afe5881f53d319438bfcbc15882fc7d3d04231001b6876fd38c1560d472e9

See more details on using hashes here.

File details

Details for the file iterfzf-0.2.0.17.0-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.17.0-py2.py3-none-macosx_10_10_i386.macosx_10_11_i386.macosx_10_12_i386.whl
Algorithm Hash digest
SHA256 9bfd1bece40fd573a0a5dd91e538dd94f1baa8403961221a19fa123b7bf1c712
MD5 1874f9d97dcfcb0137fadfbe55463c1e
BLAKE2b-256 3d2d9450a6113101367c445871ba796a82714560624bdb6dee2af40d2307890e

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