# litum

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

### Install

``` sh
pip install -e .

# install from pypi
pip install litum
```

### nbdev

``` sh
# activate conda environment
$ conda activate litum

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

# make changes under nbs/ directory
# ...

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

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

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

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

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

``` sh
$ pip install litum
```

## Documentation

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

Note that `LiteralEnum`, `LitStrEnum`, and `LitIntEnum` have aliases
`Litum`, `Strum`, and `Intum` respectively.

``` python
@set_dtype(str)
@set_fallback('GREEN')
class MyLiteralEnum(LiteralEnum):
    RED = 'red'
    BLUE = 'blue'
    GREEN = 'green'

color = MyLiteralEnum('RED')
color, MyLiteralEnum('blue'), MyLiteralEnum('ORANGE')
```

    (<MyLiteralEnum.RED: 'red'>,
     <MyLiteralEnum.BLUE: 'blue'>,
     <MyLiteralEnum.GREEN: 'green'>)

``` python
MyLiteralEnum.check_fallback(), MyLiteralEnum.check_dtype(color)
```

    (<MyLiteralEnum.GREEN: 'green'>, True)
