fuzzy string matching
# create conda environment
$ mamba env create -f env.yml
# update conda environment
$ mamba env update -n fuzstr --file env.yml
pip install -e .
conda environment
$ conda activate fuzstr
# make sure the fuzstr package is installed in development mode
$ pip install -e .
# make changes under nbs/ directory
# ...
# compile to have changes apply to the fuzstr package
$ nbdev_prepare
# publish to pypi
$ nbdev_pypi
# publish to conda
$ nbdev_conda --build_args '-c conda-forge'
$ nbdev_conda --mambabuild --build_args '-c conda-forge -c dsm-72'
Install latest from the GitHub repository:
$ pip install git+https://github.com/dsm-72/fuzstr.git
or from conda
$ conda install -c dsm-72 fuzstr
or from pypi
$ pip install fuzstr
Documentation can be found hosted on GitHub repository pages. Additionally you can find package manager specific guidelines on conda and pypi respectively.
fuzstr
apple = fuzstr('Apple', icase=False, ispace=False, iunder=False, cutoff=1)
grape = fuzstr('Grape', icase=True, ispace=True, iunder=True, cutoff=1)
mango = fuzstr('Mango')
for fruit in (apple, grape, mango):
rstr = fruit.raw.lower()
print(
f'{fruit}:',
fruit == fuzstr(rstr), fruit == fruit.makesame(rstr),
fruit == fruit.makesame(rstr), fruit == fuzstr(rstr),
)
Apple: False False False False
Grape: True True True True
Mango: True True True True
apple.prep(apple), apple.prep(mango), mango.prep(apple), mango.prep(mango), issubclass(type(mango), fuzstr)
('Apple', 'Mango', 'apple', 'mango', True)