10 import contextlib |
10 import contextlib |
11 import html.parser |
11 import html.parser |
12 import os |
12 import os |
13 import textwrap |
13 import textwrap |
14 |
14 |
15 from packaging.specifiers import SpecifierSet |
15 from packaging.specifiers import InvalidSpecifier, SpecifierSet |
16 from PyQt6.QtCore import Qt, QUrl, QUrlQuery, pyqtSlot |
16 from PyQt6.QtCore import Qt, QUrl, QUrlQuery, pyqtSlot |
17 from PyQt6.QtGui import QIcon |
17 from PyQt6.QtGui import QIcon |
18 from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest |
18 from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest |
19 from PyQt6.QtWidgets import ( |
19 from PyQt6.QtWidgets import ( |
20 QAbstractItemView, |
20 QAbstractItemView, |
1868 spec = ( |
1868 spec = ( |
1869 "=={0}".format(dependency["required_version"]) |
1869 "=={0}".format(dependency["required_version"]) |
1870 if dependency["required_version"][0] in "0123456789" |
1870 if dependency["required_version"][0] in "0123456789" |
1871 else dependency["required_version"] |
1871 else dependency["required_version"] |
1872 ) |
1872 ) |
1873 specifierSet = SpecifierSet(specifiers=spec) |
1873 try: |
1874 if not specifierSet.contains(dependency["installed_version"]): |
1874 specifierSet = SpecifierSet(specifiers=spec) |
1875 itm.setIcon( |
1875 if not specifierSet.contains(dependency["installed_version"]): |
|
1876 itm.setIcon( |
|
1877 PipPackagesWidget.DepRequiredVersionColumn, |
|
1878 EricPixmapCache.getIcon("warning"), |
|
1879 ) |
|
1880 except InvalidSpecifier: |
|
1881 itm.setText( |
1876 PipPackagesWidget.DepRequiredVersionColumn, |
1882 PipPackagesWidget.DepRequiredVersionColumn, |
1877 EricPixmapCache.getIcon("warning"), |
1883 dependency["required_version"], |
1878 ) |
1884 ) |
1879 |
1885 |
1880 elif dependency["required_version"].lower() == "any": |
1886 elif dependency["required_version"].lower() == "any": |
1881 itm.setText(PipPackagesWidget.DepRequiredVersionColumn, self.tr("any")) |
1887 itm.setText(PipPackagesWidget.DepRequiredVersionColumn, self.tr("any")) |
1882 |
1888 |