13<inputType>GAMS</inputType>
16<모델><![CDATA[:model:]]></model>
17<wantgdx><![CDATA[예]]></wantgdx>
18<wantlog><![CDATA[예]]></wantlog>
19<wantlst><![CDATA[예]]></wantlst>
22if__name__ ==
"__main__":
23sys_dir = sys.argv[1]
iflen(sys.argv) > 1
그밖에 없음
24work_dir = sys.argv[2]
iflen(sys.argv) > 2
그밖에 없음
25ws = GamsWorkspace(system_directory=sys_dir,working_directory=work_dir)
30ssl_context = ssl.create_default_context(cafile=certifi.where())
32슬롯 머신 = xmlrpc.client.ServerProxy(
33 "https://슬롯 머신-server.org:3333", 컨텍스트=ssl_context
35 if "NeosServer가 살아있습니다" 아님 에슬롯 머신ping():
36 올림예외(
"슬롯 머신 서버에 연결할 수 없습니다")
39xml = xml.replace(
":범주:",
"MILP")
40xml = xml.replace(
":해결사:",
"CBC")
41 if "NEOS_EMAIL" 에슬롯 머신environ:
42xml = xml.replace(
":이메일:", 슬롯 머신environ[
"NEOS_EMAIL"])
44 상승예외(
"환경 변수 'NEOS_EMAIL'을 찾을 수 없습니다.")
45 함께open(슬롯 머신path.join(ws.working_directory, 모델 +
".gms"),
"r")
asf:
46xml = xml.replace(
":모델:", f.read())
48job_number, 비밀번호 = 슬롯 머신submitJob(xml)
49인쇄(f
"작업 번호: job_number")
50인쇄(f
"작업 비밀번호: password")
53 올림예외(f
"슬롯 머신 서버 오류: 비밀번호")
60결과, 오프셋 = 슬롯 머신getIntermediateResults(job_number, 비밀번호, 오프셋)
61결과 = result.data.decode()
63 if "결과를 작성 중입니다." in결과:
64결과 = 결과.분할(
"결과를 작성 중입니다.", 1)[0]
67status = 슬롯 머신getJobStatus(job_number, 비밀번호)
69result = 슬롯 머신getFinalResults(job_number, 비밀번호)
71f
"job_number-슬롯 머신path.splitext(슬롯 머신path.basename(model + '.gms'))[0].lst",
"w"
73f.write(result.data.decode())
74결과 = 슬롯 머신getOutputFile(job_number, 비밀번호,
"solver-output.zip")
75 와열기(f
"job_number-solver-output.zip",
"wb")
asf: