Publishing 2019 R1 content
[platform/upstream/dldt.git] / model-optimizer / mo / utils / utils.py
index c4f089c..4c1871f 100644 (file)
@@ -1,5 +1,5 @@
 """
- Copyright (c) 2018 Intel Corporation
+ Copyright (c) 2018-2019 Intel Corporation
 
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
@@ -13,8 +13,9 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 """
-
-
+import functools
+import warnings
+import logging as log
 import numpy as np
 
 
@@ -45,3 +46,34 @@ def symm_match_shapes(shape1: np.array, shape2: np.array):
     # Elements with values -1 and 0 in both shapes are just ignored.
     # Other elements should match. Undefined elements can be one side only.
     return match_shapes(shape1, shape2) or match_shapes(shape2, shape1)
+
+
+def deprecated_api(class_name=None):
+    def deprecated(func):
+        @functools.wraps(func)
+        def deprecation_message(*args, **kwargs):
+            warnings.simplefilter('always', DeprecationWarning)  # turn on filter
+            dep_msg = "Call to deprecated function {}. ".format(func.__name__)
+            if class_name is not None:
+                dep_msg += "Please use {}.{} method".format(class_name.__name__, func.__name__)
+            warnings.warn(dep_msg, DeprecationWarning, stacklevel=2)
+            warnings.simplefilter('default', DeprecationWarning)  # reset filter
+            return func(*args, **kwargs)
+
+        return deprecation_message
+
+    return deprecated
+
+
+def array_to_str(node, attr):
+    if not node.has_valid(attr):
+        return None
+    else:
+        return ','.join(map(str, node[attr]))
+
+
+def shrink_str_value(value: np.array, max_symbols=100):
+    value = str(value)
+    if len(value) > max_symbols:
+        value = value.strip('\n')[:max_symbols - 3] + '...'
+    return value