upgrade: Use flatten_list() which is ~9x faster than sum() construct
This commit is contained in:
@@ -128,9 +128,7 @@ def upgrade(A=[], repo=None):
|
|||||||
|
|
||||||
# Force upgrading of installed but replaced packages or else they will be removed (they are obsoleted also).
|
# Force upgrading of installed but replaced packages or else they will be removed (they are obsoleted also).
|
||||||
# This is not wanted for a replaced driver package (eg. nvidia-X).
|
# This is not wanted for a replaced driver package (eg. nvidia-X).
|
||||||
#
|
A |= set(pisi.util.flatten_list(replaces.values()))
|
||||||
# sum(array, []) is a nice trick to flatten an array of arrays
|
|
||||||
A |= set(sum(replaces.values(), []))
|
|
||||||
|
|
||||||
A |= upgrade_base(A)
|
A |= upgrade_base(A)
|
||||||
|
|
||||||
@@ -148,7 +146,6 @@ def upgrade(A=[], repo=None):
|
|||||||
ctx.ui.info(_('No packages to upgrade.'))
|
ctx.ui.info(_('No packages to upgrade.'))
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
ctx.ui.debug('A = %s' % str(A))
|
ctx.ui.debug('A = %s' % str(A))
|
||||||
|
|
||||||
if not ctx.config.get_option('ignore_dependency'):
|
if not ctx.config.get_option('ignore_dependency'):
|
||||||
@@ -172,7 +169,8 @@ def upgrade(A=[], repo=None):
|
|||||||
|
|
||||||
needs_confirm = check_update_actions(order)
|
needs_confirm = check_update_actions(order)
|
||||||
|
|
||||||
if set(order) - A_0 - set(sum(replaces.values(), [])):
|
# NOTE: replaces.values() was already flattened above, it can be reused
|
||||||
|
if set(order) - A_0 - set(pisi.util.flatten_list(replaces.values())):
|
||||||
ctx.ui.warning(_("There are extra packages due to dependencies."))
|
ctx.ui.warning(_("There are extra packages due to dependencies."))
|
||||||
needs_confirm = True
|
needs_confirm = True
|
||||||
|
|
||||||
@@ -219,7 +217,7 @@ def plan_upgrade(A, force_replaced=True, replaces=None):
|
|||||||
G_f = pgraph.PGraph(packagedb) # construct G_f
|
G_f = pgraph.PGraph(packagedb) # construct G_f
|
||||||
|
|
||||||
A = set(A)
|
A = set(A)
|
||||||
|
|
||||||
# Force upgrading of installed but replaced packages or else they will be removed (they are obsoleted also).
|
# Force upgrading of installed but replaced packages or else they will be removed (they are obsoleted also).
|
||||||
# This is not wanted for a replaced driver package (eg. nvidia-X).
|
# This is not wanted for a replaced driver package (eg. nvidia-X).
|
||||||
#
|
#
|
||||||
@@ -228,7 +226,7 @@ def plan_upgrade(A, force_replaced=True, replaces=None):
|
|||||||
if force_replaced:
|
if force_replaced:
|
||||||
if replaces is None:
|
if replaces is None:
|
||||||
replaces = packagedb.get_replaces()
|
replaces = packagedb.get_replaces()
|
||||||
A |= set(sum(replaces.values(), []))
|
A |= set(pisi.util.flatten_list(replaces.values()))
|
||||||
|
|
||||||
# find the "install closure" graph of G_f by package
|
# find the "install closure" graph of G_f by package
|
||||||
# set A using packagedb
|
# set A using packagedb
|
||||||
|
|||||||
Reference in New Issue
Block a user