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

Uploaded Source

Built Distributions

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

Uploaded Python 2 Python 3 Windows x86-64

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

Uploaded Python 2 Python 3 Windows x86

iterfzf-0.2.0.16.11-py2.py3-none-manylinux1_x86_64.whl (874.2 kB view details)

Uploaded Python 2 Python 3

iterfzf-0.2.0.16.11-py2.py3-none-manylinux1_i686.whl (814.1 kB view details)

Uploaded Python 2 Python 3

iterfzf-0.2.0.16.11-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.9 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.11-py2.py3-none-macosx_10_10_i386.macosx_10_11_i386.macosx_10_12_i386.whl (810.9 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.11.tar.gz.

File metadata

File hashes

Hashes for iterfzf-0.2.0.16.11.tar.gz
Algorithm Hash digest
SHA256 95546c757231359eea45db24b23e157c184656dd0a6f5f8b8a952eedc32003e0
MD5 159e2b50ee51d38b4e9596ca8056ce75
BLAKE2b-256 095a3e6a6821173b92b5caa2662c32983dbb79351e6b214911b87376bd98c7f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iterfzf-0.2.0.16.11-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 de5352072a6215b5de338cdfd49730814d100d6c9d23d0507a6a3006d48ad88c
MD5 a8b034d7e622619ec554504d6385dfa1
BLAKE2b-256 c42f18d84b2af617958c646a683eb6c4f806387fdb1747c402f93957251814bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iterfzf-0.2.0.16.11-py2.py3-none-win32.whl
Algorithm Hash digest
SHA256 ea3b59b3d8248797d1a10c854f52d7d8981128bdb75658a638e87b66fe41b72f
MD5 9a5e5ca01f2c8d6b9d5401c3c06a858a
BLAKE2b-256 1ff433a4aa53cae6b113511fee389eb8b9d2fcd5ef9aaba6029eef93d61d2400

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iterfzf-0.2.0.16.11-py2.py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 2b75b55d161ac6d87b9e4269593a91e35b6f656d629f7a452715a2ffb30d8c0a
MD5 26ae6b0c2cf1f267a5b2881f5239d874
BLAKE2b-256 8c11f7cd67a7fe04cec73f194e94e26a4995b0ff9ef94ba6f66d3b5c5767cf08

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iterfzf-0.2.0.16.11-py2.py3-none-manylinux1_i686.whl
Algorithm Hash digest
SHA256 5c67f908027cdbfad132be47feab63f7b76e5967dbd9ac4f83b42ffd6ca0abfc
MD5 f9de5ab76cfafb0f75e0110f20719a1a
BLAKE2b-256 3f31eb7010eedb31878a5ca28713ff1dbfce3fd1066a591abdc7df30fbf592cd

See more details on using hashes here.

File details

Details for the file iterfzf-0.2.0.16.11-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.11-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 87153d71efd1ede7be61a9885013c8f6203111e3225be235a256f2e597f42bfa
MD5 727fba9c320642d5fceca549c0f51417
BLAKE2b-256 2cd458ec0f0583cc14585313eabd5e4d086587a2a83ec164f6c56ffb29066cb5

See more details on using hashes here.

File details

Details for the file iterfzf-0.2.0.16.11-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.11-py2.py3-none-macosx_10_10_i386.macosx_10_11_i386.macosx_10_12_i386.whl
Algorithm Hash digest
SHA256 9bac8e1e3f6e6d446dd6b6524a0cfb0f05188b9511e7129f2a0f53f85a7ed640
MD5 0f1c43b1f6df361d9975972f98b94b45
BLAKE2b-256 86d378552a208f6b2f5c44070b92694c6e237b830b16644ebab475e11e40fe8e

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