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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyfzf_iter-0.0.1.tar.gz.
File metadata
- Download URL: pyfzf_iter-0.0.1.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03e20516949ffa704c85ed03575962684f186bb8b7318d915c677bc60a2296cf
|
|
| MD5 |
eed93bcd1e7fa5e4f349d588bdb8c51b
|
|
| BLAKE2b-256 |
7a241b7f29b009ba4c88e1ccc482ec6ad4ce52374ab43e2f69789a9d0022c098
|
File details
Details for the file pyfzf_iter-0.0.1-py3-none-any.whl.
File metadata
- Download URL: pyfzf_iter-0.0.1-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3553c686cd7b5e9ec89c1fdb6ea0aae203021a32236690414f61a982165556b1
|
|
| MD5 |
9ebd68823ffb71e4869a25c4147162dd
|
|
| BLAKE2b-256 |
24b31bb96d8bb5b9bba4ef3e25d0bbb303ece9532e18d66ef7d67c9b933d7400
|