diff options
author | lucaszhao19 | 2020-05-10 20:54:43 +0630 |
---|---|---|
committer | GitHub | 2020-05-10 20:54:43 +0630 |
commit | 8f28a80a8a8346e0f5ddc171e78c79813964eb16 (patch) | |
tree | 13f5150e5b594b09dd4c3946ac2a555b4fb1f19e /container.py | |
parent | 637df5484328008d597615cadb0d219ed7be0a0d (diff) | |
download | Chemical-Simulator-GUI-8f28a80a8a8346e0f5ddc171e78c79813964eb16.tar.gz Chemical-Simulator-GUI-8f28a80a8a8346e0f5ddc171e78c79813964eb16.tar.bz2 Chemical-Simulator-GUI-8f28a80a8a8346e0f5ddc171e78c79813964eb16.zip |
Rename container.py to Container.py
Diffstat (limited to 'container.py')
-rw-r--r-- | container.py | 238 |
1 files changed, 0 insertions, 238 deletions
diff --git a/container.py b/container.py deleted file mode 100644 index 14e3bf0..0000000 --- a/container.py +++ /dev/null @@ -1,238 +0,0 @@ -from OMChem.Flowsheet import Flowsheet -from ComponentSelector import * -from collections import defaultdict -from PyQt5.QtCore import * -from PyQt5.QtWidgets import * -from PyQt5.QtGui import * -from PyQt5.uic import loadUiType -from PyQt5.QtCore import Qt -from PyQt5.QtWidgets import QGraphicsProxyWidget, QGraphicsObject, QGraphicsEllipseItem ,QGraphicsPixmapItem,QApplication, QGraphicsView, QGraphicsScene, QHBoxLayout, QWidget, QLabel -from PyQt5.QtGui import QBrush ,QTransform ,QMouseEvent -import PyQt5.QtCore as QtCore -import PyQt5.QtWidgets as QtWidgets -import datetime -import itertools -import json -import pickle -import os -import sys -from Graphics import * - -class Container(): - def __init__(self,msgbrowser, graphicsView): - self.unit_operations = [] - self.thermo_package = None - self.compounds = None - self.flowsheet = None - self.conn = defaultdict(list) - self.op=defaultdict(list) - self.ip=defaultdict(list) - self.msg = msgbrowser - self.graphicsView = graphicsView - self.msg.setText("") - self.opl=[] - self.result=[] - self.graphics = Graphics(self.unit_operations, self.graphicsView) - self.scene = self.graphics.get_scene() - - def current_time(self): - now = datetime.datetime.now() - time = str(now.hour) + ":" + str(now.minute) + ":" +str(now.second) - return time - - # def updateConn(self,key,value): - # self.conn[key].append(value) - # self.msg.append("<span style=\"color:blue\">["+str(self.current_time())+"]<b> "+key.name+" </b> output is connected to input of<b> "+value.name +" </b></span>") - # - # def connection(self): - # try: - # self.op.clear() - # self.ip.clear() - # self.opl.clear() - # stm = ['MaterialStream','EngStm'] - # for i in self.conn: - # if i.type not in stm: - # self.op[i]=self.conn[i] - # - # for j in range(len(self.conn[i])): - # if self.conn[i][j].type not in stm: - # self.ip[self.conn[i][j]].append(i) - # - # for i in self.op: - # i.connect(InputStms=self.ip[i],OutputStms=self.op[i]) - # - # self.opl.append([self.op[i] for i in self.op]) - # self.opl=flat_list(flat_list(self.opl)) - # except Exception as e: - # print(e) - - # @staticmethod - # def addUnitOpObj(obj): - # self.unit_operations.append(obj) - - def add_unit_operation(self, obj): - box = None - self.obj = obj - self.scene = self.graphics.get_scene() - #self.graphicsView = graphicsView - box = self.graphics.create_node_item(self.obj, self) - self.scene.addItem(box) - box.setPos(2500-30, 2500-30) - - if(obj in self.unit_operations): - pass - else: - self.unit_operations.append(obj) - data = self.unit_operations[:] - data.append(compound_selected) - push('Undo', data) - self.msg.append("<span style=\"color:blue\">["+str(self.current_time())+"]<b> "+obj.name+" </b>is instantiated .""</span>") - - ''' - Deletes the selected item from the canvas and also the objects created for that type. - ''' - def delete(self,l): - for item in l: - self.scene.removeItem(item) - for i in dock_widget_lst: - if i.name == item.name: - i.hide() - del i - break - for i in dock_widget_lst: - print(i.name) - print("delete ", dock_widget_lst) - if hasattr(item,'Input'): - for x in item.input: - if x.new_line: - self.scene.removeItem(x.new_line) - del x.new_line - if x.otherLine: - self.scene.removeItem(x.otherLine) - del x.otherLine - if hasattr(item,'Output'): - for x in item.output: - if x.new_line: - self.scene.removeItem(x.new_line) - del x.new_line - if x.otherLine: - self.scene.removeItem(x.otherLine) - del x.otherLine - if hasattr(item,'obj'): - self.unit_operations.remove(item.obj) - for k in list(self.conn): - if item.obj==k: - del self.conn[k] - elif item.obj in self.conn[k]: - self.conn[k].remove(item.obj) - self.msg.append("<span style=\"color:blue\">["+str(self.current_time())+"]<b> "+item.obj.name+" </b>is deleted .""</span>") - del item.obj - del item - - clean_file('Redo') - data = self.unit_operations[:] - data.append(compound_selected) - push('Undo', data) - - def fetch_object(self,name): - for i in self.unit_operations: - if(i.name==name): - return i - - def add_aompounds(self,comp): - self.compounds = comp - - def add_thermo_package(self,thermo): - self.thermo_package = thermo - - def msg_browser(self): - std = self.flowsheet.stdout.decode("utf-8") - if(std): - stdout = str(std) - stdout = stdout.replace("\n","<br/>") - self.msg.append("<span style=\"color:green\">"+stdout+"</span>") - - stde = self.flowsheet.stderr.decode("utf-8") - if(stde): - stdout = str(stde) - stdout = stdout.replace("\n","<br/>") - self.msg.append("<span style=\"color:red\">"+stdout+"</span>") - - def simulate(self,mode): - print("SIMULATE") - print(mode) - self.compounds = compound_selected - self.flowsheet = Flowsheet() - self.flowsheet.add_compound_list(self.compounds) - print("######## connection master#########\n",self.conn) - for i in self.unit_operations : - print("here",i) - self.flowsheet.add_unit_operations(i) - - if mode=='SM': - self.msg.append("<span>["+str(self.current_time())+"] Simulating in <b>Sequential</b> mode ... </span>") - self.flowsheet.simulate_SM(self.ip,self.op) - self.msg_browser() - self.result=self.flowsheet.result_data - print("under SEQ mode simulation") - elif mode=='EQN': - self.msg.append("<span>["+str(self.current_time())+"] Simulating in <b>equation</b> mode ... </span>") - self.flowsheet.simulate_EQN() - self.msg_browser() - self.result=self.flowsheet.result_data - print("under Eqn mode simulation") - - DockWidget.show_result(NodeItem.get_dock_widget()) - -def flat_list(lst): - flat_lst=[] - for sublist in lst: - for item in sublist: - flat_lst.append(item) - return flat_lst - -def push(file_name, data): - with open(f"{file_name}.dat", "ab") as obj: - pickle.dump(data, obj) - -def clean_file(file_name): - with open(f"{file_name}.dat", "wb") as clean: - pass - -def pop(file_name): - last_command = None - if os.stat(f"{file_name}.dat").st_size != 0: - commands = [] - with open(f"{file_name}.dat", "rb") as objs: - while True: - try: - command = pickle.load(objs) - commands.append(command) - except EOFError: - break - - last_command = commands[-1] - commands.remove(commands[-1]) - if len(commands) != 0: - with open(f"{file_name}.dat", "wb") as updated_data: - for i in range(len(commands)): - pickle.dump(commands[i], updated_data) - else: - clean_file(file_name) - - return last_command - -def get_last_list(file_name): - commands = [] - if os.stat(f"{file_name}.dat").st_size != 0: - with open(f"{file_name}.dat", "rb") as objs: - while True: - try: - command = pickle.load(objs) - commands.append(command) - except EOFError: - break - if len(commands) is not 0: - return commands[-1] - else: - return None
\ No newline at end of file |