!7824 combine first row of the current file and the last row of the previous file to one file if the first row does not start with "opname"

Merge pull request !7824 from yanghaitao/yht_parse_frameworker
This commit is contained in:
mindspore-ci-bot 2020-10-29 15:14:50 +08:00 committed by Gitee
commit fad40466c6
1 changed files with 35 additions and 10 deletions

View File

@ -473,19 +473,24 @@ class FrameworkParser:
with open(self._save_path, 'w') as save_file:
csv_writer = csv.writer(save_file)
csv_writer.writerow(self._col_names)
pre_graph_info = None
for path in self._framework_path['graph']:
first_row = True
with open(path, 'r') as graph_file:
for graph_info in graph_file:
result = self._parse_one_row_graph_info(graph_info)
task_info = task_cache.get(result[0])
if task_info:
task_info.extend(result)
csv_writer.writerow(task_info)
del task_cache[result[0]]
else:
save_info = [None, None, None]
save_info.extend(result)
csv_writer.writerow(save_info)
if first_row is True:
first_row = False
# The last row of the previous file and the first row of the current file may need
# to be combined to one row
if graph_info.startswith("op_name:") is False:
pre_graph_info = pre_graph_info + graph_info
continue
if pre_graph_info is not None:
self._parse_graph_row_and_save(task_cache, csv_writer, pre_graph_info)
pre_graph_info = graph_info
if pre_graph_info is not None:
self._parse_graph_row_and_save(task_cache, csv_writer, pre_graph_info)
none_list = [None, None, None, None]
for key, value in task_cache.items():
@ -494,6 +499,26 @@ class FrameworkParser:
csv_writer.writerow(value)
os.chmod(self._save_path, stat.S_IREAD | stat.S_IWRITE)
def _parse_graph_row_and_save(self, task_cache, csv_writer, graph_info):
"""
Parse the framework graph row and save the framework information.
Args:
task_cache (dict): The task information cache.
csv_writer (csv): Csv writer.
graph_info (str): Row info of graph.
"""
result = self._parse_one_row_graph_info(graph_info)
task_info = task_cache.get(result[0])
if task_info:
task_info.extend(result)
csv_writer.writerow(task_info)
del task_cache[result[0]]
else:
save_info = [None, None, None]
save_info.extend(result)
csv_writer.writerow(save_info)
def _parse_one_row_graph_info(self, row_info):
"""
Parse the graph information in one row.