Python wrapper for junegunn's fuzzyfinder (fzf)
Project description
pyfzf
Forked Changes:
This doesn't write to a temporary file before prompting, it communicates with the subprocess directly given any iterator, sending lines as they're processed.
It also lets you send any fzf
CLI options as args/kwargs, or decorate a function which returns an iterator to use as fzf input (see below for examples)
A python wrapper for junegunn's fzf.
Requirements
- Python 3.6+
fzf
Note: fzf
must be installed and available on $PATH
.
Installation
pip install pyfzf_iter
Usage
from pyfzf.pyfzf import FzfPrompt
fzf = FzfPrompt()
fzf = FzfPrompt(default_options="--reverse")
If fzf
is not available on PATH, you can specify a location
fzf = FzfPrompt('/path/to/fzf')
Simply pass a sequence of items to the prompt function to invoke fzf
fzf.prompt(range(0,10))
You can pass additional positional arguments to fzf
.
fzf.prompt(range(0,10), '--multi', '--cycle')
fzf.prompt(range(0,50), 'multi', 'cycle', height='20%')
fzf.prompt(range(0,50), 'x', 'i', 'm', '--tac')
Items are streamed to the fzf
process one line at a time, you can pass
any sort of iterator or generator as the first argument. For example, a file object,
or a glob of files to search for, displaying a preview:
fzf.prompt(open("README.md"), "-m", delimiter="")
from pathlib import Path
fzf.prompt(Path(".").rglob("*.md"), "-m", r"--preview='cat {}'")
Items are delimited with \n
by default, you can also change the delimiter (useful for multiline items):
>>> fzf.prompt(["5\n10", "15\n20"], '--read0', '-m', delimiter='\0')
['15\n20']
You can also wrap a decorate a function with wrap
, which then runs fzf
when you call the function:
from pyfzf import FzfPrompt
fzf = FzfPrompt()
@fzf.wrap("--tac")
def items(n: int):
return range(n)
# prompts you to pick one of the items with fzf
items(n=50)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pyfzf_iter-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3553c686cd7b5e9ec89c1fdb6ea0aae203021a32236690414f61a982165556b1 |
|
MD5 | 9ebd68823ffb71e4869a25c4147162dd |
|
BLAKE2b-256 | 24b31bb96d8bb5b9bba4ef3e25d0bbb303ece9532e18d66ef7d67c9b933d7400 |