Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions Orange/utils/addons.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
from collections import namedtuple, defaultdict
from contextlib import closing

from distutils.version import LooseVersion

import Orange.utils.environ

ADDONS_ENTRY_POINT = "orange.addons"
Expand Down Expand Up @@ -157,9 +159,20 @@ def refresh_available_addons(force=False, progress_callback=None):
with closing(open_addons(flag="c")) as addons:
for i, (name, (_, version)) in enumerate(pkg_dict.items()):
installed = addons[name.lower()] if name.lower() in addons else None
# Workaround for PyPI bug
# https://bitbucket.org/pypa/pypi/issues/326/my-package-doesnt-appear-in-the-search
version = max(pypi.package_releases(name), key=LooseVersion)

if force or not installed or installed.available_version != version:
try:
data = pypi.release_data(name, version)

# Skip add-ons that are for Orange 3 only
keywords = data.get('keywords') or ''
if ('orange3 add-on' in keywords and
'orange add-on' not in keywords):
continue

urls = pypi.release_urls(name, version)
release_urls = \
[ReleaseUrl(url["filename"], url["url"],
Expand Down