Source code for api.views.common_nninfo_version

import json
from rest_framework.response import Response
from rest_framework.views import APIView
from master.network.nn_common_manager import NNCommonManager
import coreapi
from master.workflow.init.workflow_init_simple import WorkFlowSimpleManager
from common.utils import *
import os

[docs]class CommonNNInfoVersion(APIView): """ """ # TODO:add document sample for swagger (need to update) coreapi_fields = ( coreapi.Field( name='nn_def_list_info_nn_id', required=True, type='string', ), coreapi.Field( name='nn_wf_ver_info', required=True, type='string', ), coreapi.Field( name='condition', required=True, type='string', ), coreapi.Field( name='active_flag', required=True, type='string', ), )
[docs] def post(self, request, nnid): """ Common Network Version Info Post Method --- # Class Name : CommonNNInfoVersion # Description: Structure : nninfo - <version> - batch version need to define version info under network definition """ try: input_data = request.data input_data['nn_id'] = nnid nnManager = NNCommonManager() nn_wf_ver_id = nnManager.get_nn_max_ver(nnid) + 1 input_data['nn_wf_ver_id'] = nn_wf_ver_id return_data = nnManager.insert_nn_wf_info(input_data) return Response(json.dumps(return_data)) except Exception as e: return_data = {"status": "404", "result": str(e)} return Response(json.dumps(return_data))
[docs] def get(self, request, nnid): """ Common Network Version Info Get Method --- # Class Name : CommonNNInfoVersion # Description: Structure : nninfo - <version> - batch version Get version information of selected nnid """ try: return_data = NNCommonManager().get_nn_wf_info(nnid) conv = [] node = WorkFlowSimpleManager().get_train_node() for row in return_data: row["model"] = "N" train_filename = row["train_batch_ver_id"] pred_filename = row["pred_batch_ver_id"] ver = str(row["nn_wf_ver_id"]) model_path = get_model_path(nnid, ver, node) for fn in os.listdir(model_path): fnsplit = fn.split(".") fnsplitName = fnsplit[0] if (fnsplitName == train_filename): row["train_model"] = fn row["train_model_exists"] = "Y" if (fnsplitName == pred_filename): row["pred_model"] = fn row["pred_model_exists"] = "Y" conv.append(row) return Response(json.dumps(conv)) except Exception as e: return_data = {"status": "404", "result": str(e)} return Response(json.dumps(return_data))
[docs] def put(self, request, nnid): """ Common Network Version Info Delete Method --- # Class Name : CommonNNInfoVersion # Description: Structure : nninfo - <version> - batch version Modify seleted nnid's information """ try: return_data = NNCommonManager().update_nn_wf_info(nnid, request.data) return Response(json.dumps(return_data)) except Exception as e: return_data = {"status": "404", "result": str(e)} return Response(json.dumps(return_data))
[docs] def delete(self, request, nnid): """ Common Network Version Info Delete Method --- # Class Name : CommonNNInfoVersion # Description: Structure : nninfo - <version> - batch version delete selected network info and related data """ try: return_data = NNCommonManager().delete_nn_wf_info(request.data) return Response(json.dumps(return_data)) except Exception as e: return_data = {"status": "404", "result": str(e)} return Response(json.dumps(return_data))