[Bf-blender-cvs] [65a44d64c14] soc-2017-package_manager: Fix update display, get rid of unnecessary ifs in filters
gandalf3
noreply at git.blender.org
Tue Aug 29 03:53:56 CEST 2017
Commit: 65a44d64c14cb218b6e1c83f147f0085fc753ff3
Author: gandalf3
Date: Mon Aug 28 18:35:10 2017 -0700
Branches: soc-2017-package_manager
https://developer.blender.org/rB65a44d64c14cb218b6e1c83f147f0085fc753ff3
Fix update display, get rid of unnecessary ifs in filters
===================================================================
M release/scripts/modules/bpkg/__init__.py
M release/scripts/modules/bpkg/types.py
M release/scripts/modules/bpkg/utils.py
M release/scripts/startup/bl_ui/space_userpref.py
===================================================================
diff --git a/release/scripts/modules/bpkg/__init__.py b/release/scripts/modules/bpkg/__init__.py
index 7068fc15200..4b1ef156c68 100644
--- a/release/scripts/modules/bpkg/__init__.py
+++ b/release/scripts/modules/bpkg/__init__.py
@@ -41,7 +41,6 @@ def refresh_repository_props():
repo_prop.name = repo.name
repo_prop.enabled = True
repo_prop.url = repo.url
- print(str(repo.filepath))
repo_prop.filepath = str(repo.filepath)
def get_installed_packages(refresh=False) -> list:
diff --git a/release/scripts/modules/bpkg/types.py b/release/scripts/modules/bpkg/types.py
index 077f0516dc0..276df38290c 100644
--- a/release/scripts/modules/bpkg/types.py
+++ b/release/scripts/modules/bpkg/types.py
@@ -318,7 +318,7 @@ class ConsolidatedPackage:
def __init__(self, pkg=None):
self.versions = []
- self.updateable = False
+ # self.updateable = False
if pkg is not None:
self.add_version(pkg)
@@ -372,6 +372,14 @@ class ConsolidatedPackage:
pkg = self.get_latest_version()
return pkg
+ def test_updateable(self) -> bool:
+ """Return true if latest installed version of package is older than latest known version"""
+ latest = self.get_latest_version()
+ latest_installed = self.get_latest_installed_version()
+ if latest is None or latest_installed is None:
+ return False
+ return latest_installed.version < latest.version
+
def add_version(self, newpkg: Package):
"""Adds a package to the collection of versions"""
@@ -387,6 +395,7 @@ class ConsolidatedPackage:
self.versions.append(newpkg)
self.versions.sort(key=lambda v: v.version, reverse=True)
+ # self.updateable = self.test_updateable()
def __iter__(self):
diff --git a/release/scripts/modules/bpkg/utils.py b/release/scripts/modules/bpkg/utils.py
index 2cb4a5bb3a5..416321fb381 100644
--- a/release/scripts/modules/bpkg/utils.py
+++ b/release/scripts/modules/bpkg/utils.py
@@ -2,6 +2,12 @@ from pathlib import Path
import shutil
import logging
+def fmt_version(version_number: tuple) -> str:
+ """Take version number as a tuple and format it as a string"""
+ vstr = str(version_number[0])
+ for component in version_number[1:]:
+ vstr += "." + str(component)
+ return vstr
def format_filename(s: str, ext=None) -> str:
"""Take a string and turn it into a reasonable filename"""
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index f876896b927..5528e4a1469 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -1371,35 +1371,24 @@ class USERPREF_PT_packages(Panel):
#TODO: using lower() for case-insensitive comparison doesn't work for some languages
def match_contains(pkg: Package) -> bool:
- if pkg.name.lower().__contains__(filters['search'].lower()):
- return True
- return False
+ return pkg.name.lower().__contains__(filters['search'].lower())
def match_startswith(pkg: Package) -> bool:
- if pkg.name.lower().startswith(filters['search'].lower()):
- return True
- return False
+ return pkg.name.lower().startswith(filters['search'].lower())
def match_support(pkg: Package) -> bool:
- if set((pkg.support,)).issubset(filters['support']):
- return True
- # else:
- # if {'COMMUNITY'}.issubset(filters['support']):
- # return True
- return False
+ return set((pkg.support,)).issubset(filters['support'])
def match_installstate(metapkg: ConsolidatedPackage) -> bool:
if filters['installstate'] == 'AVAILABLE':
return True
if filters['installstate'] == 'INSTALLED':
- if metapkg.installed:
- return True
+ return metapkg.installed
if filters['installstate'] == 'UPDATES':
- if metapkg.installed:
- if metapkg.get_latest_installed_version().version < metapkg.get_latest_version().version:
- return True
+ return metapkg.installed and metapkg.test_updateable()
+
return False
def match_repositories(metapkg) -> bool:
@@ -1457,10 +1446,10 @@ class USERPREF_PT_packages(Panel):
pkg = metapkg.get_display_version()
if metapkg.installed:
- if metapkg.updateable:
+ if metapkg.test_updateable():
layout.operator(
"package.install",
- text="Update to {}".format(utils.fmt_version(metapkg.get_latest_version().version)),
+ text="Update to {}".format(bpkg.utils.fmt_version(metapkg.get_latest_version().version)),
).package_name=metapkg.name
layout.separator()
@@ -1481,14 +1470,6 @@ class USERPREF_PT_packages(Panel):
).package_name=metapkg.name
# }}}
- def fmt_version(version_number: tuple) -> str:
- """Take version number as a tuple and format it as a string"""
- vstr = str(version_number[0])
- for component in version_number[1:]:
- vstr += "." + str(component)
- return vstr
-
-
def draw_preferences(pkg: Package, layout: bpy.types.UILayout):
"""Draw the package's preferences in the given layout"""
addon_preferences = context.user_preferences.addons[pkg.module_name].preferences
@@ -1576,9 +1557,9 @@ class USERPREF_PT_packages(Panel):
if pkg.location:
draw_metadatum("Location", pkg.location, metacol)
if pkg.version:
- draw_metadatum("Version", fmt_version(pkg.version), metacol)
+ draw_metadatum("Version", bpkg.utils.fmt_version(pkg.version), metacol)
if pkg.blender:
- draw_metadatum("Blender version", fmt_version(pkg.blender), metacol)
+ draw_metadatum("Blender version", bpkg.utils.fmt_version(pkg.blender), metacol)
if pkg.category:
draw_metadatum("Category", pkg.category, metacol)
if pkg.author:
@@ -1610,7 +1591,7 @@ class USERPREF_PT_packages(Panel):
right = spl.column()
right.alignment = 'RIGHT'
- left.label(text=fmt_version(pkg.version))
+ left.label(text=bpkg.utils.fmt_version(pkg.version))
for repo in pkg.repositories:
draw_metadatum("Repository", repo.name, left)
More information about the Bf-blender-cvs
mailing list