# fuzstr

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

## Developer Guide

### Setup

``` sh
# create conda environment
$ mamba env create -f env.yml

# update conda environment
$ mamba env update -n fuzstr --file env.yml
```

### Install

``` sh
pip install -e .

# install from pypi
pip install fuzstr
```

### nbdev

``` sh
# activate 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
```

### Publishing

``` sh
# 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'
```

# Usage

## Installation

Install latest from the GitHub
[repository](https://github.com/dsm-72/fuzstr):

``` sh
$ pip install git+https://github.com/dsm-72/fuzstr.git
```

or from [conda](https://anaconda.org/dsm-72/fuzstr)

``` sh
$ conda install -c dsm-72 fuzstr
```

or from [pypi](https://pypi.org/project/fuzstr/)

``` sh
$ pip install fuzstr
```

## Documentation

Documentation can be found hosted on GitHub
[repository](https://github.com/dsm-72/fuzstr)
[pages](https://dsm-72.github.io/fuzstr/). Additionally you can find
package manager specific guidelines on
[conda](https://anaconda.org/dsm-72/fuzstr) and
[pypi](https://pypi.org/project/fuzstr/) respectively.

### [`fuzstr`](https://dsm-72.github.io/fuzstr/core.html#fuzstr)

``` python
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

``` python
apple.prep(apple), apple.prep(mango), mango.prep(apple), mango.prep(mango), issubclass(type(mango), fuzstr)
```

    ('Apple', 'Mango', 'apple', 'mango', True)
