From ce3b94696a768143ea14b5956322a90e45d558cc Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 4 Nov 2017 18:20:00 -0400 Subject: [PATCH] Make sure getModifiedItemAttr always returns an int, unless otherwise wanting None In py2, you could compare None to an int and it would always be less than. Unfortunately in py3, this is no longer the case. Returning getModifiedItemAttr as 0 allows us to not do a huge refactor. --- eos/modifiedAttributeDict.py | 8 ++++---- eos/saveddata/character.py | 2 +- eos/saveddata/drone.py | 3 ++- eos/saveddata/module.py | 2 +- service/fit.py | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/eos/modifiedAttributeDict.py b/eos/modifiedAttributeDict.py index 6b3837f69..49026635f 100644 --- a/eos/modifiedAttributeDict.py +++ b/eos/modifiedAttributeDict.py @@ -28,23 +28,23 @@ cappingAttrKeyCache = {} class ItemAttrShortcut(object): - def getModifiedItemAttr(self, key, default=None): + def getModifiedItemAttr(self, key, default=0): return_value = self.itemModifiedAttributes.get(key) if return_value is None and default is not None: return_value = default - return return_value + return return_value if default is not None else None class ChargeAttrShortcut(object): - def getModifiedChargeAttr(self, key, default=None): + def getModifiedChargeAttr(self, key, default=0): return_value = self.chargeModifiedAttributes.get(key) if return_value is None and default is not None: return_value = default - return return_value + return return_value if default is not None else None class ModifiedAttributeDict(collections.MutableMapping): diff --git a/eos/saveddata/character.py b/eos/saveddata/character.py index cb29f79a4..b9f3e2a4b 100644 --- a/eos/saveddata/character.py +++ b/eos/saveddata/character.py @@ -385,7 +385,7 @@ class Skill(HandledItem): if key in self.item.attributes: return self.item.attributes[key].value else: - return None + return 0 def calculateModifiedAttributes(self, fit, runTime): if self.__suppressed: # or not self.learned - removed for GH issue 101 diff --git a/eos/saveddata/drone.py b/eos/saveddata/drone.py index 28012f64f..36c969029 100644 --- a/eos/saveddata/drone.py +++ b/eos/saveddata/drone.py @@ -73,7 +73,8 @@ class Drone(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): self.__itemModifiedAttributes.overrides = self.__item.overrides self.__chargeModifiedAttributes = ModifiedAttributeDict() - chargeID = self.getModifiedItemAttr("entityMissileTypeID") + # pheonix todo: check the attribute itself, not the modified. this will always return 0 now. + chargeID = self.getModifiedItemAttr("entityMissileTypeID", None) if chargeID is not None: charge = eos.db.getItem(int(chargeID)) self.__charge = charge diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index f0eb42921..fcec22dd4 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -213,7 +213,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): armorRep = self.getModifiedItemAttr("armorDamageAmount") or 0 shieldRep = self.getModifiedItemAttr("shieldBonus") or 0 if not cycles or (not armorRep and not shieldRep): - return None + return 0 hp = round((armorRep + shieldRep) * cycles) return hp diff --git a/service/fit.py b/service/fit.py index 307aa7141..4c85d6cbb 100644 --- a/service/fit.py +++ b/service/fit.py @@ -255,7 +255,7 @@ class Fit(object): Projected is a recursion flag that is set to reduce recursions into projected fits Basic is a flag to simply return the fit without any other processing """ - pyfalog.debug("Getting fit for fit ID: {0}", fitID) + # pyfalog.debug("Getting fit for fit ID: {0}", fitID) if fitID is None: return None fit = eos.db.getFit(fitID)