From 3c641606da5b3ee7dff733541169f84ebbf80482 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Fri, 10 Feb 2017 05:41:06 -0800 Subject: [PATCH 01/11] Revert until we actually get a Linux developer. --- gui/itemStats.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/itemStats.py b/gui/itemStats.py index 0823ce7ff..1fcf5b466 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -859,7 +859,7 @@ class ItemEffects(wx.Panel): elif 'wxMac' in wx.PlatformInfo: os.system("open " + file_) else: - subprocess.call({"xdg-open": file_}) + subprocess.call(["xdg-open", file_]) def RefreshValues(self, event): self.Freeze() From 514f927a5666e2dcda056f7bb4aadc920bc10cc9 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Fri, 10 Feb 2017 05:50:32 -0800 Subject: [PATCH 02/11] Revert removing call. This class likely needs to be callable. --- service/eveapi.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/service/eveapi.py b/service/eveapi.py index 11a837994..c4ac681a0 100644 --- a/service/eveapi.py +++ b/service/eveapi.py @@ -346,6 +346,19 @@ class _Context(object): # perform arcane attribute majick trick return _Context(self._root, self._path + "/" + this, self.parameters) + def __call__(self, **kw): + if kw: + # specified keywords override contextual ones + for k, v in self.parameters.iteritems(): + if k not in kw: + kw[k] = v + else: + # no keywords provided, just update with contextual ones. + kw.update(self.parameters) + + # now let the root context handle it further + return self._root(self._path, **kw) + class _AuthContext(_Context): def character(self, characterID): From f610f525bac26cbd0e33aed1ed0ee42989db1ec3 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Fri, 10 Feb 2017 06:44:40 -0800 Subject: [PATCH 03/11] Use getattr directly, insead of doing a check then setting it (yay for defaults) --- gui/builtinViews/fittingView.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 8e1342768..3584f869f 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -406,13 +406,10 @@ class FittingView(d.Display): if mod1.slot != mod2.slot: return - if not getattr(mod2, "modPosition"): - self.mods.modPosition = mod2.modPosition = dstRow - if clone and mod2.isEmpty: - sFit.cloneModule(self.mainFrame.getActiveFit(), srcIdx, mod2.modPosition) + sFit.cloneModule(self.mainFrame.getActiveFit(), srcIdx, getattr(mod2, "modPosition", dstRow)) else: - sFit.swapModules(self.mainFrame.getActiveFit(), srcIdx, mod2.modPosition) + sFit.swapModules(self.mainFrame.getActiveFit(), srcIdx, getattr(mod2, "modPosition", dstRow)) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit())) From cdabd83afe800b5e4b92c0662d09faf2b93d380d Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Fri, 10 Feb 2017 07:19:33 -0800 Subject: [PATCH 04/11] Remove old init --- gui/boosterView.py | 1 - gui/builtinViews/fittingView.py | 1 - gui/cargoView.py | 1 - gui/commandView.py | 1 - gui/droneView.py | 1 - gui/fighterView.py | 1 - gui/projectedView.py | 1 - 7 files changed, 7 deletions(-) diff --git a/gui/boosterView.py b/gui/boosterView.py index 8b9209339..9de3ffd75 100644 --- a/gui/boosterView.py +++ b/gui/boosterView.py @@ -30,7 +30,6 @@ from service.fit import Fit class BoosterViewDrop(wx.PyDropTarget): def __init__(self, dropFn, *args, **kwargs): super(BoosterViewDrop, self).__init__(*args, **kwargs) - wx.PyDropTarget.__init__(self) self.dropFn = dropFn # this is really transferring an EVE itemID self.dropData = wx.PyTextDataObject() diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 3584f869f..3a9459c97 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -101,7 +101,6 @@ FitSpawner.register() class FittingViewDrop(wx.PyDropTarget): def __init__(self, dropFn, *args, **kwargs): super(FittingViewDrop, self).__init__(*args, **kwargs) - wx.PyDropTarget.__init__(self) self.dropFn = dropFn # this is really transferring an EVE itemID self.dropData = wx.PyTextDataObject() diff --git a/gui/cargoView.py b/gui/cargoView.py index e50f68354..d997afa79 100644 --- a/gui/cargoView.py +++ b/gui/cargoView.py @@ -30,7 +30,6 @@ from service.market import Market class CargoViewDrop(wx.PyDropTarget): def __init__(self, dropFn, *args, **kwargs): super(CargoViewDrop, self).__init__(*args, **kwargs) - wx.PyDropTarget.__init__(self) self.dropFn = dropFn # this is really transferring an EVE itemID self.dropData = wx.PyTextDataObject() diff --git a/gui/commandView.py b/gui/commandView.py index fc0f1de47..38dec46c9 100644 --- a/gui/commandView.py +++ b/gui/commandView.py @@ -43,7 +43,6 @@ class DummyEntry(object): class CommandViewDrop(wx.PyDropTarget): def __init__(self, dropFn, *args, **kwargs): super(CommandViewDrop, self).__init__(*args, **kwargs) - wx.PyDropTarget.__init__(self) self.dropFn = dropFn # this is really transferring an EVE itemID self.dropData = wx.PyTextDataObject() diff --git a/gui/droneView.py b/gui/droneView.py index 5c6c44db4..cb08f8d1d 100644 --- a/gui/droneView.py +++ b/gui/droneView.py @@ -32,7 +32,6 @@ from service.market import Market class DroneViewDrop(wx.PyDropTarget): def __init__(self, dropFn, *args, **kwargs): super(DroneViewDrop, self).__init__(*args, **kwargs) - wx.PyDropTarget.__init__(self) self.dropFn = dropFn # this is really transferring an EVE itemID self.dropData = wx.PyTextDataObject() diff --git a/gui/fighterView.py b/gui/fighterView.py index 292b7fb80..2a0a9a682 100644 --- a/gui/fighterView.py +++ b/gui/fighterView.py @@ -34,7 +34,6 @@ from service.market import Market class FighterViewDrop(wx.PyDropTarget): def __init__(self, dropFn, *args, **kwargs): super(FighterViewDrop, self).__init__(*args, **kwargs) - wx.PyDropTarget.__init__(self) self.dropFn = dropFn # this is really transferring an EVE itemID self.dropData = wx.PyTextDataObject() diff --git a/gui/projectedView.py b/gui/projectedView.py index 2447438d9..091c4a94d 100644 --- a/gui/projectedView.py +++ b/gui/projectedView.py @@ -45,7 +45,6 @@ class DummyEntry(object): class ProjectedViewDrop(wx.PyDropTarget): def __init__(self, dropFn, *args, **kwargs): super(ProjectedViewDrop, self).__init__(*args, **kwargs) - wx.PyDropTarget.__init__(self) self.dropFn = dropFn # this is really transferring an EVE itemID self.dropData = wx.PyTextDataObject() From 6b37e2c9737ea9d8585e22710aa56cad9fd08888 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Fri, 10 Feb 2017 10:09:11 -0800 Subject: [PATCH 05/11] More clean handling of possibly missing attributes. Thanks @blitzmann! --- gui/builtinViews/fittingView.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 3a9459c97..9235eb7cb 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -405,12 +405,15 @@ class FittingView(d.Display): if mod1.slot != mod2.slot: return - if clone and mod2.isEmpty: - sFit.cloneModule(self.mainFrame.getActiveFit(), srcIdx, getattr(mod2, "modPosition", dstRow)) - else: - sFit.swapModules(self.mainFrame.getActiveFit(), srcIdx, getattr(mod2, "modPosition", dstRow)) + if getattr(mod2, "modPosition"): + if clone and mod2.isEmpty: + sFit.cloneModule(self.mainFrame.getActiveFit(), srcIdx, mod2.modPosition) + else: + sFit.swapModules(self.mainFrame.getActiveFit(), srcIdx, mod2.modPosition) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit())) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit())) + else: + logger.error("Missing module position for: %s", str(getattr(mod2, "ID", "Unknown"))) def generateMods(self): """ From 0fc45ead6e27955eaef7f4062000ba6cc457d119 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Fri, 10 Feb 2017 11:16:51 -0800 Subject: [PATCH 06/11] Catch missing import --- gui/builtinViews/fittingView.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 9235eb7cb..45be46514 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -34,6 +34,7 @@ from gui.bitmapLoader import BitmapLoader import gui.builtinViews.emptyView from gui.utils.exportHtml import exportHtml from logging import getLogger +from gui.chromeTabs import EVT_NOTEBOOK_PAGE_CHANGED from service.fit import Fit from service.market import Market @@ -159,7 +160,7 @@ class FittingView(d.Display): self.Bind(wx.EVT_SHOW, self.OnShow) self.Bind(wx.EVT_MOTION, self.OnMouseMove) self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow) - self.parent.Bind(gui.chromeTabs.EVT_NOTEBOOK_PAGE_CHANGED, self.pageChanged) + self.parent.Bind(EVT_NOTEBOOK_PAGE_CHANGED, self.pageChanged) def OnLeaveWindow(self, event): self.SetToolTip(None) @@ -208,7 +209,7 @@ class FittingView(d.Display): wx.PostEvent(self.mainFrame, gui.shipBrowser.FitSelected(fitID=fitID)) def Destroy(self): - self.parent.Unbind(gui.chromeTabs.EVT_NOTEBOOK_PAGE_CHANGED, handler=self.pageChanged) + self.parent.Unbind(EVT_NOTEBOOK_PAGE_CHANGED, handler=self.pageChanged) self.mainFrame.Unbind(GE.FIT_CHANGED, handler=self.fitChanged) self.mainFrame.Unbind(gui.shipBrowser.EVT_FIT_RENAMED, handler=self.fitRenamed) self.mainFrame.Unbind(gui.shipBrowser.EVT_FIT_REMOVED, handler=self.fitRemoved) From 07a20203036b6d0cd6890176d6735c5223345c4e Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Fri, 10 Feb 2017 11:22:06 -0800 Subject: [PATCH 07/11] Don't try and import an old version and then fail back to the 2.7 version. Just do the 2.7 version. :) --- service/pycrest/eve.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/service/pycrest/eve.py b/service/pycrest/eve.py index 56b353ad4..789be7912 100644 --- a/service/pycrest/eve.py +++ b/service/pycrest/eve.py @@ -12,10 +12,7 @@ import config from service.pycrest.compat import bytes_, text_ from service.pycrest.errors import APIException -try: - from urllib.parse import urlparse, urlunparse, parse_qsl -except ImportError: # pragma: no cover - from urlparse import urlparse, urlunparse, parse_qsl +from urlparse import urlparse, urlunparse, parse_qsl try: import pickle From 73cc17ce722520e84d4cd593666fc6729d259363 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Fri, 10 Feb 2017 11:29:52 -0800 Subject: [PATCH 08/11] Clean up some more import statements --- gui/chromeTabs.py | 3 ++- gui/graphFrame.py | 2 +- pyfa.py | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gui/chromeTabs.py b/gui/chromeTabs.py index d4b50b713..3265b8d8a 100644 --- a/gui/chromeTabs.py +++ b/gui/chromeTabs.py @@ -1127,8 +1127,9 @@ class PFTabsContainer(wx.Panel): color = wx.Colour(0, 0, 0) brush = wx.Brush(color) - # noinspection PyPackageRequirements + # noinspection PyPackageRequirements,PyUnresolvedReferences,PyUnresolvedReferences,PyUnresolvedReferences from Carbon.Appearance import kThemeBrushDialogBackgroundActive + # noinspection PyUnresolvedReferences brush.MacSetTheme(kThemeBrushDialogBackgroundActive) else: color = wx.SystemSettings_GetColour(wx.SYS_COLOUR_3DFACE) diff --git a/gui/graphFrame.py b/gui/graphFrame.py index df43b2cb5..8ab26d2c7 100644 --- a/gui/graphFrame.py +++ b/gui/graphFrame.py @@ -59,7 +59,7 @@ class GraphFrame(wx.Frame): from matplotlib.figure import Figure enabled = True except ImportError: - mpl = Canvas = Figure = None + matplotlib = mpl = FigureCanvasWxAgg = Canvas = Figure = None enabled = False self.legendFix = False diff --git a/pyfa.py b/pyfa.py index f89677534..6453d373e 100755 --- a/pyfa.py +++ b/pyfa.py @@ -59,6 +59,7 @@ if not hasattr(sys, 'frozen'): try: import wxversion except ImportError: + wxversion = None print("Cannot find wxPython\nYou can download wxPython (2.8+) from http://www.wxpython.org/") sys.exit(1) @@ -89,6 +90,7 @@ if not hasattr(sys, 'frozen'): print("Unknown sqlalchemy version string format, skipping check") except ImportError: + sqlalchemy = None print("Cannot find sqlalchemy.\nYou can download sqlalchemy (0.6+) from http://www.sqlalchemy.org/") sys.exit(1) @@ -97,6 +99,7 @@ if not hasattr(sys, 'frozen'): # noinspection PyPackageRequirements import dateutil.parser # noqa - Copied import statement from service/update.py except ImportError: + dateutil = None print("Cannot find python-dateutil.\nYou can download python-dateutil from https://pypi.python.org/pypi/python-dateutil") sys.exit(1) From 2b45a16872ab1b09268a00f37fbadf859e23f947 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Fri, 10 Feb 2017 11:50:04 -0800 Subject: [PATCH 09/11] Refactor most of the shadowing from outer scopes. This is a super simple change, just changing the variable used inside (mostly) lambdas. --- eos/graph/fitDps.py | 2 +- eos/modifiedAttributeDict.py | 6 +++--- eos/saveddata/booster.py | 10 +++++----- eos/saveddata/cargo.py | 6 +++--- eos/saveddata/character.py | 8 ++++---- eos/saveddata/drone.py | 10 +++++----- eos/saveddata/fighter.py | 8 ++++---- eos/saveddata/fit.py | 10 +++++----- eos/saveddata/implant.py | 6 +++--- eos/saveddata/module.py | 6 +++--- eos/saveddata/user.py | 8 ++++---- gui/builtinViews/fittingView.py | 2 +- gui/itemStats.py | 6 +++--- gui/shipBrowser.py | 4 ++-- gui/utils/exportHtml.py | 10 +++++----- 15 files changed, 51 insertions(+), 51 deletions(-) diff --git a/eos/graph/fitDps.py b/eos/graph/fitDps.py index a13a41cc5..221cbb3a1 100644 --- a/eos/graph/fitDps.py +++ b/eos/graph/fitDps.py @@ -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: diff --git a/eos/modifiedAttributeDict.py b/eos/modifiedAttributeDict.py index c09b8f59a..757d8a3d1 100644 --- a/eos/modifiedAttributeDict.py +++ b/eos/modifiedAttributeDict.py @@ -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 diff --git a/eos/saveddata/booster.py b/eos/saveddata/booster.py index 97a90cde0..0798175d7 100644 --- a/eos/saveddata/booster.py +++ b/eos/saveddata/booster.py @@ -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) diff --git a/eos/saveddata/cargo.py b/eos/saveddata/cargo.py index 4b82dfc33..70bb150c9 100644 --- a/eos/saveddata/cargo.py +++ b/eos/saveddata/cargo.py @@ -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 diff --git a/eos/saveddata/character.py b/eos/saveddata/character.py index 142166041..0557dca08 100644 --- a/eos/saveddata/character.py +++ b/eos/saveddata/character.py @@ -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) diff --git a/eos/saveddata/drone.py b/eos/saveddata/drone.py index d0e8511f5..9eaf9fc65 100644 --- a/eos/saveddata/drone.py +++ b/eos/saveddata/drone.py @@ -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) diff --git a/eos/saveddata/fighter.py b/eos/saveddata/fighter.py index 1e3e5f137..cc363ef0f 100644 --- a/eos/saveddata/fighter.py +++ b/eos/saveddata/fighter.py @@ -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): diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 9d79930f2..135423c1f 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -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. diff --git a/eos/saveddata/implant.py b/eos/saveddata/implant.py index 837642ca6..b2185542a 100644 --- a/eos/saveddata/implant.py +++ b/eos/saveddata/implant.py @@ -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) diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index 993d54765..ba41d559d 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -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) diff --git a/eos/saveddata/user.py b/eos/saveddata/user.py index 8c3905a0d..baf09d9f3 100644 --- a/eos/saveddata/user.py +++ b/eos/saveddata/user.py @@ -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) diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 45be46514..2c6c926dc 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -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 diff --git a/gui/itemStats.py b/gui/itemStats.py index 1fcf5b466..e305f1133 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -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) diff --git a/gui/shipBrowser.py b/gui/shipBrowser.py index 6ccc1059b..9822c699d 100644 --- a/gui/shipBrowser.py +++ b/gui/shipBrowser.py @@ -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() diff --git a/gui/utils/exportHtml.py b/gui/utils/exportHtml.py index 023d18cce..802a8358b 100644 --- a/gui/utils/exportHtml.py +++ b/gui/utils/exportHtml.py @@ -169,7 +169,7 @@ class exportHtmlThread(threading.Thread): """ % (time.time(), dnaUrl, localDate) HTML += '
    \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) From 8c7682c6d46cce0c9668e3823c6607812b81c8f8 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Fri, 10 Feb 2017 12:02:23 -0800 Subject: [PATCH 10/11] Little more OCD on cleaning up imports. --- gui/boosterView.py | 6 +++--- gui/builtinStatsViews/rechargeViewFull.py | 4 ++-- gui/builtinStatsViews/resistancesViewFull.py | 4 ++-- gui/builtinStatsViews/resourcesViewFull.py | 4 ++-- gui/fighterView.py | 6 +++--- gui/implantView.py | 4 ++-- service/pycrest/eve.py | 1 + 7 files changed, 15 insertions(+), 14 deletions(-) diff --git a/gui/boosterView.py b/gui/boosterView.py index 9de3ffd75..fe0d802d3 100644 --- a/gui/boosterView.py +++ b/gui/boosterView.py @@ -21,7 +21,7 @@ import wx import gui.display as d import gui.globalEvents as GE -import gui.marketBrowser as mb +import gui.marketBrowser as marketBrowser from gui.builtinViewColumns.state import State from gui.contextMenu import ContextMenu from service.fit import Fit @@ -53,7 +53,7 @@ class BoosterView(d.Display): self.lastFitId = None self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged) - self.mainFrame.Bind(mb.ITEM_SELECTED, self.addItem) + self.mainFrame.Bind(marketBrowser.ITEM_SELECTED, self.addItem) self.Bind(wx.EVT_LEFT_DCLICK, self.removeItem) self.Bind(wx.EVT_LEFT_DOWN, self.click) @@ -76,7 +76,7 @@ class BoosterView(d.Display): """ if data[0] == "market": - wx.PostEvent(self.mainFrame, mb.ItemSelected(itemID=int(data[1]))) + wx.PostEvent(self.mainFrame, marketBrowser.ItemSelected(itemID=int(data[1]))) def kbEvent(self, event): keycode = event.GetKeyCode() diff --git a/gui/builtinStatsViews/rechargeViewFull.py b/gui/builtinStatsViews/rechargeViewFull.py index 9469084ee..21399602e 100644 --- a/gui/builtinStatsViews/rechargeViewFull.py +++ b/gui/builtinStatsViews/rechargeViewFull.py @@ -23,7 +23,7 @@ from gui.statsView import StatsView from gui.bitmapLoader import BitmapLoader from gui.utils.numberFormatter import formatAmount import gui.mainFrame -import gui.builtinStatsViews.resistancesViewFull as rvf +from gui.builtinStatsViews.resistancesViewFull import EFFECTIVE_HP_TOGGLED from service.fit import Fit @@ -34,7 +34,7 @@ class RechargeViewFull(StatsView): StatsView.__init__(self) self.parent = parent self.mainFrame = gui.mainFrame.MainFrame.getInstance() - self.mainFrame.Bind(rvf.EFFECTIVE_HP_TOGGLED, self.toggleEffective) + self.mainFrame.Bind(EFFECTIVE_HP_TOGGLED, self.toggleEffective) self.effective = True def getHeaderText(self, fit): diff --git a/gui/builtinStatsViews/resistancesViewFull.py b/gui/builtinStatsViews/resistancesViewFull.py index d36f1fc24..9946310ec 100644 --- a/gui/builtinStatsViews/resistancesViewFull.py +++ b/gui/builtinStatsViews/resistancesViewFull.py @@ -21,7 +21,7 @@ import wx from gui.statsView import StatsView from gui.bitmapLoader import BitmapLoader -from gui import pygauge as PG +from gui.pygauge import PyGauge from gui.utils.numberFormatter import formatAmount import gui.mainFrame import gui.globalEvents as GE @@ -133,7 +133,7 @@ class ResistancesViewFull(StatsView): bc = pgColour[1] currGColour += 1 - lbl = PG.PyGauge(contentPanel, wx.ID_ANY, 100) + lbl = PyGauge(contentPanel, wx.ID_ANY, 100) lbl.SetMinSize((48, 16)) lbl.SetBackgroundColour(wx.Colour(bc[0], bc[1], bc[2])) lbl.SetBarColour(wx.Colour(fc[0], fc[1], fc[2])) diff --git a/gui/builtinStatsViews/resourcesViewFull.py b/gui/builtinStatsViews/resourcesViewFull.py index bff5dd0e1..3171aaa4b 100644 --- a/gui/builtinStatsViews/resourcesViewFull.py +++ b/gui/builtinStatsViews/resourcesViewFull.py @@ -21,7 +21,7 @@ import wx from gui.statsView import StatsView from gui.bitmapLoader import BitmapLoader -from gui import pygauge as PG +from gui.pygauge import PyGauge import gui.mainFrame from gui.chromeTabs import EVT_NOTEBOOK_PAGE_CHANGED @@ -176,7 +176,7 @@ class ResourcesViewFull(StatsView): # Gauges modif. - Darriele - gauge = PG.PyGauge(parent, wx.ID_ANY, 1) + gauge = PyGauge(parent, wx.ID_ANY, 1) gauge.SetValueRange(0, 0) gauge.SetMinSize((self.getTextExtentW("1.999M/1.99M MW"), 23)) gauge.SetFractionDigits(2) diff --git a/gui/fighterView.py b/gui/fighterView.py index 2a0a9a682..6332817fe 100644 --- a/gui/fighterView.py +++ b/gui/fighterView.py @@ -21,7 +21,7 @@ import wx import gui.globalEvents as GE -import gui.marketBrowser as mb +import gui.marketBrowser as marketBrowser import gui.mainFrame import gui.display as d from gui.builtinViewColumns.state import State @@ -127,7 +127,7 @@ class FighterDisplay(d.Display): self.hoveredColumn = None self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged) - self.mainFrame.Bind(mb.ITEM_SELECTED, self.addItem) + self.mainFrame.Bind(marketBrowser.ITEM_SELECTED, self.addItem) self.Bind(wx.EVT_LEFT_DCLICK, self.removeItem) self.Bind(wx.EVT_LEFT_DOWN, self.click) self.Bind(wx.EVT_KEY_UP, self.kbEvent) @@ -204,7 +204,7 @@ class FighterDisplay(d.Display): if srcRow != -1 and dstRow != -1: self._merge(srcRow, dstRow) elif data[0] == "market": - wx.PostEvent(self.mainFrame, mb.ItemSelected(itemID=int(data[1]))) + wx.PostEvent(self.mainFrame, marketBrowser.ItemSelected(itemID=int(data[1]))) @staticmethod def _merge(src, dst): diff --git a/gui/implantView.py b/gui/implantView.py index 12e27e241..86b9afd96 100644 --- a/gui/implantView.py +++ b/gui/implantView.py @@ -20,7 +20,7 @@ # noinspection PyPackageRequirements import wx import gui.display as d -import gui.marketBrowser as mb +import gui.marketBrowser as marketBrowser import gui.mainFrame from gui.builtinViewColumns.state import State from gui.contextMenu import ContextMenu @@ -90,7 +90,7 @@ class ImplantDisplay(d.Display): self.lastFitId = None self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged) - self.mainFrame.Bind(mb.ITEM_SELECTED, self.addItem) + self.mainFrame.Bind(marketBrowser.ITEM_SELECTED, self.addItem) self.Bind(wx.EVT_LEFT_DCLICK, self.removeItem) self.Bind(wx.EVT_LEFT_DOWN, self.click) self.Bind(wx.EVT_KEY_UP, self.kbEvent) diff --git a/service/pycrest/eve.py b/service/pycrest/eve.py index 789be7912..c96a10885 100644 --- a/service/pycrest/eve.py +++ b/service/pycrest/eve.py @@ -17,6 +17,7 @@ from urlparse import urlparse, urlunparse, parse_qsl try: import pickle except ImportError: # pragma: no cover + # noinspection PyPep8Naming import cPickle as pickle logger = logging.getLogger("pycrest.eve") From 3562577521a27cc5bfa4cf18f4732191a48fc9f9 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Fri, 10 Feb 2017 12:06:23 -0800 Subject: [PATCH 11/11] Tox fix, and catch an extra shadowing --- eos/saveddata/character.py | 4 ++-- gui/graphFrame.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eos/saveddata/character.py b/eos/saveddata/character.py index 0557dca08..4332944c2 100644 --- a/eos/saveddata/character.py +++ b/eos/saveddata/character.py @@ -377,8 +377,8 @@ class Skill(HandledItem): if hasattr(self, "_Skill__ro") and self.__ro is True and key != "characterID": raise ReadOnlyException() - map = {"characterID": lambda val: isinstance(val, int), - "skillID": lambda val: isinstance(val, int)} + map = {"characterID": lambda _val: isinstance(_val, int), + "skillID": lambda _val: isinstance(_val, int)} if not map[key](val): raise ValueError(str(val) + " is not a valid value for " + key) diff --git a/gui/graphFrame.py b/gui/graphFrame.py index 8ab26d2c7..df43b2cb5 100644 --- a/gui/graphFrame.py +++ b/gui/graphFrame.py @@ -59,7 +59,7 @@ class GraphFrame(wx.Frame): from matplotlib.figure import Figure enabled = True except ImportError: - matplotlib = mpl = FigureCanvasWxAgg = Canvas = Figure = None + mpl = Canvas = Figure = None enabled = False self.legendFix = False