Changed the plug-in install dialog such, that a data only package directory (i.e. it doesn't contain an __init__.py file) is not deleted before a new plug-in version or variant is installed.

Sat, 15 Oct 2016 16:22:04 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 15 Oct 2016 16:22:04 +0200
changeset 5234
dc9281cba492
parent 5233
1b31a9acc22d
child 5236
9487d3fbb71e

Changed the plug-in install dialog such, that a data only package directory (i.e. it doesn't contain an __init__.py file) is not deleted before a new plug-in version or variant is installed.

PluginManager/PluginInstallDialog.py file | annotate | diff | comparison | revisions
--- a/PluginManager/PluginInstallDialog.py	Sat Oct 15 14:17:42 2016 +0200
+++ b/PluginManager/PluginInstallDialog.py	Sat Oct 15 16:22:04 2016 +0200
@@ -393,8 +393,14 @@
             # try to unload a plugin with the same name
             self.__pluginManager.unloadPlugin(installedPluginName)
         
-        # uninstall existing plugin first to get clean conditions
-        self.__uninstallPackage(destination, pluginFileName, packageName)
+        # uninstall existing plug-in first to get clean conditions
+        if packageName != "None" and \
+            not os.path.exists(
+                os.path.join(destination, packageName, "__init__.py")):
+            # package directory contains just data, don't delete it
+            self.__uninstallPackage(destination, pluginFileName, "")
+        else:
+            self.__uninstallPackage(destination, pluginFileName, packageName)
         
         # clean sys.modules
         reload_ = self.__pluginManager.removePluginFromSysModules(

eric ide

mercurial