Lightweight and efficient Python library inspired by the powerful features of fzf, the popular command-line fuzzy finder. minifzf is designed to bring the essential functionalities of fzf into your Python CLI projects with ease and simplicity.
fzf, offering efficient and fast fuzzy finding and selection capabilities right in your command line.fzf for Python.pip install minifzf
$ mfzf --help
Usage: minifzf COMMAND [OPTIONS]
╭─ Commands ────────────────────────────────────────────╮
│ --help,-h Display this message and exit. │
│ --version,-v Display application version. │
╰───────────────────────────────────────────────────────╯
╭─ Parameters ──────────────────────────────────────────╮
│ --query -q Start the selector with the given query. │
│ --first -1 Automatically select the only match. │
╰───────────────────────────────────────────────────────╯
Start minifzf selection for current directory.
mfzf
With initial query.
minifzf -q "<Your Query>"
Returned most relevant item.
mfzf -q "<Your Query>" -1
Select from Standard Input.
No UNIX support for now (Throws
[Errno 25] Inappropriate ioctl for devicebecause minifzf uses sshkeyboard which utilizes termios library.)
cat filename | minifzf
Initiating selector with headers and rows.
from minifzf import Selector
from pathlib import Path
selector = Selector(
headers=['files'],
rows=[[str(p)] for p in Path.cwd().glob('*')])
selected = selector.select()
Initating selector with mappings.
from minifzf import Selector
mappings = [
{"id": "51009", "name": "Jujutsu Kaisen 2nd Season"},
{"id": "40748", "name": "Jujutsu Kaisen"},
{"id": "48561", "name": "Jujutsu Kaisen 0 Movie"}
]
selector = Selector.from_mappings(mappings=mappings)
selected = selector.select()
Initiating a path selector.
from minifzf import Selector
from pathlib import Path
path_selector = Selector.as_path_selector(
directory=Path('path/to/directory'), recursive=False)
selected = path_selector.select()
We welcome contributions and feedback to improve minifzf. If you have ideas, issues, or want to contribute, please feel free to open an issue or a pull request.