Spaces:
Sleeping
Sleeping
Metadata-Version: 2.1 | |
Name: pfzy | |
Version: 0.3.4 | |
Summary: Python port of the fzy fuzzy string matching algorithm | |
Home-page: https://github.com/kazhala/pfzy | |
License: MIT | |
Keywords: fuzzy,string,fzy,search,development | |
Author: Kevin Zhuang | |
Author-email: kevin7441@gmail.com | |
Requires-Python: >=3.7,<4.0 | |
Classifier: Development Status :: 4 - Beta | |
Classifier: Intended Audience :: Developers | |
Classifier: License :: OSI Approved :: MIT License | |
Classifier: Operating System :: Microsoft | |
Classifier: Operating System :: Unix | |
Classifier: Programming Language :: Python :: 3 | |
Classifier: Programming Language :: Python :: 3.10 | |
Classifier: Programming Language :: Python :: 3.7 | |
Classifier: Programming Language :: Python :: 3.8 | |
Classifier: Programming Language :: Python :: 3.9 | |
Classifier: Topic :: Software Development | |
Classifier: Topic :: Software Development :: Libraries | |
Provides-Extra: docs | |
Requires-Dist: Sphinx (>=4.1.2,<5.0.0); extra == "docs" | |
Requires-Dist: furo (>=2021.8.17-beta.43,<2022.0.0); extra == "docs" | |
Requires-Dist: myst-parser (>=0.15.1,<0.16.0); extra == "docs" | |
Requires-Dist: sphinx-autobuild (>=2021.3.14,<2022.0.0); extra == "docs" | |
Requires-Dist: sphinx-copybutton (>=0.4.0,<0.5.0); extra == "docs" | |
Project-URL: Documentation, https://pfzy.readthedocs.io/ | |
Project-URL: Repository, https://github.com/kazhala/pfzy | |
Description-Content-Type: text/markdown | |
# pfzy | |
[](https://github.com/kazhala/pfzy/actions?query=workflow%3ACI) | |
[](https://readthedocs.org/projects/pfzy/) | |
[](https://ap-southeast-2.console.aws.amazon.com/codesuite/codebuild/378756445655/projects/pfzy/history?region=ap-southeast-2&builds-meta=eyJmIjp7InRleHQiOiIifSwicyI6e30sIm4iOjIwLCJpIjowfQ) | |
[](https://coveralls.io/github/kazhala/pfzy?branch=master) | |
[](https://pypi.org/project/pfzy/) | |
[](https://pypi.org/project/pfzy/) | |
[](https://github.com/kazhala/pfzy/blob/master/LICENSE) | |
<!-- start elevator-pitch-intro --> | |
Python port of the [fzy](https://github.com/jhawthorn/fzy) fuzzy string matching algorithm. | |
- [Async fuzzy match function](https://pfzy.readthedocs.io/en/latest/pages/usage.html#matcher) | |
- [Fzy scorer (fuzzy string match)](https://pfzy.readthedocs.io/en/latest/pages/usage.html#fzy-scorer) | |
- [Substring scorer (exact substring match)](https://pfzy.readthedocs.io/en/latest/pages/usage.html#substr-scorer) | |
## Requirements | |
``` | |
python >= 3.7 | |
``` | |
## Installation | |
```sh | |
pip install pfzy | |
``` | |
## Quick Start | |
**Full documentation: [https://pfzy.readthedocs.io/](https://pfzy.readthedocs.io/)** | |
```python | |
import asyncio | |
from pfzy import fuzzy_match | |
result = asyncio.run(fuzzy_match("ab", ["acb", "acbabc"])) | |
``` | |
``` | |
>>> print(result) | |
[{'value': 'acbabc', 'indices': [3, 4]}, {'value': 'acb', 'indices': [0, 2]}] | |
``` | |
<!-- end elevator-pitch-intro --> | |
## Background | |
[fuzzywuzzy](https://github.com/seatgeek/fuzzywuzzy) is a famous python package for performing fuzzy matching | |
between strings powered by [python-Levenshtein](https://github.com/miohtama/python-Levenshtein). While it does its | |
job well it doesn't calculate/provide the matching indices which is essential in a fuzzy finder applications. | |
The [fzy](https://github.com/jhawthorn/fzy) fuzzy matching algorithm can calculate the matching score while also | |
providing the matching indices which fuzzy finder applications can use to provide extra highlights. | |
The initial implementation of this algorithm can be found at [sweep.py](https://github.com/aslpavel/sweep.py) which | |
is a python implementation of the terminal fuzzy finder. The code snippet is later used by the project [vim-clap](https://github.com/liuchengxu/vim-clap). | |
**I found myself needing this logic across multiple projects hence decided to strip out the logic and publish a dedicated | |
package with detailed documentation and unittest.** | |
<!-- start elevator-pitch-ending --> | |
## Credit | |
- [fzy](https://github.com/jhawthorn/fzy) | |
- [sweep.py](https://github.com/aslpavel/sweep.py) | |
- [vim-clap](https://github.com/liuchengxu/vim-clap) | |
## LICENSE | |
> All 3 projects mentioned in [Credit](#credit) are all licensed under [MIT](https://opensource.org/licenses/MIT). | |
This project is licensed under [MIT](https://github.com/kazhala/pfzy). Copyright (c) 2021 Kevin Zhuang | |
<!-- end elevator-pitch-ending --> | |