diff --git a/mindspore/common/_decorator.py b/mindspore/common/_decorator.py new file mode 100644 index 0000000000..88d6e0226a --- /dev/null +++ b/mindspore/common/_decorator.py @@ -0,0 +1,37 @@ +# Copyright 2021 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================ +"""Providing decorators.""" + + +def deprecated(version, substitute): + """deprecated warning + + Args: + version (str): version that the operator or function will be deprecated. + substitute (str): the substitute name for deprecated operator or function. + """ + + def decorate(func): + def wrapper(*args, **kwargs): + cls = getattr(args[0], "__class__", None) if args else None + name = cls.__name__ if cls else func.__name__ + print(f"WARNING: '{name}' is deprecated from version {version} and will be removed in a future version, " + f"use '{substitute}' instead.") + ret = func(*args, **kwargs) + return ret + + return wrapper + + return decorate diff --git a/mindspore/ops/operations/control_ops.py b/mindspore/ops/operations/control_ops.py index 053f4eea5c..336c1f42b0 100644 --- a/mindspore/ops/operations/control_ops.py +++ b/mindspore/ops/operations/control_ops.py @@ -14,11 +14,11 @@ # ============================================================================ """control_ops""" - -from ...common import dtype as mstype -from ..._checkparam import Validator as validator -from ..._checkparam import Rel from ..primitive import Primitive, PrimitiveWithInfer, prim_attr_register +from ..._checkparam import Rel +from ..._checkparam import Validator as validator +from ...common import dtype as mstype +from ...common._decorator import deprecated class ControlDepend(Primitive): @@ -32,6 +32,7 @@ class ControlDepend(Primitive): Note: This operation does not work in `PYNATIVE_MODE`. + `ControlDepend` is deprecated from version 1.1 and will be removed in a future version, use `Depend` instead. Args: depend_mode (int): Use 0 for a normal dependency relation and 1 for a user-defined dependency relation. Default: 0. @@ -75,7 +76,7 @@ class ControlDepend(Primitive): [1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.]] """ - + @deprecated("1.1", "Depend") @prim_attr_register def __init__(self, depend_mode=0): """init"""