diff --git a/docs/source/_templates/_static/css/ignite_theme.css b/docs/source/_templates/_static/css/ignite_theme.css index a8f145986182..0eadd338bd27 100644 --- a/docs/source/_templates/_static/css/ignite_theme.css +++ b/docs/source/_templates/_static/css/ignite_theme.css @@ -125,3 +125,21 @@ div.container a.header-logo line-height: 1; } +/* automatically generated toctree tables */ + +article.pytorch-article table.longtable.docutils.align-default colgroup { + display: none; +} + +article.pytorch-article table.longtable.docutils.align-default tbody td:first-child { + width: 30%; +} + +article.pytorch-article table.longtable.docutils.align-default tbody td { + padding: 0.25rem; +} + +article.pytorch-article table.longtable.docutils.align-default tbody td p { + margin-block-start: 0.1em; + margin-block-end: 0.1em; +} diff --git a/docs/source/conf.py b/docs/source/conf.py index 0ceb7346bd1c..2374cd4a4495 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -205,3 +205,98 @@ # replaces pending_xref node with desc_type for type annotations sphinx.domains.python.type_to_xref = lambda t, e=None: addnodes.desc_type("", nodes.Text(t)) + +# -- Autosummary patch to get list of a classes, funcs automatically ---------- + +from importlib import import_module +from inspect import getmembers, isclass, isfunction +import sphinx.ext.autosummary +from sphinx.ext.autosummary import Autosummary +from docutils.parsers.rst import directives +from docutils.statemachine import StringList + + +class BetterAutosummary(Autosummary): + """Autosummary with autolisting for modules. + + By default it tries to import all public names (__all__), + otherwise import all classes and/or functions in a module. + + Options: + - :autolist: option to get list of classes and functions from currentmodule. + - :autolist-classes: option to get list of classes from currentmodule. + - :autolist-functions: option to get list of functions from currentmodule. + + Example Usage: + + .. currentmodule:: ignite.metrics + + .. autosummary:: + :nosignatures: + :autolist: + """ + + # Add new option + _option_spec = Autosummary.option_spec.copy() + _option_spec.update( + { + "autolist": directives.unchanged, + "autolist-classes": directives.unchanged, + "autolist-functions": directives.unchanged, + } + ) + option_spec = _option_spec + + def run(self): + for auto in ("autolist", "autolist-classes", "autolist-functions"): + if auto in self.options: + # Get current module name + module_name = self.env.ref_context.get("py:module") + # Import module + module = import_module(module_name) + + # Get public names (if possible) + try: + names = getattr(module, "__all__") + except AttributeError: + # Get classes defined in the module + cls_names = [ + name[0] + for name in getmembers(module, isclass) + if name[-1].__module__ == module_name and not (name[0].startswith("_")) + ] + # Get functions defined in the module + fn_names = [ + name[0] + for name in getmembers(module, isfunction) + if (name[-1].__module__ == module_name) and not (name[0].startswith("_")) + ] + names = cls_names + fn_names + # It may happen that module doesn't have any defined class or func + if not names: + names = [name[0] for name in getmembers(module)] + + if auto == "autolist": + # Get list of all classes and functions inside module + names = [ + name for name in names if (isclass(getattr(module, name)) or isfunction(getattr(module, name))) + ] + else: + if auto == "autolist-classes": + # Get only classes + check = isclass + elif auto == "autolist-functions": + # Get only functions + check = isfunction + else: + raise NotImplementedError + + names = [name for name in names if check(getattr(module, name))] + + # Update content + self.content = StringList(names) + return super().run() + + +# Patch original Autosummary +sphinx.ext.autosummary.Autosummary = BetterAutosummary diff --git a/docs/source/contrib/engines.rst b/docs/source/contrib/engines.rst index 3a60d6ac81df..e223e17035a6 100644 --- a/docs/source/contrib/engines.rst +++ b/docs/source/contrib/engines.rst @@ -5,6 +5,17 @@ Contribution module of engines and helper tools .. currentmodule:: ignite.contrib.engines +.. currentmodule:: ignite.contrib.engines.tbptt + +.. autosummary:: + :nosignatures: + :autolist: + +.. currentmodule:: ignite.contrib.engines.common + +.. autosummary:: + :nosignatures: + :autolist: Truncated Backpropagation Throught Time --------------------------------------- diff --git a/docs/source/contrib/handlers.rst b/docs/source/contrib/handlers.rst index a36b51cb2507..9d1d16c3ae3e 100644 --- a/docs/source/contrib/handlers.rst +++ b/docs/source/contrib/handlers.rst @@ -7,12 +7,25 @@ Contribution module of handlers param_scheduler --------------- +.. currentmodule:: ignite.contrib.handlers.param_scheduler + +.. autosummary:: + :nosignatures: + :autolist: + .. automodule:: ignite.contrib.handlers.param_scheduler :members: + lr_finder --------- +.. currentmodule:: ignite.contrib.handlers.lr_finder + +.. autosummary:: + :nosignatures: + :autolist: + .. automodule:: ignite.contrib.handlers.lr_finder :members: @@ -20,15 +33,28 @@ lr_finder time_profilers --------------- +.. currentmodule:: ignite.contrib.handlers.time_profilers + +.. autosummary:: + :nosignatures: + :autolist: + + .. automodule:: ignite.contrib.handlers.time_profilers :members: + tensorboard_logger ------------------ See `tensorboardX mnist example `_ and `CycleGAN and EfficientNet notebooks `_ for detailed usage. +.. currentmodule:: ignite.contrib.handlers.tensorboard_logger + +.. autosummary:: + :nosignatures: + :autolist: .. automodule:: ignite.contrib.handlers.tensorboard_logger :members: @@ -41,6 +67,12 @@ visdom_logger See `visdom mnist example `_ for detailed usage. +.. currentmodule:: ignite.contrib.handlers.visdom_logger + +.. autosummary:: + :nosignatures: + :autolist: + .. automodule:: ignite.contrib.handlers.visdom_logger :members: :inherited-members: @@ -52,6 +84,11 @@ neptune_logger See `neptune mnist example `_ for detailed usage. +.. currentmodule:: ignite.contrib.handlers.neptune_logger + +.. autosummary:: + :nosignatures: + :autolist: .. automodule:: ignite.contrib.handlers.neptune_logger :members: @@ -61,6 +98,12 @@ for detailed usage. mlflow_logger ------------- +.. currentmodule:: ignite.contrib.handlers.mlflow_logger + +.. autosummary:: + :nosignatures: + :autolist: + .. automodule:: ignite.contrib.handlers.mlflow_logger :members: :inherited-members: @@ -72,6 +115,11 @@ tqdm_logger See `tqdm mnist example `_ for detailed usage. +.. currentmodule:: ignite.contrib.handlers.tqdm_logger + +.. autosummary:: + :nosignatures: + :autolist: .. automodule:: ignite.contrib.handlers.tqdm_logger :members: @@ -79,6 +127,12 @@ for detailed usage. polyaxon_logger --------------- +.. currentmodule:: ignite.contrib.handlers.polyaxon_logger + +.. autosummary:: + :nosignatures: + :autolist: + .. automodule:: ignite.contrib.handlers.polyaxon_logger :members: :inherited-members: @@ -89,6 +143,12 @@ wandb_logger See `wandb mnist example `_ for detailed usage. +.. currentmodule:: ignite.contrib.handlers.wandb_logger + +.. autosummary:: + :nosignatures: + :autolist: + .. automodule:: ignite.contrib.handlers.wandb_logger :members: :inherited-members: @@ -99,6 +159,12 @@ trains_logger See `trains mnist example `_ for detailed usage. +.. currentmodule:: ignite.contrib.handlers.trains_logger + +.. autosummary:: + :nosignatures: + :autolist: + .. automodule:: ignite.contrib.handlers.trains_logger :members: :inherited-members: diff --git a/docs/source/contrib/metrics.rst b/docs/source/contrib/metrics.rst index 01f8a1083cda..8d5c8e624858 100644 --- a/docs/source/contrib/metrics.rst +++ b/docs/source/contrib/metrics.rst @@ -5,6 +5,10 @@ Contribution module of metrics .. currentmodule:: ignite.contrib.metrics +.. autosummary:: + :nosignatures: + :autolist: + .. automodule:: ignite.contrib.metrics :members: :imported-members: @@ -26,21 +30,11 @@ metrics useful for regression tasks. Definitions of metrics are based on `Botchk Complete list of metrics: - - :class:`~ignite.contrib.metrics.regression.CanberraMetric` - - :class:`~ignite.contrib.metrics.regression.FractionalAbsoluteError` - - :class:`~ignite.contrib.metrics.regression.FractionalBias` - - :class:`~ignite.contrib.metrics.regression.GeometricMeanAbsoluteError` - - :class:`~ignite.contrib.metrics.regression.GeometricMeanRelativeAbsoluteError` - - :class:`~ignite.contrib.metrics.regression.ManhattanDistance` - - :class:`~ignite.contrib.metrics.regression.MaximumAbsoluteError` - - :class:`~ignite.contrib.metrics.regression.MeanAbsoluteRelativeError` - - :class:`~ignite.contrib.metrics.regression.MeanError` - - :class:`~ignite.contrib.metrics.regression.MeanNormalizedBias` - - :class:`~ignite.contrib.metrics.regression.MedianAbsoluteError` - - :class:`~ignite.contrib.metrics.regression.MedianAbsolutePercentageError` - - :class:`~ignite.contrib.metrics.regression.MedianRelativeAbsoluteError` - - :class:`~ignite.contrib.metrics.regression.R2Score` - - :class:`~ignite.contrib.metrics.regression.WaveHedgesDistance` +.. currentmodule:: ignite.contrib.metrics.regression + +.. autosummary:: + :nosignatures: + :autolist: .. autoclass:: CanberraMetric diff --git a/docs/source/distributed.rst b/docs/source/distributed.rst index bd4f2303911e..a1e6639a8bf1 100644 --- a/docs/source/distributed.rst +++ b/docs/source/distributed.rst @@ -61,6 +61,10 @@ ignite.distributed.auto .. currentmodule:: ignite.distributed.auto +.. autosummary:: + :nosignatures: + :autolist: + .. automodule:: ignite.distributed.auto :members: @@ -70,6 +74,10 @@ ignite.distributed.launcher .. currentmodule:: ignite.distributed.launcher +.. autosummary:: + :nosignatures: + :autolist: + .. automodule:: ignite.distributed.launcher :members: @@ -82,6 +90,10 @@ group or spawn multiple processes. .. currentmodule:: ignite.distributed.utils +.. autosummary:: + :nosignatures: + :autolist: + .. automodule:: ignite.distributed.utils :members: diff --git a/docs/source/engine.rst b/docs/source/engine.rst index 807f62b21487..df36c00d386e 100644 --- a/docs/source/engine.rst +++ b/docs/source/engine.rst @@ -3,15 +3,25 @@ ignite.engine Main module of the library containing: -- :class:`~ignite.engine.engine.Engine` - abstraction that loops provided data, executes a processing function and returns a result -- :class:`~ignite.engine.events.Events` - events triggered by the :class:`~ignite.engine.engine.Engine` during execution -- :class:`~ignite.engine.events.State` - object to pass internal and user-defined data between event handlers +.. currentmodule:: ignite.engine.engine + +.. autosummary:: + :nosignatures: + :autolist: + +.. currentmodule:: ignite.engine.events + +.. autosummary:: + :nosignatures: + :autolist: and helper methods: -- :meth:`~ignite.engine.create_supervised_trainer` - creates single model/optimizer/criterion supervised trainer -- :meth:`~ignite.engine.create_supervised_evaluator` - creates single model supervised evaluation engine +.. currentmodule:: ignite.engine +.. autosummary:: + :nosignatures: + :autolist-functions: More details about those structures can be found in :doc:`concepts`. diff --git a/docs/source/exceptions.rst b/docs/source/exceptions.rst index db84dbde482c..188dd296ed2c 100644 --- a/docs/source/exceptions.rst +++ b/docs/source/exceptions.rst @@ -3,4 +3,8 @@ ignite.exceptions .. currentmodule:: ignite.exceptions +.. autosummary:: + :nosignatures: + :autolist: + .. autoclass:: NotComputableError diff --git a/docs/source/handlers.rst b/docs/source/handlers.rst index 96b18175d4b0..d7392e546916 100644 --- a/docs/source/handlers.rst +++ b/docs/source/handlers.rst @@ -4,17 +4,12 @@ ignite.handlers Complete list of handlers ------------------------- - - :class:`~ignite.handlers.Checkpoint` - - :class:`~ignite.handlers.checkpoint.BaseSaveHandler` - - :class:`~ignite.handlers.DiskSaver` - - :class:`~ignite.handlers.ModelCheckpoint` - - :class:`~ignite.handlers.EarlyStopping` - - :class:`~ignite.handlers.Timer` - - :class:`~ignite.handlers.TerminateOnNan` - - .. currentmodule:: ignite.handlers +.. autosummary:: + :nosignatures: + :autolist: + .. autoclass:: Checkpoint :members: load_objects diff --git a/docs/source/metrics.rst b/docs/source/metrics.rst index 53fa5bead687..85656bea8af2 100644 --- a/docs/source/metrics.rst +++ b/docs/source/metrics.rst @@ -239,32 +239,12 @@ devices. Therefore, once collected, these internal variables can be used to comp Complete list of metrics ------------------------ - - :class:`~ignite.metrics.Accuracy` - - :class:`~ignite.metrics.Average` - - :class:`~ignite.metrics.ConfusionMatrix` - - :meth:`~ignite.metrics.DiceCoefficient` - - :class:`~ignite.metrics.EpochMetric` - - :meth:`~ignite.metrics.Fbeta` - - :class:`~ignite.metrics.GeometricAverage` - - :meth:`~ignite.metrics.IoU` - - :meth:`~ignite.metrics.mIoU` - - :class:`~ignite.metrics.Loss` - - :class:`~ignite.metrics.MeanAbsoluteError` - - :class:`~ignite.metrics.MeanPairwiseDistance` - - :class:`~ignite.metrics.MeanSquaredError` - - :class:`~ignite.metrics.Metric` - - :class:`~ignite.metrics.MetricsLambda` - - :class:`~ignite.metrics.Precision` - - :class:`~ignite.metrics.Recall` - - :class:`~ignite.metrics.RootMeanSquaredError` - - :class:`~ignite.metrics.RunningAverage` - - :class:`~ignite.metrics.SSIM` - - :class:`~ignite.metrics.TopKCategoricalAccuracy` - - :class:`~ignite.metrics.VariableAccumulation` - - .. currentmodule:: ignite.metrics +.. autosummary:: + :nosignatures: + :autolist: + .. autoclass:: Accuracy .. autoclass:: Average diff --git a/docs/source/utils.rst b/docs/source/utils.rst index 9be48ed37ebc..3063bdb41dc0 100644 --- a/docs/source/utils.rst +++ b/docs/source/utils.rst @@ -5,5 +5,9 @@ Module with helper methods .. currentmodule:: ignite.utils +.. autosummary:: + :nosignatures: + :autolist: + .. automodule:: ignite.utils :members: