# atyp

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

### Install

``` sh
pip install -e .

# install from pypi
pip install atyp
```

### nbdev

``` sh
# activate conda environment
$ conda activate atyp

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

# make changes under nbs/ directory
# ...

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

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

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

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

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

``` sh
$ pip install atyp
```

## Documentation

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

### A = Alias

``` python
from atyp.atyp import (
    # Booleans
    Boolic, Boolish, Bools, 
    # Numbers
    Numeric, Numbers,
    # Strings
    StrLike, Strs, StrSet,
    # Paths
    PathType, PathLike, 
    # Enums
    Intum, Strum, 
    # Bytes
    ByteLike,
    # Typing
    Literals, TypingLike, GuardLike, 
    # Importlib
    Module, Loader, ModuleSpec,
    # Inspect
    Sig, Param,
)
```

### C = ClassVar

``` python
from atyp.ctyp import (
    ClsInt, ClsStr, ClsBool, ClsFloat
)
```

### Q = Optional

``` python
from atyp.qtyp import (
    AnyQ, IntQ, SetQ, StrQ, ObjQ, 
    BoolQ, CallQ, TypeQ, ListQ, IterQ, 
    FloatQ, NumberQ, ComplexQ, StrLikeQ,
    ClsStrQ,
)
```

### E = (Over)-Engineered

``` python
# from atyp.etyp import ()
```

### Z = Custom

``` python
from atyp.ztyp import (FlagFunc, FlagFuncQ)
```

### R = Rich

``` python
from atyp.rtyp import (
    RTree, RText, RCons, RProg, TApp
)
```

### P = Plot

``` python
from atyp.ptyp import (
    Axes, ColorMap, CBarPos
)
```

### D = Data

``` python
from atyp.dtyp import (
    NPArray, ndarray, 
    Idx, Index, Series, 
    DFrame, DataFrame, DataFrames, 
    IndexLike, SeriesLike, IterLike, 
    GroupKey
)
```

### B = Bio

``` python
from atyp.btyp import (
    Adata, Adatas, AnnData, AnnDatas
)
```

### M = Machine Learning

``` python
from atyp.mtyp import (Tensor, Device)
```
