22 # Start-of-Header |
22 # Start-of-Header |
23 name = "CxFreeze Plugin" |
23 name = "CxFreeze Plugin" |
24 author = "Detlev Offenbach <detlev@die-offenbachs.de>" |
24 author = "Detlev Offenbach <detlev@die-offenbachs.de>" |
25 autoactivate = True |
25 autoactivate = True |
26 deactivateable = True |
26 deactivateable = True |
27 version = "7.0.0" |
27 version = "7.1.0" |
28 className = "CxFreezePlugin" |
28 className = "CxFreezePlugin" |
29 packageName = "CxFreeze" |
29 packageName = "CxFreeze" |
30 shortDescription = "Show the CxFreeze dialogs." |
30 shortDescription = "Show the CxFreeze dialogs." |
31 longDescription = ( |
31 longDescription = ( |
32 """This plugin implements the CxFreeze dialogs.""" |
32 """This plugin implements the CxFreeze dialogs.""" |
176 |
176 |
177 # step 2: determine the Python variant |
177 # step 2: determine the Python variant |
178 _exePy3 = set() |
178 _exePy3 = set() |
179 versionArgs = ["-c", "import sys; print(sys.version_info[0])"] |
179 versionArgs = ["-c", "import sys; print(sys.version_info[0])"] |
180 for exe in exes: |
180 for exe in exes: |
181 try: |
181 with open(exe, "r") as f: |
182 f = open(exe, "r") |
|
183 line0 = f.readline() |
182 line0 = f.readline() |
184 program = line0.replace("#!", "").strip() |
183 program = line0.replace("#!", "").strip() |
185 process = QProcess() |
184 process = QProcess() |
186 process.start(program, versionArgs) |
185 process.start(program, versionArgs) |
187 process.waitForFinished(5000) |
186 process.waitForFinished(5000) |
188 # get a QByteArray of the output |
187 # get a QByteArray of the output |
189 versionBytes = process.readAllStandardOutput() |
188 versionBytes = process.readAllStandardOutput() |
190 versionStr = str(versionBytes, encoding='utf-8').strip() |
189 versionStr = str(versionBytes, encoding='utf-8').strip() |
191 if versionStr == "3": |
190 if versionStr == "3": |
192 _exePy3.add(exe) |
191 _exePy3.add(exe) |
193 finally: |
|
194 f.close() |
|
195 |
192 |
196 executables = _exePy3 |
193 executables = _exePy3 |
197 |
194 |
198 # sort items, the probably newest topmost |
195 # sort items, the probably newest topmost |
199 executables = list(executables) |
196 executables = list(executables) |
371 return |
368 return |
372 |
369 |
373 from CxFreeze.CxfreezeConfigDialog import CxfreezeConfigDialog |
370 from CxFreeze.CxfreezeConfigDialog import CxfreezeConfigDialog |
374 parms = project.getData('PACKAGERSPARMS', "CXFREEZE") |
371 parms = project.getData('PACKAGERSPARMS', "CXFREEZE") |
375 dlg = CxfreezeConfigDialog(project, exe, parms) |
372 dlg = CxfreezeConfigDialog(project, exe, parms) |
376 if dlg.exec_() == QDialog.Accepted: |
373 if dlg.exec() == QDialog.Accepted: |
377 args, parms = dlg.generateParameters() |
374 args, parms = dlg.generateParameters() |
378 project.setData('PACKAGERSPARMS', "CXFREEZE", parms) |
375 project.setData('PACKAGERSPARMS', "CXFREEZE", parms) |
379 |
376 |
380 # now do the call |
377 # now do the call |
381 from CxFreeze.CxfreezeExecDialog import CxfreezeExecDialog |
378 from CxFreeze.CxfreezeExecDialog import CxfreezeExecDialog |
382 dia = CxfreezeExecDialog("cxfreeze") |
379 dia = CxfreezeExecDialog("cxfreeze") |
383 dia.show() |
380 dia.show() |
384 res = dia.start(args, parms, project.ppath, |
381 res = dia.start(args, parms, project.ppath, |
385 project.getMainScript()) |
382 project.getMainScript()) |
386 if res: |
383 if res: |
387 dia.exec_() |
384 dia.exec() |
388 |
385 |
389 # |
386 # |
390 # eflag: noqa = M801 |
387 # eflag: noqa = M801 |