# numpy
py:class np.number
py:class np.object_
py:class npt.NDArray
py:class npt.NBitBase
# pandas
py:class CategoricalDtype
py:class pandas.core.indexes.base.Index
py:class pandas.core.indexes.multi.MultiIndex
py:class pandas._libs.tslibs.timestamps.Timestamp
py:class pandas._libs.tslibs.timedeltas.Timedelta
py:class pandas.core.frame.DataFrame
py:class pandas.core.series.Series
py:class pandas.core.generic.PandasObject
py:class pandas.core.groupby.generic.DataFrameGroupBy
py:class pd.Index
py:class pd.Series
py:class pd.DataFrame

#scipy
py:class scipy.stats._distn_infrastructure.rv_continuous
py:class stats.rv_continuous

# loguru
py:class loguru.Logger

# vivarium
# Type aliases don't play nicely with sphinx when you import them
# elsewhere.  Works fine for static type checker though.  I think this
# is because sphinx does runtime checks.
py:class ScalarValue
py:class NumberLike
py:class NumericArray
py:class ClockTime
py:class Time
py:class ClockStepSize
py:class Timedelta
py:class DataInput
py:class VectorMapper
py:class ScalarMapper
py:class PandasObject
py:class DataFrameGroupBy
py:class ResultsFormatter
py:class ResultsUpdater
py:class _NestedDict
py:exc ResultsConfigurationError
py:exc vivarium.framework.results.exceptions.ResultsConfigurationError
py:class vivarium.framework.plugins.M
py:class vivarium.framework.plugins.I
py:class vivarium.framework.utilities.T

# layered_config_tree
py:class layered_config_tree.main.LayeredConfigTree
py:class LayeredConfigTree
py:exc layered_config_tree.exceptions.ConfigurationError

# TODO: Need to revisit this. Nitpicking here to avoid failing builds on 3.9
py:class Logger
py:class Path
py:class LookupTableData