# atyp

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

## Packages that use `atyp`

<!-- - `aprep`
- `aspec`
- `brvstr`
- `dynattr`
- `fuzstr`
- `ispec`
- `narr`
- `nbkit`
- `nymstr`
- `synstr` -->

## 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 (
#     RichTree, RichText, RichCons, RichProg, TyperApp
# )
```

### 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)
```
