Literal Enum
# create conda environment
$ mamba env create -f env.yml
# update conda environment
$ mamba env update -n grd --file env.yml
pip install -e .
# install from pypi
pip install grd
# activate conda environment
$ conda activate grd
# make sure the grd package is installed in development mode
$ pip install -e .
# make changes under nbs/ directory
# ...
# compile to have changes apply to the grd package
$ nbdev_prepare
# 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'
Install latest from the GitHub repository:
$ pip install git+https://github.com/dsm-72/grd.git
or from conda
$ conda install -c dsm-72 grd
or from pypi
$ pip install grd
Documentation can be found hosted on GitHub repository pages. Additionally you can find package manager specific guidelines on conda and pypi respectively.
abc, d = Literal['a', 'b', 'c'], 'd'
class ABC_Guard(TTypeGuard):
types = abc
ABC_Guard.istype('bz'), ABC_Guard.istype('b')
(False, True)
class ABCD_Guard(TTypeGuard):
types = Union[abc, d]
ABCD_Guard.istype('b'), ABCD_Guard.istype('d')
(True, True)
import numpy as np
from typing import TypeAlias
ndarray: TypeAlias = np.ndarray
class NPArrayGuard(TTypeGuard):
types = ndarray
NPArrayGuard.istype([1,2,3]), NPArrayGuard.istype(np.array([1,2,3]))
(False, True)