# numpy
py:class np.number
py:class np.object_
py:class npt.NDArray
py:class npt.NBitBase
py:class NDArray
py:class numpy._typing._array_like.GenericAlias
# pandas
py:class CategoricalDtype
py:class pandas.api.typing.DataFrameGroupBy
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

# loguru
py:class loguru.Logger

# networkx: the ``nx.DiGraph`` return annotation on the resource manager renders
# as a bare ``:class:`nx.DiGraph``` cross-ref that intersphinx (whose target is
# the qualified ``networkx.DiGraph``) can't match. autodoc-typehints also strips
# the ``[Resource]`` parameter, so the unresolved target is always ``nx.DiGraph``.
py:class nx.DiGraph

# vivarium-config-tree: type annotations in source use the bare name
# ``ConfigTree`` (via ``from vivarium.config_tree import ConfigTree``), which
# autodoc-typehints renders as a bare ``:class:`ConfigTree``` cross-ref that
# Sphinx can't match against the qualified intersphinx target. Fully-qualified
# references (e.g. ``:class:`~vivarium.config_tree.main.ConfigTree``` in
# docstrings/rst) resolve correctly via intersphinx; only the autodoc-derived
# bare form needs suppression.
py:class ConfigTree

# Special methods that Sphinx can't resolve
py:meth __init__
py:meth __repr__
py:meth __call__

# pathlib internals
py:class pathlib._local.Path

# typing
py:data typing.Union

# vivarium-engine type aliases render as bare names that Sphinx can't match.
py:class ClockTime
py:class ClockStepSize
py:class Time
py:class Timedelta

# Bare names from type hints and Raises sections that autodoc renders without a
# module, so Sphinx can't match them.
py:class Path
py:class Component
py:class LookupTable
