From 119bbca270e0920cc3526c1da1e9340c9271d5ae Mon Sep 17 00:00:00 2001
From: Yaman Umuroglu <maltanar@gmail.com>
Date: Wed, 19 Feb 2020 23:13:25 +0000
Subject: [PATCH] [Wrapper] remove unused set_attribute from ModelWrapper

we use the CustomOp attribute setters for most cases instead
---
 src/finn/core/modelwrapper.py | 38 -----------------------
 tests/test_set_attribute.py   | 57 -----------------------------------
 2 files changed, 95 deletions(-)
 delete mode 100644 tests/test_set_attribute.py

diff --git a/src/finn/core/modelwrapper.py b/src/finn/core/modelwrapper.py
index 473a33c47..e82b2e827 100644
--- a/src/finn/core/modelwrapper.py
+++ b/src/finn/core/modelwrapper.py
@@ -317,41 +317,3 @@ class ModelWrapper:
             self.model.metadata_props.append(metadata_prop)
         else:
             metadata_prop.value = value
-
-    def set_attribute(self, node, attribute_name, value):
-        """Sets a custom node attribute of given name with given value"""
-        """Data types of attributes in onnx are encoded:
-            2 : integer
-            3 : string
-            so in the beginning a dictionary is introduced with the keys
-            to this encryption"""
-        # TO DO: Add additional encryption (i.e. float)
-        data_type_dict = {}
-        data_type_dict["string"] = 3
-        data_type_dict["int"] = 2
-
-        attribute = util.get_by_name(node.attribute, attribute_name)
-        # check if attribute is integer
-        # For encryption see data_type_dict
-        if attribute.type == data_type_dict["int"]:
-            if type(value) is int:
-                attribute.i = value
-            else:
-                raise ValueError(
-                    "Attribute expects integer! {} is of type {}!".format(
-                        value, type(value)
-                    )
-                )
-        elif attribute.type == data_type_dict["string"]:
-            if type(value) is str:
-                attribute.s = value.encode("UTF-8")
-            else:
-                raise ValueError(
-                    "Attribute expects string! {} is of type {}!".format(
-                        value, type(value)
-                    )
-                )
-        else:
-            raise Exception("This datatype is not supported, please add to encryption")
-
-        return attribute
diff --git a/tests/test_set_attribute.py b/tests/test_set_attribute.py
deleted file mode 100644
index 50e379194..000000000
--- a/tests/test_set_attribute.py
+++ /dev/null
@@ -1,57 +0,0 @@
-from onnx import TensorProto, helper
-
-from finn.core.datatype import DataType
-from finn.core.modelwrapper import ModelWrapper
-from finn.util.basic import get_by_name
-
-
-def test_set_attribute():
-    mw = 8
-    mh = 8
-    pe = 4
-    simd = 4
-    idt = odt = wdt = DataType.BIPOLAR
-
-    inp = helper.make_tensor_value_info("inp", TensorProto.FLOAT, [1, mw])
-    outp = helper.make_tensor_value_info("outp", TensorProto.FLOAT, [1, mh])
-    node_inp_list = ["inp", "weights"]
-
-    FCLayer_node = helper.make_node(
-        "StreamingFCLayer_Batch",
-        node_inp_list,
-        ["outp"],
-        domain="finn",
-        backend="",
-        code_gen_dir="",
-        executable_path="",
-        resType="ap_resource_lut()",
-        MW=0,
-        MH=mh,
-        SIMD=simd,
-        PE=pe,
-        inputDataType=idt.name,
-        weightDataType=wdt.name,
-        outputDataType=odt.name,
-    )
-    graph = helper.make_graph(
-        nodes=[FCLayer_node], name="fclayer_graph", inputs=[inp], outputs=[outp]
-    )
-
-    model = helper.make_model(graph, producer_name="fclayer-model")
-    model = ModelWrapper(model)
-
-    # test cases
-    value_to_set = "fpgadataflow"
-    model.set_attribute(FCLayer_node, "backend", value_to_set)
-    value = get_by_name(FCLayer_node.attribute, "backend")
-    assert value.s.decode("UTF-8") == value_to_set
-
-    value_to_set = mw
-    model.set_attribute(FCLayer_node, "MW", value_to_set)
-    value = get_by_name(FCLayer_node.attribute, "MW")
-    assert value.i == value_to_set
-
-    value_to_set = idt.name
-    model.set_attribute(FCLayer_node, "inputDataType", value_to_set)
-    value = get_by_name(FCLayer_node.attribute, "inputDataType")
-    assert value.s.decode("UTF-8") == value_to_set
-- 
GitLab