750 ) |
750 ) |
751 ) |
751 ) |
752 |
752 |
753 return packages |
753 return packages |
754 |
754 |
755 def checkPackageOutdated(self, packageStart, envName, interpreter=None): |
755 def checkPackagesOutdated(self, packageStarts, envName, interpreter=None): |
756 """ |
756 """ |
757 Public method to check, if a group of packages is outdated. |
757 Public method to check, if groups of packages are outdated. |
758 |
758 |
759 @param packageStart start string for package names to be checked |
759 @param packageStarts list of start strings for package names to be checked |
760 (case insensitive) |
760 (case insensitive) |
761 @type str |
761 @type str |
762 @param envName name of the environment to get the packages for |
762 @param envName name of the environment to get the packages for |
763 @type str |
763 @type str |
764 @param interpreter path of an interpreter executable. If this is not |
764 @param interpreter path of an interpreter executable. If this is not |
765 None, it will override the given environment name (defaults to None) |
765 None, it will override the given environment name (defaults to None) |
766 @type str (optional) |
766 @type str (optional) |
767 @return tuple containing a flag indicating outdated packages and the |
767 @return list of tuples containing the package name, installed version |
768 list of tuples containing the package name, installed version |
768 and available version of outdated packages |
769 and available version |
769 @rtype tuple of (str, str, str) |
770 @rtype tuple of (bool, (str, str, str)) |
770 """ |
771 """ |
771 if (bool(envName) or bool(interpreter)) and any(bool(p) for p in packageStarts): |
772 filteredPackages = [] |
|
773 |
|
774 if bool(envName) and bool(packageStart): |
|
775 packages = self.getOutdatedPackages(envName, interpreter=interpreter) |
772 packages = self.getOutdatedPackages(envName, interpreter=interpreter) |
776 filterStr = packageStart.lower() |
773 filterStrings = tuple( |
|
774 start.lower() for start in packageStarts if bool(start) |
|
775 ) |
777 filteredPackages = [ |
776 filteredPackages = [ |
778 p for p in packages if p[0].lower().startswith(filterStr) |
777 p for p in packages if p[0].lower().startswith(filterStrings) |
779 ] |
778 ] |
780 |
779 else: |
781 return bool(filteredPackages), filteredPackages |
780 filteredPackages = [] |
|
781 |
|
782 return filteredPackages |
782 |
783 |
783 def getPackageDetails(self, name, version): |
784 def getPackageDetails(self, name, version): |
784 """ |
785 """ |
785 Public method to get package details using the PyPI JSON interface. |
786 Public method to get package details using the PyPI JSON interface. |
786 |
787 |