code: def split_arg_to_name_type_value(self, args_list):
          
          for arg in args_list:
              arg_type = None
              arg_value = None
  
              has_type = False
              has_value = False
  
              pos_colon = arg.find(':')
              pos_equal = arg.find('=')
  
              if pos_equal > -1:
                  has_value = True
  
              if pos_colon > -1:
                  if not has_value:
                      has_type = True
                  elif pos_equal > pos_colon:  # exception for def foo(arg1=":")
                      has_type = True
  
              if has_value and has_type:
                  arg_name = arg[0:pos_colon].strip()
                  arg_type = arg[pos_colon + 1:pos_equal].strip()
                  arg_value = arg[pos_equal + 1:].strip()
              elif not has_value and has_type:
                  arg_name = arg[0:pos_colon].strip()
                  arg_type = arg[pos_colon + 1:].strip()
              elif has_value and not has_type:
                  arg_name = arg[0:pos_equal].strip()
                  arg_value = arg[pos_equal + 1:].strip()
              else:
                  arg_name = arg.strip()
  
              self.arg_name_list.append(arg_name)
              self.arg_type_list.append(arg_type)
              self.arg_value_list.append(arg_value)
docs: Split argument text to name, type, value.