Metadata-Version: 2.1
Name: nymstr
Version: 0.0.2
Summary: nymstr
Home-page: https://github.com/dsm-72/nymstr
Author: dsm-72
Author-email: sumner.magruder@yale.edu
License: Apache Software License 2.0
Keywords: name things with fuzzy string matching nymstr nym str fuz fuzstr atyp ispec indoc dynattr
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: Apache Software License
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Provides-Extra: dev
License-File: LICENSE

# nymstr

<!-- 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 nymstr --file env.yml
```

### Install

``` sh
pip install -e .

# install from pypi
pip install nymstr
```

### nbdev

``` sh
# activate conda environment
$ conda activate nymstr

# make sure the nymstr package is installed in development mode
$ pip install -e .

# make changes under nbs/ directory
# ...

# compile to have changes apply to the nymstr 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/nymstr):

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

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

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

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

``` sh
$ pip install nymstr
```

## Documentation

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

``` python
apple = nymstr('Apple', icase=False, ispace=False, iunder=False, cutoff=1)
grape = nymstr('Grape', icase=True,  ispace=True,  iunder=True,  cutoff=1)
mango = nymstr('Mango')

fruits = (apple, grape, mango)
print(f'fruit / pruit:', ' == ', 'tosame', 'tosame', 'tocls', sep='\t')
for i, fruit in enumerate(fruits):
    rstr = fruit.raw.lower()
    pidx = i - 1 or len(fruits) - 1
    pruit = fruits[pidx]    
    print(
        f'{fruit} / {pruit}:', 
        fruit == nymstr(rstr),       fruit == fruit.tosame(rstr), 
        fruit == pruit.tosame(rstr), fruit == nymstr.tocls(rstr), sep='\t'
    )
```

    fruit / pruit:   ==     tosame  tosame  tocls
    Apple / Mango:  False   False   False   False
    Grape / Mango:  True    True    True    True
    Mango / Grape:  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)
