[Bf-blender-cvs] [46f5cf2b418] functions: remove code that is not used currently

Jacques Lucke noreply at git.blender.org
Wed Mar 20 13:04:19 CET 2019


Commit: 46f5cf2b418bd722b78e2006e1a33fe7917ccbf0
Author: Jacques Lucke
Date:   Wed Mar 20 12:53:04 2019 +0100
Branches: functions
https://developer.blender.org/rB46f5cf2b418bd722b78e2006e1a33fe7917ccbf0

remove code that is not used currently

===================================================================

D	release/scripts/startup/function_nodes/inferencer.py
D	release/scripts/startup/function_nodes/test_inferencer.py
M	release/scripts/startup/function_nodes/update_sockets.py
M	source/blender/functions/CMakeLists.txt
M	source/blender/functions/FN_core.hpp
D	source/blender/functions/core/type_inferencing.cpp
D	source/blender/functions/core/type_inferencing.hpp
D	source/blender/functions/core/type_relations.cpp
D	source/blender/functions/core/type_relations.hpp

===================================================================

diff --git a/release/scripts/startup/function_nodes/inferencer.py b/release/scripts/startup/function_nodes/inferencer.py
deleted file mode 100644
index e720f1fb179..00000000000
--- a/release/scripts/startup/function_nodes/inferencer.py
+++ /dev/null
@@ -1,171 +0,0 @@
-from . sockets import type_infos
-
-class Inferencer:
-    def __init__(self):
-        self.finalized_ids = dict()
-        self.constraints = set()
-        self.decisions = dict()
-
-    def insert_final_type(self, id, data_type):
-        self.finalized_ids[id] = data_type
-
-    def insert_equality_constraint(self, ids, decision_id=None):
-        constraint = EqualityConstraint(ids, decision_id)
-        self.constraints.add(constraint)
-
-    def insert_list_constraint(self, list_ids, base_ids=tuple(), decision_id=None):
-        constraint = ListConstraint(list_ids, base_ids, decision_id)
-        self.constraints.add(constraint)
-
-    def insert_union_constraint(self, ids, allowed_types, decision_id=None):
-        constraint = UnionConstraint(ids, decision_id, allowed_types)
-        self.constraints.add(constraint)
-
-    def insert_list_or_base_constraint(self, id, base_type, decision_id=None):
-        constraint = ListOrBaseConstraint(id, decision_id, base_type)
-        self.constraints.add(constraint)
-
-    def finalize_id(self, id, data_type):
-        if id in self.finalized_ids:
-            if self.finalized_ids[id] != data_type:
-                msg = f"Conflicting type for {id}: {self.finalized_ids[id]} vs. {data_type}"
-                raise ConflictingTypesError(msg)
-        else:
-            self.finalized_ids[id] = data_type
-
-    def finalize_ids(self, ids, data_type):
-        for id in ids:
-            self.finalize_id(id, data_type)
-
-    def make_decision(self, decision_id, value):
-        if decision_id is None:
-            return
-        assert decision_id not in self.decisions
-        self.decisions[decision_id] = value
-
-    def inference(self):
-        '''
-        Tries to find a solution for all constraints.
-        Raises InferencingError when it is impossible
-        to find a solutions.
-        Returns True, when every id has been mapped to
-        a data type. Otherwise False.
-        '''
-        while len(self.constraints) > 0:
-            handled_constraints = set()
-
-            for constraint in self.constraints:
-                if constraint.try_finalize(self.finalized_ids, self.finalize_ids, self.make_decision):
-                    handled_constraints.add(constraint)
-
-            if len(handled_constraints) == 0:
-                return False
-
-            self.constraints -= handled_constraints
-
-        return True
-
-    def get_final_type(self, id):
-        return self.finalized_ids.get(id, None)
-
-    def get_decisions(self):
-        return self.decisions
-
-
-class Constraint:
-    def try_finalize(self, finalized_ids, do_finalize, make_decision):
-        raise NotImplementedError()
-
-class EqualityConstraint(Constraint):
-    def __init__(self, ids, decision_id):
-        self.ids = set(ids)
-        self.decision_id = decision_id
-
-    def try_finalize(self, finalized_ids, finalize_do, make_decision):
-        for id in self.ids:
-            if id in finalized_ids:
-                data_type = finalized_ids[id]
-                finalize_do(self.ids, data_type)
-                make_decision(self.decision_id, data_type)
-                return True
-        return False
-
-class UnionConstraint(Constraint):
-    def __init__(self, ids, decision_id, allowed_types):
-        self.ids = set(ids)
-        self.decision_id = decision_id
-        self.allowed_types = set(allowed_types)
-
-    def try_finalize(self, finalized_ids, finalize_do, make_decision):
-        for id in self.ids:
-            if id in finalized_ids:
-                data_type = finalized_ids[id]
-                if data_type not in self.allowed_types:
-                    raise InferencingError()
-                finalize_do(self.ids, data_type)
-                make_decision(self.decision_id, data_type)
-                return True
-        return False
-
-class ListConstraint(Constraint):
-    def __init__(self, list_ids, base_ids, decision_id):
-        self.list_ids = set(list_ids)
-        self.base_ids = set(base_ids)
-        self.decision_id = decision_id
-
-    def try_finalize(self, finalized_ids, finalize_do, make_decision):
-        for id in self.list_ids:
-            if id in finalized_ids:
-                list_type = finalized_ids[id]
-                if not type_infos.is_list(list_type):
-                    raise NoListTypeError()
-                base_type = type_infos.to_base(list_type)
-                finalize_do(self.list_ids, list_type)
-                finalize_do(self.base_ids, base_type)
-                make_decision(self.decision_id, base_type)
-                return True
-        for id in self.base_ids:
-            if id in finalized_ids:
-                base_type = finalized_ids[id]
-                if not type_infos.is_base(base_type):
-                    raise NoBaseTypeError()
-                list_type = type_infos.to_list(base_type)
-                finalize_do(self.base_ids, base_type)
-                finalize_do(self.list_ids, list_type)
-                make_decision(self.decision_id, base_type)
-                return True
-        return False
-
-class ListOrBaseConstraint(Constraint):
-    def __init__(self, id, decision_id, base_type):
-        self.id = id
-        self.decision_id = decision_id
-        self.base_type = base_type
-        self.list_type = type_infos.to_list(base_type)
-
-    def try_finalize(self, finalized_ids, finalize_do, make_decision):
-        if self.id in finalized_ids:
-            data_type = finalized_ids[self.id]
-            if data_type == self.base_type:
-                make_decision(self.decision_id, "BASE")
-                return True
-            elif data_type == self.list_type:
-                make_decision(self.decision_id, "LIST")
-                return True
-            else:
-                msg = f"{data_type} is not {self.base_type} or {self.list_type}"
-                raise ConflictingTypesError(msg)
-        return False
-
-
-class InferencingError(Exception):
-    pass
-
-class ConflictingTypesError(InferencingError):
-    pass
-
-class NoListTypeError(InferencingError):
-    pass
-
-class NoBaseTypeError(InferencingError):
-    pass
\ No newline at end of file
diff --git a/release/scripts/startup/function_nodes/test_inferencer.py b/release/scripts/startup/function_nodes/test_inferencer.py
deleted file mode 100644
index 58cc4a11c91..00000000000
--- a/release/scripts/startup/function_nodes/test_inferencer.py
+++ /dev/null
@@ -1,51 +0,0 @@
-import unittest
-from . inferencer import Inferencer, ConflictingTypesError
-
-class TestInferencer(unittest.TestCase):
-    def setUp(self):
-        self.inferencer = Inferencer()
-
-    def test_single_equality(self):
-        self.inferencer.insert_equality_constraint((1, 2))
-        self.inferencer.insert_final_type(1, "Float")
-
-        self.assertTrue(self.inferencer.inference())
-
-        self.assertEqual(self.inferencer.get_final_type(1), "Float")
-        self.assertEqual(self.inferencer.get_final_type(2), "Float")
-
-    def test_multiple_equality(self):
-        self.inferencer.insert_equality_constraint((1, 2, 3))
-        self.inferencer.insert_equality_constraint((3, 4, 5))
-        self.inferencer.insert_final_type(4, "Integer")
-
-        self.assertTrue(self.inferencer.inference())
-        self.assertEqual(self.inferencer.get_final_type(1), "Integer")
-        self.assertEqual(self.inferencer.get_final_type(3), "Integer")
-        self.assertEqual(self.inferencer.get_final_type(5), "Integer")
-
-    def test_find_base(self):
-        self.inferencer.insert_list_constraint((1, ), (2,))
-        self.inferencer.insert_final_type(1, "Float List")
-
-        self.assertTrue(self.inferencer.inference())
-        self.assertEqual(self.inferencer.get_final_type(2), "Float")
-
-    def test_find_list(self):
-        self.inferencer.insert_list_constraint((1, ), (2, ))
-        self.inferencer.insert_final_type(2, "Vector")
-
-        self.assertTrue(self.inferencer.inference())
-        self.assertEqual(self.inferencer.get_final_type(1), "Vector List")
-
-    def test_invalid_equality(self):
-        self.inferencer.insert_equality_constraint((1, 2))
-        self.inferencer.insert_final_type(1, "Float")
-        self.inferencer.insert_final_type(2, "Integer")
-
-        with self.assertRaises(ConflictingTypesError):
-            self.inferencer.inference()
-
-    def test_cannot_finalize_all(self):
-        self.inferencer.insert_list_constraint((1, 2))
-        self.assertFalse(self.inferencer.inference())
diff --git a/release/scripts/startup/function_nodes/update_sockets.py b/release/scripts/startup/function_nodes/update_sockets.py
index a941133bcd5..c013104d225 100644
--- a/release/scripts/startup/function_nodes/update_sockets.py
+++ b/release/scripts/startup/function_nodes/update_sockets.py
@@ -1,6 +1,5 @@
 import bpy
 from . base import FunctionNode, DataSocket
