Refactor most of the shadowing from outer scopes. This is a super simple change, just changing the variable used inside (mostly) lambdas.
This commit is contained in:
@@ -38,7 +38,7 @@ class FitDpsGraph(Graph):
|
||||
fit = self.fit
|
||||
total = 0
|
||||
distance = data["distance"] * 1000
|
||||
abssort = lambda val: -abs(val - 1)
|
||||
abssort = lambda _val: -abs(_val - 1)
|
||||
|
||||
for mod in fit.modules:
|
||||
if not mod.isEmpty and mod.state >= State.ACTIVE:
|
||||
|
||||
@@ -212,11 +212,11 @@ class ModifiedAttributeDict(collections.MutableMapping):
|
||||
for penalizedMultipliers in penalizedMultiplierGroups.itervalues():
|
||||
# A quick explanation of how this works:
|
||||
# 1: Bonuses and penalties are calculated seperately, so we'll have to filter each of them
|
||||
l1 = filter(lambda val: val > 1, penalizedMultipliers)
|
||||
l2 = filter(lambda val: val < 1, penalizedMultipliers)
|
||||
l1 = filter(lambda _val: _val > 1, penalizedMultipliers)
|
||||
l2 = filter(lambda _val: _val < 1, penalizedMultipliers)
|
||||
# 2: The most significant bonuses take the smallest penalty,
|
||||
# This means we'll have to sort
|
||||
abssort = lambda val: -abs(val - 1)
|
||||
abssort = lambda _val: -abs(_val - 1)
|
||||
l1.sort(key=abssort)
|
||||
l2.sort(key=abssort)
|
||||
# 3: The first module doesn't get penalized at all
|
||||
|
||||
@@ -133,11 +133,11 @@ class Booster(HandledItem, ItemAttrShortcut):
|
||||
|
||||
@validates("ID", "itemID", "ammoID", "active")
|
||||
def validator(self, key, val):
|
||||
map = {"ID": lambda val: isinstance(val, int),
|
||||
"itemID": lambda val: isinstance(val, int),
|
||||
"ammoID": lambda val: isinstance(val, int),
|
||||
"active": lambda val: isinstance(val, bool),
|
||||
"slot": lambda val: isinstance(val, int) and 1 <= val <= 3}
|
||||
map = {"ID": lambda _val: isinstance(_val, int),
|
||||
"itemID": lambda _val: isinstance(_val, int),
|
||||
"ammoID": lambda _val: isinstance(_val, int),
|
||||
"active": lambda _val: isinstance(_val, bool),
|
||||
"slot": lambda _val: isinstance(_val, int) and 1 <= _val <= 3}
|
||||
|
||||
if not map[key](val):
|
||||
raise ValueError(str(val) + " is not a valid value for " + key)
|
||||
|
||||
@@ -71,9 +71,9 @@ class Cargo(HandledItem, ItemAttrShortcut):
|
||||
|
||||
@validates("fitID", "itemID", "amount")
|
||||
def validator(self, key, val):
|
||||
map = {"fitID": lambda val: isinstance(val, int),
|
||||
"itemID": lambda val: isinstance(val, int),
|
||||
"amount": lambda val: isinstance(val, int)}
|
||||
map = {"fitID": lambda _val: isinstance(_val, int),
|
||||
"itemID": lambda _val: isinstance(_val, int),
|
||||
"amount": lambda _val: isinstance(_val, int)}
|
||||
|
||||
if key == "amount" and val > sys.maxint:
|
||||
val = sys.maxint
|
||||
|
||||
@@ -256,10 +256,10 @@ class Character(object):
|
||||
|
||||
@validates("ID", "name", "apiKey", "ownerID")
|
||||
def validator(self, key, val):
|
||||
map = {"ID": lambda val: isinstance(val, int),
|
||||
"name": lambda val: True,
|
||||
"apiKey": lambda val: val is None or (isinstance(val, basestring) and len(val) > 0),
|
||||
"ownerID": lambda val: isinstance(val, int) or val is None}
|
||||
map = {"ID": lambda _val: isinstance(_val, int),
|
||||
"name": lambda _val: True,
|
||||
"apiKey": lambda _val: _val is None or (isinstance(_val, basestring) and len(_val) > 0),
|
||||
"ownerID": lambda _val: isinstance(_val, int) or _val is None}
|
||||
|
||||
if not map[key](val):
|
||||
raise ValueError(str(val) + " is not a valid value for " + key)
|
||||
|
||||
@@ -186,11 +186,11 @@ class Drone(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
|
||||
|
||||
@validates("ID", "itemID", "chargeID", "amount", "amountActive")
|
||||
def validator(self, key, val):
|
||||
map = {"ID": lambda val: isinstance(val, int),
|
||||
"itemID": lambda val: isinstance(val, int),
|
||||
"chargeID": lambda val: isinstance(val, int),
|
||||
"amount": lambda val: isinstance(val, int) and val >= 0,
|
||||
"amountActive": lambda val: isinstance(val, int) and self.amount >= val >= 0}
|
||||
map = {"ID": lambda _val: isinstance(_val, int),
|
||||
"itemID": lambda _val: isinstance(_val, int),
|
||||
"chargeID": lambda _val: isinstance(_val, int),
|
||||
"amount": lambda _val: isinstance(_val, int) and _val >= 0,
|
||||
"amountActive": lambda _val: isinstance(_val, int) and self.amount >= _val >= 0}
|
||||
|
||||
if not map[key](val):
|
||||
raise ValueError(str(val) + " is not a valid value for " + key)
|
||||
|
||||
@@ -219,10 +219,10 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
|
||||
|
||||
@validates("ID", "itemID", "chargeID", "amount", "amountActive")
|
||||
def validator(self, key, val):
|
||||
map = {"ID": lambda val: isinstance(val, int),
|
||||
"itemID": lambda val: isinstance(val, int),
|
||||
"chargeID": lambda val: isinstance(val, int),
|
||||
"amount": lambda val: isinstance(val, int) and val >= -1,
|
||||
map = {"ID": lambda _val: isinstance(_val, int),
|
||||
"itemID": lambda _val: isinstance(_val, int),
|
||||
"chargeID": lambda _val: isinstance(_val, int),
|
||||
"amount": lambda _val: isinstance(_val, int) and _val >= -1,
|
||||
}
|
||||
|
||||
if not map[key](val):
|
||||
|
||||
@@ -367,9 +367,9 @@ class Fit(object):
|
||||
|
||||
@validates("ID", "ownerID", "shipID")
|
||||
def validator(self, key, val):
|
||||
map = {"ID": lambda val: isinstance(val, int),
|
||||
"ownerID": lambda val: isinstance(val, int) or val is None,
|
||||
"shipID": lambda val: isinstance(val, int) or val is None}
|
||||
map = {"ID": lambda _val: isinstance(_val, int),
|
||||
"ownerID": lambda _val: isinstance(_val, int) or _val is None,
|
||||
"shipID": lambda _val: isinstance(_val, int) or _val is None}
|
||||
|
||||
if not map[key](val):
|
||||
raise ValueError(str(val) + " is not a valid value for " + key)
|
||||
@@ -1044,8 +1044,8 @@ class Fit(object):
|
||||
repairers.append(mod)
|
||||
|
||||
# Sort repairers by efficiency. We want to use the most efficient repairers first
|
||||
repairers.sort(key=lambda mod: mod.getModifiedItemAttr(
|
||||
groupAttrMap[mod.item.group.name]) / mod.getModifiedItemAttr("capacitorNeed"), reverse=True)
|
||||
repairers.sort(key=lambda _mod: _mod.getModifiedItemAttr(
|
||||
groupAttrMap[_mod.item.group.name]) / _mod.getModifiedItemAttr("capacitorNeed"), reverse=True)
|
||||
|
||||
# Loop through every module until we're above peak recharge
|
||||
# Most efficient first, as we sorted earlier.
|
||||
|
||||
@@ -99,9 +99,9 @@ class Implant(HandledItem, ItemAttrShortcut):
|
||||
|
||||
@validates("fitID", "itemID", "active")
|
||||
def validator(self, key, val):
|
||||
map = {"fitID": lambda val: isinstance(val, int),
|
||||
"itemID": lambda val: isinstance(val, int),
|
||||
"active": lambda val: isinstance(val, bool)}
|
||||
map = {"fitID": lambda _val: isinstance(_val, int),
|
||||
"itemID": lambda _val: isinstance(_val, int),
|
||||
"active": lambda _val: isinstance(_val, bool)}
|
||||
|
||||
if not map[key](val):
|
||||
raise ValueError(str(val) + " is not a valid value for " + key)
|
||||
|
||||
@@ -581,9 +581,9 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
|
||||
|
||||
@validates("ID", "itemID", "ammoID")
|
||||
def validator(self, key, val):
|
||||
map = {"ID": lambda val: isinstance(val, int),
|
||||
"itemID": lambda val: val is None or isinstance(val, int),
|
||||
"ammoID": lambda val: isinstance(val, int)}
|
||||
map = {"ID": lambda _val: isinstance(_val, int),
|
||||
"itemID": lambda _val: _val is None or isinstance(_val, int),
|
||||
"ammoID": lambda _val: isinstance(_val, int)}
|
||||
|
||||
if not map[key](val):
|
||||
raise ValueError(str(val) + " is not a valid value for " + key)
|
||||
|
||||
@@ -49,10 +49,10 @@ class User(object):
|
||||
|
||||
@validates("ID", "username", "password", "admin")
|
||||
def validator(self, key, val):
|
||||
map = {"ID": lambda val: isinstance(val, int),
|
||||
"username": lambda val: isinstance(val, basestring),
|
||||
"password": lambda val: isinstance(val, basestring) and len(val) == 96,
|
||||
"admin": lambda val: isinstance(val, bool)}
|
||||
map = {"ID": lambda _val: isinstance(_val, int),
|
||||
"username": lambda _val: isinstance(_val, basestring),
|
||||
"password": lambda _val: isinstance(_val, basestring) and len(_val) == 96,
|
||||
"admin": lambda _val: isinstance(_val, bool)}
|
||||
|
||||
if not map[key](val):
|
||||
raise ValueError(str(val) + " is not a valid value for " + key)
|
||||
|
||||
@@ -431,7 +431,7 @@ class FittingView(d.Display):
|
||||
|
||||
if fit is not None:
|
||||
self.mods = fit.modules[:]
|
||||
self.mods.sort(key=lambda mod: (slotOrder.index(mod.slot), mod.position))
|
||||
self.mods.sort(key=lambda _mod: (slotOrder.index(_mod.slot), _mod.position))
|
||||
|
||||
# Blanks is a list of indexes that mark non-module positions (such
|
||||
# as Racks and tactical Modes. This allows us to skip over common
|
||||
|
||||
@@ -629,17 +629,17 @@ class ItemCompare(wx.Panel):
|
||||
|
||||
if sort is not None:
|
||||
if sort == 0: # Name sort
|
||||
func = lambda x: x.name
|
||||
func = lambda _val: _val.name
|
||||
else:
|
||||
try:
|
||||
# Remember to reduce by 1, because the attrs array
|
||||
# starts at 0 while the list has the item name as column 0.
|
||||
attr = str(self.attrs.keys()[sort - 1])
|
||||
func = lambda x: x.attributes[attr].value if attr in x.attributes else None
|
||||
func = lambda _val: _val.attributes[attr].value if attr in _val.attributes else None
|
||||
except IndexError:
|
||||
# Clicked on a column that's not part of our array (price most likely)
|
||||
self.sortReverse = False
|
||||
func = lambda x: x.attributes['metaLevel'].value if 'metaLevel' in x.attributes else None
|
||||
func = lambda _val: _val.attributes['metaLevel'].value if 'metaLevel' in _val.attributes else None
|
||||
|
||||
self.items = sorted(self.items, key=func, reverse=self.sortReverse)
|
||||
|
||||
|
||||
@@ -685,7 +685,7 @@ class ShipBrowser(wx.Panel):
|
||||
if len(self.categoryList) == 0:
|
||||
# set cache of category list
|
||||
self.categoryList = list(sMkt.getShipRoot())
|
||||
self.categoryList.sort(key=lambda ship: ship.name)
|
||||
self.categoryList.sort(key=lambda _ship: _ship.name)
|
||||
|
||||
# set map & cache of fittings per category
|
||||
for cat in self.categoryList:
|
||||
@@ -928,7 +928,7 @@ class ShipBrowser(wx.Panel):
|
||||
fits = event.fits
|
||||
|
||||
# sort by ship name, then fit name
|
||||
fits.sort(key=lambda fit: (fit.ship.item.name, fit.name))
|
||||
fits.sort(key=lambda _fit: (_fit.ship.item.name, _fit.name))
|
||||
|
||||
self.lastdata = fits
|
||||
self.lpane.Freeze()
|
||||
|
||||
@@ -169,7 +169,7 @@ class exportHtmlThread(threading.Thread):
|
||||
""" % (time.time(), dnaUrl, localDate)
|
||||
HTML += ' <ul data-role="listview" class="ui-listview-outer" data-inset="true" data-filter="true">\n'
|
||||
categoryList = list(sMkt.getShipRoot())
|
||||
categoryList.sort(key=lambda ship: ship.name)
|
||||
categoryList.sort(key=lambda _ship: _ship.name)
|
||||
|
||||
count = 0
|
||||
|
||||
@@ -178,7 +178,7 @@ class exportHtmlThread(threading.Thread):
|
||||
HTMLgroup = ''
|
||||
|
||||
ships = list(sMkt.getShipList(group.ID))
|
||||
ships.sort(key=lambda ship: ship.name)
|
||||
ships.sort(key=lambda _ship: _ship.name)
|
||||
|
||||
# Keep track of how many ships per group
|
||||
groupFits = 0
|
||||
@@ -248,7 +248,7 @@ class exportHtmlThread(threading.Thread):
|
||||
def generateMinimalHTML(self, sMkt, sFit, dnaUrl):
|
||||
""" Generate a minimal HTML version of the fittings, without any javascript or styling"""
|
||||
categoryList = list(sMkt.getShipRoot())
|
||||
categoryList.sort(key=lambda ship: ship.name)
|
||||
categoryList.sort(key=lambda _ship: _ship.name)
|
||||
|
||||
count = 0
|
||||
HTML = ''
|
||||
@@ -256,9 +256,9 @@ class exportHtmlThread(threading.Thread):
|
||||
# init market group string to give ships something to attach to
|
||||
|
||||
ships = list(sMkt.getShipList(group.ID))
|
||||
ships.sort(key=lambda ship: ship.name)
|
||||
ships.sort(key=lambda _ship: _ship.name)
|
||||
|
||||
ships.sort(key=lambda ship: ship.name)
|
||||
ships.sort(key=lambda _ship: _ship.name)
|
||||
|
||||
for ship in ships:
|
||||
fits = sFit.getFitsWithShip(ship.ID)
|
||||
|
||||
Reference in New Issue
Block a user