Mon, 04 May 2020 18:03:59 +0200
Added code to search the executable in virtual environment as well on Windows platforms.
--- a/ChangeLog Wed Jan 01 11:58:55 2020 +0100 +++ b/ChangeLog Mon May 04 18:03:59 2020 +0200 @@ -1,5 +1,9 @@ ChangeLog --------- +Version 6.1.0: +- added code to search the executable in virtual environment as well on + Windows platforms + Version 6.0.13: - bug fixes
--- a/CxFreeze/CxfreezeConfigDialog.py Wed Jan 01 11:58:55 2020 +0100 +++ b/CxFreeze/CxfreezeConfigDialog.py Mon May 04 18:03:59 2020 +0200 @@ -18,8 +18,10 @@ import copy from PyQt5.QtCore import pyqtSlot, QDir, QProcess, QItemSelection -from PyQt5.QtWidgets import QDialog, QListWidgetItem, QFileDialog, \ - QPushButton, QTreeView, QLineEdit, QFileSystemModel +from PyQt5.QtWidgets import ( + QDialog, QListWidgetItem, QFileDialog, QPushButton, QTreeView, QLineEdit, + QFileSystemModel +) from E5Gui import E5FileDialog from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter @@ -271,8 +273,10 @@ # 2. the commandline options # 2.1 general options - if self.parameters['targetDirectory'] != \ - self.defaults['targetDirectory']: + if ( + self.parameters['targetDirectory'] != + self.defaults['targetDirectory'] + ): parms['targetDirectory'] = self.parameters['targetDirectory'] args.append('--target-dir={0}'.format( self.parameters['targetDirectory'])) @@ -288,8 +292,10 @@ args.append('--init-script={0}'.format( self.parameters['initScript'])) parms['applicationIcon'] = self.parameters['applicationIcon'][:] - if self.parameters['applicationIcon'] != \ - self.defaults['applicationIcon']: + if ( + self.parameters['applicationIcon'] != + self.defaults['applicationIcon'] + ): args.append('--icon={0}'.format( self.parameters['applicationIcon'])) parms['script'] = self.parameters['script'][:] @@ -319,13 +325,17 @@ parms['replacePaths'] = self.parameters['replacePaths'][:] args.append('--replace-paths={0}'.format( os.pathsep.join(self.parameters['replacePaths']))) - if self.parameters['includeModules'] != \ - self.defaults['includeModules']: + if ( + self.parameters['includeModules'] != + self.defaults['includeModules'] + ): parms['includeModules'] = self.parameters['includeModules'][:] args.append('--include-modules={0}'.format( ','.join(self.parameters['includeModules']))) - if self.parameters['excludeModules'] != \ - self.defaults['excludeModules']: + if ( + self.parameters['excludeModules'] != + self.defaults['excludeModules'] + ): parms['excludeModules'] = self.parameters['excludeModules'][:] args.append('--exclude-modules={0}'.format( ','.join(self.parameters['excludeModules']))) @@ -589,16 +599,16 @@ self.parameters['optimize'] = 2 # get data of advanced tab - self.parameters['defaultPath'] = \ - self.__splitIt(self.defaultPathEdit.text(), os.pathsep) - self.parameters['includePath'] = \ - self.__splitIt(self.includePathEdit.text(), os.pathsep) - self.parameters['replacePaths'] = \ - self.__splitIt(self.replacePathsEdit.text(), os.pathsep) - self.parameters['includeModules'] = \ - self.__splitIt(self.includeModulesEdit.text(), ',') - self.parameters['excludeModules'] = \ - self.__splitIt(self.excludeModulesEdit.text(), ',') + self.parameters['defaultPath'] = self.__splitIt( + self.defaultPathEdit.text(), os.pathsep) + self.parameters['includePath'] = self.__splitIt( + self.includePathEdit.text(), os.pathsep) + self.parameters['replacePaths'] = self.__splitIt( + self.replacePathsEdit.text(), os.pathsep) + self.parameters['includeModules'] = self.__splitIt( + self.includeModulesEdit.text(), ',') + self.parameters['excludeModules'] = self.__splitIt( + self.excludeModulesEdit.text(), ',') self.parameters['extListFile'] = self.extListFileEdit.text() # get data of the additional files tab
--- a/CxFreeze/CxfreezeExecDialog.py Wed Jan 01 11:58:55 2020 +0100 +++ b/CxFreeze/CxfreezeExecDialog.py Mon May 04 18:03:59 2020 +0200 @@ -313,8 +313,8 @@ try: os.makedirs(dst) except OSError as err: - if err.errno != errno.EEXIST: # it's ok if directory - # already exists + if err.errno != errno.EEXIST: + # it's ok if directory already exists raise err try:
--- a/PluginCxFreeze.e4p Wed Jan 01 11:58:55 2020 +0100 +++ b/PluginCxFreeze.e4p Mon May 04 18:03:59 2020 +0200 @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Project SYSTEM "Project-5.1.dtd"> <!-- eric project file for project PluginCxFreeze --> -<!-- Copyright (C) 2018 Detlev Offenbach, detlev@die-offenbachs.de --> +<!-- Copyright (C) 2020 Detlev Offenbach, detlev@die-offenbachs.de --> <Project version="5.1"> <Language>en</Language> <Hash>e6cc5d1be724a6f9b38cea1b3785946161f4baeb</Hash> @@ -232,6 +232,34 @@ <value> <dict> <key> + <string>AnnotationsChecker</string> + </key> + <value> + <dict> + <key> + <string>MaximumComplexity</string> + </key> + <value> + <int>3</int> + </value> + <key> + <string>MinimumCoverage</string> + </key> + <value> + <int>75</int> + </value> + </dict> + </value> + <key> + <string>BlankLines</string> + </key> + <value> + <tuple> + <int>2</int> + <int>1</int> + </tuple> + </value> + <key> <string>BuiltinsChecker</string> </key> <value> @@ -263,6 +291,19 @@ </dict> </value> <key> + <string>CommentedCodeChecker</string> + </key> + <value> + <dict> + <key> + <string>Aggressive</string> + </key> + <value> + <bool>False</bool> + </value> + </dict> + </value> + <key> <string>CopyrightAuthor</string> </key> <value> @@ -290,7 +331,7 @@ <string>ExcludeMessages</string> </key> <value> - <string>C101, E265, E266, E305, E402, M811, N802, N803, N807, N808, N821, W293, M201</string> + <string>A, C101, E265, E266, E305, E402, M201, M811, N802, N803, N807, N808, N821, W293, W504</string> </value> <key> <string>FixCodes</string> @@ -341,6 +382,12 @@ <int>10</int> </value> <key> + <string>MaxDocLineLength</string> + </key> + <value> + <int>79</int> + </value> + <key> <string>MaxLineLength</string> </key> <value>
--- a/PluginCxFreeze.py Wed Jan 01 11:58:55 2020 +0100 +++ b/PluginCxFreeze.py Mon May 04 18:03:59 2020 +0200 @@ -30,13 +30,14 @@ author = "Detlev Offenbach <detlev@die-offenbachs.de>" autoactivate = True deactivateable = True -version = "6.0.13" +version = "6.1.0" className = "CxFreezePlugin" packageName = "CxFreeze" shortDescription = "Show the CxFreeze dialogs." -longDescription = \ - """This plugin implements the CxFreeze dialogs.""" \ +longDescription = ( + """This plugin implements the CxFreeze dialogs.""" """ CxFreeze is used to generate a distribution package.""" +) needsRestart = False pyqtApi = 2 python2Compatible = True @@ -147,6 +148,18 @@ winreg.KEY_WOW64_64KEY | winreg.KEY_READ, versionStr) if exePath is not None: executables.add(exePath) + + if not executables and majorVersion >= 3: + # check the PATH environment variable if nothing was found + # Python 3 only + path = Utilities.getEnvironmentEntry('PATH') + if path: + dirs = path.split(os.pathsep) + for directory in dirs: + for suffix in (".bat", ".exe"): + exe = os.path.join(directory, "cxfreeze" + suffix) + if os.access(exe, os.X_OK): + executables.add(exe) else: # # Linux, Unix ... @@ -328,8 +341,8 @@ if self.__ui is not None: loc = self.__ui.getLocale() if loc and loc != "C": - locale_dir = \ - os.path.join(os.path.dirname(__file__), "CxFreeze", "i18n") + locale_dir = os.path.join(os.path.dirname(__file__), + "CxFreeze", "i18n") translation = "cxfreeze_{0}".format(loc) translator = QTranslator(None) loaded = translator.load(translation, locale_dir) @@ -358,8 +371,9 @@ return majorVersionStr = project.getProjectLanguage() - exe = {"Python": exePy2, "Python2": exePy2, "Python3": exePy3}\ - .get(majorVersionStr) + exe = {"Python": exePy2, + "Python2": exePy2, + "Python3": exePy3}.get(majorVersionStr) if exe == []: E5MessageBox.critical( self.__ui,