-from . inferencer import Inferencer
 from collections import defaultdict
 from . sockets import type_infos, OperatorSocket, DataSocket
 from pprint import pprint
diff --git a/source/blender/functions/CMakeLists.txt b/source/blender/functions/CMakeLists.txt
index 4bb90c34997..fc5339aca51 100644
--- a/source/blender/functions/CMakeLists.txt
+++ b/source/blender/functions/CMakeLists.txt
@@ -32,10 +32,6 @@ set(SRC
 	core/data_flow_graph.hpp
 	core/data_flow_graph.cpp
 	core/dot_export.cpp
-	core/type_inferencing.hpp
-	core/type_inferencing.cpp
-	core/type_relations.hpp
-	core/type_relations.cpp
 
 	backends/tuple_call/cpp_types.hpp
 	backends/tuple_call/cpp_types.cpp
diff --git a/source/blender/functions/FN_core.hpp b/source/blender/functions/FN_core.hpp
index eec539caab9..47b2e4322d4 100644
--- a/source/blender/functions/FN_core.hpp
+++ b/source/blender/functions/FN_core.hpp
@@ -4,6 +4,4 @@
 #include "core/parameter.hpp"
 #include "core/signature.hpp"
 #include "core/function.hpp"
-#include "core/data_flow_graph.hpp

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list