Browse Source

get parameter ok

Nicolas Marcq 8 years ago
parent
commit
babf1bd63a
1 changed files with 37 additions and 18 deletions
  1. 37 18
      test_nico.py

+ 37 - 18
test_nico.py

@@ -57,15 +57,16 @@ def _get_list_word_in_order_without_parameter(list_word_in_order):
     """
     print list_word_in_order
     list_word_without_bracket = list()
-    list_parameter_position = list()
-    parameters_name = list()
+    list_parameter_position_and_name = list()
 
     index = 0   # index to count element in the list counting the brackets
-    returned_index = 0  # this is the index where the parameter is placed
+    returned_index = 1  # this is the index where the parameter is placed
     for el in list_word_in_order:
         if _is_containing_opening_bracket(el):
-            list_parameter_position.append(returned_index)
-            parameters_name.append(list_word_in_order[index+1])
+            new_parameter = dict()
+            new_parameter["name"] = list_word_in_order[index+1]
+            new_parameter["index"] = returned_index
+            list_parameter_position_and_name.append(new_parameter)
         else:
             try:
                 # if the next element is not a closing bracket
@@ -82,15 +83,30 @@ def _get_list_word_in_order_without_parameter(list_word_in_order):
         index += 1
 
     print list_word_without_bracket
-    print list_parameter_position
-    print parameters_name
+    print list_parameter_position_and_name
     returned_dict = dict()
     returned_dict["list_word_without_bracket"] = list_word_without_bracket
-    returned_dict["list_parameter_position"] = list_parameter_position
-    returned_dict["parameters_name"] = parameters_name
+    returned_dict["list_parameter_position_and_name"] = list_parameter_position_and_name
     return returned_dict
 
 
+def _get_usefull_words(list_word_user_said, list_word_without_bracket):
+    first_valid_word = list_word_without_bracket[0]
+    last_word_valid_word = list_word_without_bracket[len(list_word_without_bracket)-1]
+    print first_valid_word
+    print last_word_valid_word
+
+    start_index = list_word_user_said.index(first_valid_word)
+    stop_index = list_word_user_said.index(last_word_valid_word)
+
+    new_list = list()
+    for x in (range(start_index, stop_index)):
+        new_list.append(list_word_user_said[int(x)])
+    print new_list
+
+    return new_list
+
+
 def try_match_order_in_synapse(list_word_user_said, list_word_in_order):
     """
     Test if what the user said match an order with brackets
@@ -102,20 +118,23 @@ def try_match_order_in_synapse(list_word_user_said, list_word_in_order):
     returned_dict = _get_list_word_in_order_without_parameter(list_word_in_order)
 
     list_word_without_bracket = returned_dict["list_word_without_bracket"]
-    parameters_position = returned_dict["list_parameter_position"]
+    parameters_position_and_name = returned_dict["list_parameter_position_and_name"]
 
     number_of_word_in_order = len(list_word_without_bracket)
     # if all words in the list of what the user said in in the list of word in the order
     if len(set(list_word_without_bracket).intersection(list_word_user_said)) == number_of_word_in_order:
         # we match the order!
-        print "order matched !"
-        # we can get parameters in the sentence the user said
-        # TODO get parameters
-        # # we create a new list from the order with parameter tag inside
-        # order_list_with_parameter_tag = None
-        # for position in parameters_position:
-        #     order_list_with_parameter_tag = list_word_without_bracket.insert(int(position), "#PARAMETER#")
-        # print order_list_with_parameter_tag
+        print "order matched !"     # we can get parameters in the sentence the user said
+
+        # remove unused word in the list of word spelt by the user.
+        usefull_words_in_user_said_list = _get_usefull_words(list_word_user_said, list_word_without_bracket)
+        val_parameter = dict()
+        for el in parameters_position_and_name:
+            print el["name"]
+            print
+            val_parameter[el["name"]] = list_word_user_said[int(el["index"])]
+
+        print "The dict Var : %s" % val_parameter
 
 
 # make a list of word