Skip to content

Commit 3f3da71

Browse files
committed
Starter code for managing deprecation
* Make functions deprecated using the `@deprecated` decorator * Add arguments to the @deprecated decorator to customize it for each function
1 parent 602d1cb commit 3f3da71

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

ignite/contrib/engines/common.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from ignite.handlers import Checkpoint, DiskSaver, EarlyStopping, TerminateOnNan
3131
from ignite.handlers.checkpoint import BaseSaveHandler
3232
from ignite.metrics import RunningAverage
33+
from ignite.utils import deprecated
3334

3435

3536
def setup_common_training_handlers(
@@ -389,7 +390,7 @@ def setup_visdom_logging(
389390
_setup_logging(logger, trainer, optimizers, evaluators, log_every_iters)
390391
return logger
391392

392-
393+
@deprecated("0.4.2", "0.6.0", ["This is reason 1", "This is reason 2"])
393394
def setup_mlflow_logging(
394395
trainer: Engine,
395396
optimizers: Optional[Union[Optimizer, Dict[str, Optimizer]]] = None,

ignite/utils.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import logging
33
import random
44
from typing import Any, Callable, Optional, Tuple, Type, Union, cast
5+
import functools
56

67
import torch
78

@@ -160,3 +161,24 @@ def manual_seed(seed: int) -> None:
160161
np.random.seed(seed)
161162
except ImportError:
162163
pass
164+
165+
166+
def deprecated(deprecated_in, removed_in=None, reasons=[], raiseWarning=False):
167+
168+
def decorator(func):
169+
func_doc = func.__doc__
170+
171+
@functools.wraps(func)
172+
def wrapper(*args, **kwargs):
173+
if raiseWarning:
174+
raise DeprecationWarning()
175+
return func(*args, **kwargs)
176+
177+
appended_doc = f'.. deprecated:: {deprecated_in}' + ('\n\n\t' if len(reasons) else '')
178+
179+
for reason in reasons:
180+
appended_doc += '\n\t- ' + reason
181+
wrapper.__doc__ = '**Deprecated function**.' + '\n\n ' + func_doc + appended_doc
182+
return wrapper
183+
184+
return decorator

0 commit comments

Comments
 (0)