1481 self.__superMenu.clear() |
1481 self.__superMenu.clear() |
1482 |
1482 |
1483 if self.__device: |
1483 if self.__device: |
1484 hasMip = self.__device.getDeviceData("mip") |
1484 hasMip = self.__device.getDeviceData("mip") |
1485 hasUPip = self.__device.getDeviceData("upip") |
1485 hasUPip = self.__device.getDeviceData("upip") |
|
1486 useLocalMip = self.__device.getDeviceData("local_mip") |
1486 else: |
1487 else: |
1487 hasMip = False |
1488 hasMip = False |
1488 hasUPip = False |
1489 hasUPip = False |
|
1490 useLocalMip = False |
1489 |
1491 |
1490 # prepare the download menu |
1492 # prepare the download menu |
1491 if self.__device: |
1493 if self.__device: |
1492 menuEntries = self.__device.getDownloadMenuEntries() |
1494 menuEntries = self.__device.getDownloadMenuEntries() |
1493 if menuEntries: |
1495 if menuEntries: |
1568 self.tr("Install Package"), lambda: self.__installPackage("mip") |
1570 self.tr("Install Package"), lambda: self.__installPackage("mip") |
1569 ).setEnabled(self.__connected) |
1571 ).setEnabled(self.__connected) |
1570 elif hasUPip: |
1572 elif hasUPip: |
1571 self.__superMenu.addAction( |
1573 self.__superMenu.addAction( |
1572 self.tr("Install Packages"), lambda: self.__installPackage("upip") |
1574 self.tr("Install Packages"), lambda: self.__installPackage("upip") |
|
1575 ).setEnabled(self.__connected) |
|
1576 elif useLocalMip: |
|
1577 self.__superMenu.addAction( |
|
1578 self.tr("Install Package"), lambda: self.__installPackage("local_mip") |
1573 ).setEnabled(self.__connected) |
1579 ).setEnabled(self.__connected) |
1574 self.__superMenu.addSeparator() |
1580 self.__superMenu.addSeparator() |
1575 if not OSUtilities.isWindowsPlatform(): |
1581 if not OSUtilities.isWindowsPlatform(): |
1576 available = self.__mpyCrossAvailable() |
1582 available = self.__mpyCrossAvailable() |
1577 self.__superMenu.addAction( |
1583 self.__superMenu.addAction( |
2123 @param method package management method to be used (one of 'upip' or 'mip') |
2129 @param method package management method to be used (one of 'upip' or 'mip') |
2124 @type str |
2130 @type str |
2125 @exception ValueError raised to indicate an unsupported package management |
2131 @exception ValueError raised to indicate an unsupported package management |
2126 method |
2132 method |
2127 """ |
2133 """ |
|
2134 from .MipLocalInstaller import MipLocalInstaller |
2128 from .MipPackageDialog import MipPackageDialog |
2135 from .MipPackageDialog import MipPackageDialog |
2129 |
2136 |
2130 if method not in ("mip", "upip"): |
2137 if method not in ("local_mip", "mip", "upip"): |
2131 raise ValueError( |
2138 raise ValueError( |
2132 "Unsupported method given. Expected 'mip' or 'upip' but got {0}." |
2139 "Unsupported method given. Expected 'local_mip', 'mip' or 'upip' but" |
|
2140 " got {0}." |
2133 ).format(method) |
2141 ).format(method) |
2134 |
2142 |
2135 if method == "mip": |
2143 if method in ("local_mip", "mip"): |
2136 title = self.tr("Install Package") |
2144 title = self.tr("Install Package") |
2137 dlg = MipPackageDialog(self) |
2145 dlg = MipPackageDialog(self) |
2138 if dlg.exec() == QDialog.DialogCode.Accepted: |
2146 if dlg.exec() == QDialog.DialogCode.Accepted: |
2139 package, version, mpy = dlg.getData() |
2147 package, version, mpy, target, index = dlg.getData() |
2140 with EricOverrideCursor(): |
2148 if method == "mip": |
2141 out, err = self.__device.mipInstall(package, version, mpy) |
2149 with EricOverrideCursor(): |
|
2150 out, err = self.__device.mipInstall( |
|
2151 package, |
|
2152 index=index, |
|
2153 target=target, |
|
2154 version=version, |
|
2155 mpy=mpy, |
|
2156 ) |
|
2157 else: |
|
2158 installer = MipLocalInstaller(self.__device) |
|
2159 with EricOverrideCursor(): |
|
2160 ok = installer.installPackage( |
|
2161 package, |
|
2162 index=index, |
|
2163 target=target, |
|
2164 version=version, |
|
2165 mpy=mpy, |
|
2166 ) |
|
2167 if ok: |
|
2168 out = ( |
|
2169 self.tr("Package '{0}' was installed successfully.") |
|
2170 .format(package) |
|
2171 .encode("utf-8") |
|
2172 ) |
|
2173 err = b"" |
|
2174 else: |
|
2175 out = b"" |
|
2176 err = installer.errorString().encode("utf-8") |
2142 else: |
2177 else: |
2143 return |
2178 return |
2144 elif method == "upip": |
2179 elif method == "upip": |
2145 title = self.tr("Install Packages") |
2180 title = self.tr("Install Packages") |
2146 packagesStr, ok = QInputDialog.getText( |
2181 packagesStr, ok = QInputDialog.getText( |