--- a +++ b/modules/RESTAPI/RAPIManager.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python +import sys +sys.path.insert(0, "/home/skjena/cancerTherapy/modules/RESTAPI/mutationDnnWeb") +import django +from django.conf import settings +#settings.configure() +import os +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mutationDnnWeb.settings") +django.setup() +#os.environ.setdefault("DJANGO_SETTINGS_MODULE", "RESTAPI.mutationDnnWeb.mutationDnnWeb.settings") +#os.environ.setdefault("DJANGO_SETTINGS_MODULE", "RESTAPI.mutationDnnWeb.mutationDnnWeb.settings") +#django.setup() +#os.environ.setdefault("DJANGO_SETTINGS_MODULE", "RESTAPI.mutationDnnWeb.mutationDnnWeb.settings") +#import sys +#sys.path.insert(0, "/home/skjena/cancerTherapy/modules") +#os.environ['DJANGO_SETTINGS_MODULE'] = 'RESTAPI.mutationDnnWeb.mutationDnnWeb.settings' +import socket +from Status.Status import Status +from mutationDnnWeb.models import V1, State, Run, Arguments, Features, Settings +from mutationDnnWeb.serializers import V1Serializer, ArgSerializer, StateSerializer, RunSerializer, FeatureSerializer, SettingsSerializer +from typings.network import Network + +class RAPIManager(): + def __init__(self): + self.status = Status("RAPIManager") + self.djangostatus = self.isRunning() + self.network = Network() + self.networkstate = False + + def getArguments(self): + self.status.message(1, "getArguments(self)") + model = Arguments.objects.get(id=3) + self.network.arguments.learningRate = model.learningRate + self.network.arguments.activation = model.activation + self.network.arguments.regularization = model.regularization + self.network.arguments.regularizationRate = model.regularizationRate + self.network.arguments.problemType = model.problemType + self.status.message(0, "getArguments(self)") + return self.network.arguments + + def getState(self): + self.status.message(1, "getState(self)") + model = State.objects.get(id=1) + self.network.state.batchSize = model.batchSize + self.network.state.noise = model.noise + self.network.state.trainToTestRatio = model.trainToTestRatio + self.network.state.numHiddenLayers = model.numHiddenLayers + self.network.state.networkShape = model.networkShape + + self.status.message(0, "getState(self)") + return self.network.state + + def getFeatures(self): + self.status.message(1, "getFeatures(self)") + model = Features.objects.get(id=1) + self.network.features.cXa = model.cXa + self.network.features.cXg = model.cXg + self.network.features.cXt = model.cXt + self.network.features.tXa = model.tXa + self.network.features.tXg = model.tXg + self.network.features.tXc = model.tXc + + self.status.message(0, "getFeatures(self)") + return self.network.features + + def getRun(self): + self.status.message(1, "getRun(self)") + model = Run.objects.get(id=1) + self.network.run.reset = model.reset + self.network.run.play = model.play + self.network.run.nextButton = model.nextButton + self.network.run.showTestData = model.showTestData + self.network.run.discretize = model.discretize + + self.status.message(0, "getRun(self)") + return self.network.run + + def getSettings(self): + self.status.message(1, "getSettings(self)") + model = Settings.objects.get(id=1) + self.network.settings.dataset = model.dataset + self.network.settings.weights = model.weights + self.network.settings.biases = model.biases + + self.status.message(0, "getSettings(self)") + return self.network.settings + + def populate(self): + if self.djangostatus == False: + self.isRunning() + return self.networkstate + + self.status.message(1, "populate(self)") + self.network.arguments = self.getArguments() + self.network.state = self.getState() + self.network.settings = self.getSettings() + self.network.features = self.getFeatures() + self.network.run = self.getRun() + self.status.message(7) + self.networkstate = True + + self.status.message(0, "populate(self)") + return self.networkstate + def isRunning(self): + self.status.message(1, "isRunning(self)") + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + result = sock.connect_ex(('0.0.0.0',80)) + sock.close() + if result == 0: + self.djangostatus = True + self.status.message(9) + else: + self.djangostatus = False + self.status.message(8) + + self.status.message(0, "isRunning(self)") + return self.djangostatus + +#!/usr/bin/env python