diff --git a/_development/helpers.py b/_development/helpers.py
index 8af8f9733..ad1447371 100644
--- a/_development/helpers.py
+++ b/_development/helpers.py
@@ -100,8 +100,8 @@ def DBInMemory():
import eos.db
# Output debug info to help us troubleshoot Travis
- print((eos.db.saveddata_engine))
- print((eos.db.gamedata_engine))
+ print(eos.db.saveddata_engine)
+ print(eos.db.gamedata_engine)
helper = {
'config': eos.config,
diff --git a/_development/helpers_fits.py b/_development/helpers_fits.py
index a0506827d..347b0622b 100644
--- a/_development/helpers_fits.py
+++ b/_development/helpers_fits.py
@@ -1,7 +1,6 @@
import pytest
# noinspection PyPackageRequirements
-from _development.helpers import DBInMemory as DB, Gamedata, Saveddata
# noinspection PyShadowingNames
diff --git a/_development/helpers_items.py b/_development/helpers_items.py
index 7ae722e23..d77adb026 100644
--- a/_development/helpers_items.py
+++ b/_development/helpers_items.py
@@ -1,7 +1,6 @@
import pytest
# noinspection PyPackageRequirements
-from _development.helpers import DBInMemory as DB, Gamedata, Saveddata
# noinspection PyShadowingNames
diff --git a/dist_assets/win/dist.py b/dist_assets/win/dist.py
index a34ed3140..ec6da3928 100644
--- a/dist_assets/win/dist.py
+++ b/dist_assets/win/dist.py
@@ -38,7 +38,7 @@ call([
iscc,
os.path.join(os.getcwd(), "dist_assets", "win", "pyfa-setup.iss"),
"/dMyAppVersion=%s" % (config['version']),
- "/dMyAppExpansion=%s" % (expansion),
+ "/dMyAppExpansion=%s" % expansion,
"/dMyAppDir=%s" % source,
"/dMyOutputDir=%s" % os.path.join(os.getcwd(), "dist"),
"/dMyOutputFile=%s" % fileName]) # stdout=devnull, stderr=devnull
diff --git a/eos/db/gamedata/category.py b/eos/db/gamedata/category.py
index c167cf1df..502f26c22 100644
--- a/eos/db/gamedata/category.py
+++ b/eos/db/gamedata/category.py
@@ -17,8 +17,8 @@
# along with eos. If not, see .
# ===============================================================================
-from sqlalchemy import Column, String, Integer, ForeignKey, Boolean, Table
-from sqlalchemy.orm import relation, mapper, synonym, deferred
+from sqlalchemy import Boolean, Column, Integer, String, Table
+from sqlalchemy.orm import deferred, mapper, synonym
from eos.db import gamedata_meta
from eos.gamedata import Category
diff --git a/eos/db/gamedata/item.py b/eos/db/gamedata/item.py
index fba3e9820..df7508e43 100644
--- a/eos/db/gamedata/item.py
+++ b/eos/db/gamedata/item.py
@@ -17,15 +17,15 @@
# along with eos. If not, see .
# ===============================================================================
-from sqlalchemy import Column, String, Integer, Boolean, ForeignKey, Table, Float
+from sqlalchemy import Boolean, Column, Float, ForeignKey, Integer, String, Table
from sqlalchemy.ext.associationproxy import association_proxy
-from sqlalchemy.orm import relation, mapper, synonym, deferred, backref
+from sqlalchemy.orm import backref, deferred, mapper, relation, synonym
from sqlalchemy.orm.collections import attribute_mapped_collection
-from eos.db.gamedata.effect import typeeffects_table
from eos.db import gamedata_meta
-from eos.gamedata import Attribute, Effect, Group, Item, MetaType, Traits, DynamicItemItem, DynamicItem
-from eos.db.gamedata.dynamicAttributes import dynamicApplicable_table, dynamic_table
+from eos.db.gamedata.dynamicAttributes import dynamicApplicable_table
+from eos.db.gamedata.effect import typeeffects_table
+from eos.gamedata import Attribute, DynamicItem, Effect, Group, Item, MetaType, Traits
items_table = Table("invtypes", gamedata_meta,
Column("typeID", Integer, primary_key=True),
diff --git a/eos/db/gamedata/queries.py b/eos/db/gamedata/queries.py
index c6ee5c70b..a026704cb 100644
--- a/eos/db/gamedata/queries.py
+++ b/eos/db/gamedata/queries.py
@@ -17,16 +17,16 @@
# along with eos. If not, see .
# ===============================================================================
-from sqlalchemy.orm import join, exc, aliased, joinedload, subqueryload
-from sqlalchemy.sql import and_, or_, select
from sqlalchemy.inspection import inspect
+from sqlalchemy.orm import aliased, exc, join
+from sqlalchemy.sql import and_, or_, select
import eos.config
from eos.db import gamedata_session
-from eos.db.gamedata.metaGroup import metatypes_table, items_table
from eos.db.gamedata.group import groups_table
+from eos.db.gamedata.metaGroup import items_table, metatypes_table
from eos.db.util import processEager, processWhere
-from eos.gamedata import AlphaClone, Attribute, Category, Group, Item, MarketGroup, MetaGroup, AttributeInfo, MetaData, DynamicItem
+from eos.gamedata import AlphaClone, Attribute, AttributeInfo, Category, DynamicItem, Group, Item, MarketGroup, MetaData, MetaGroup
cache = {}
configVal = getattr(eos.config, "gamedataCache", None)
diff --git a/eos/db/saveddata/fit.py b/eos/db/saveddata/fit.py
index 7e3c76f5f..dbee2c622 100644
--- a/eos/db/saveddata/fit.py
+++ b/eos/db/saveddata/fit.py
@@ -17,33 +17,32 @@
# along with eos. If not, see .
# ===============================================================================
-from sqlalchemy.ext.associationproxy import association_proxy
-from sqlalchemy.orm.collections import attribute_mapped_collection
-from sqlalchemy.sql import and_
-from sqlalchemy.orm import relation, reconstructor, mapper, relationship
-from sqlalchemy import ForeignKey, Column, Integer, String, Table, Boolean, DateTime
import datetime
-from eos.db import saveddata_meta
-from eos.db import saveddata_session
+from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String, Table
+from sqlalchemy.ext.associationproxy import association_proxy
+from sqlalchemy.orm import mapper, reconstructor, relation, relationship
+from sqlalchemy.orm.collections import attribute_mapped_collection
+from sqlalchemy.sql import and_
+
+from eos.db import saveddata_meta, saveddata_session
from eos.db.saveddata.cargo import cargo_table
from eos.db.saveddata.drone import drones_table
from eos.db.saveddata.fighter import fighters_table
from eos.db.saveddata.implant import fitImplants_table
from eos.db.saveddata.module import modules_table
-from eos.effectHandlerHelpers import HandledModuleList, HandledImplantBoosterList, HandledProjectedModList, \
- HandledDroneCargoList, HandledProjectedDroneList
-from eos.saveddata.implant import Implant
-from eos.saveddata.character import Character
-from eos.saveddata.user import User
-from eos.saveddata.fighter import Fighter
-from eos.saveddata.fit import Fit as es_Fit, ImplantLocation
-from eos.saveddata.drone import Drone
+from eos.effectHandlerHelpers import HandledDroneCargoList, HandledImplantBoosterList, HandledModuleList, HandledProjectedDroneList, HandledProjectedModList
from eos.saveddata.booster import Booster
-from eos.saveddata.module import Module
from eos.saveddata.cargo import Cargo
+from eos.saveddata.character import Character
from eos.saveddata.damagePattern import DamagePattern
+from eos.saveddata.drone import Drone
+from eos.saveddata.fighter import Fighter
+from eos.saveddata.fit import Fit as es_Fit
+from eos.saveddata.implant import Implant
+from eos.saveddata.module import Module
from eos.saveddata.targetResists import TargetResists
+from eos.saveddata.user import User
fits_table = Table("fits", saveddata_meta,
Column("ID", Integer, primary_key=True),
diff --git a/eos/db/saveddata/mutator.py b/eos/db/saveddata/mutator.py
index 11b595025..1ba81e097 100644
--- a/eos/db/saveddata/mutator.py
+++ b/eos/db/saveddata/mutator.py
@@ -17,10 +17,11 @@
# along with eos. If not, see .
# ===============================================================================
-from sqlalchemy import Table, Column, Integer, ForeignKey, Boolean, DateTime, Float
-from sqlalchemy.orm import mapper
import datetime
+from sqlalchemy import Column, DateTime, Float, ForeignKey, Integer, Table
+from sqlalchemy.orm import mapper
+
from eos.db import saveddata_meta
from eos.saveddata.mutator import Mutator
diff --git a/eos/effects/modulebonuswarfarelinkarmor.py b/eos/effects/modulebonuswarfarelinkarmor.py
index be5843988..c7cf29ce3 100644
--- a/eos/effects/modulebonuswarfarelinkarmor.py
+++ b/eos/effects/modulebonuswarfarelinkarmor.py
@@ -3,14 +3,14 @@
# Used by:
# Variations of module: Armor Command Burst I (2 of 2)
-'''
+"""
Some documentation:
When the fit is calculated, we gather up all the gang effects and stick them onto the fit. We don't run the actual
effect yet, only give the fit details so that it can run the effect at a later time. We need to do this so that we can
only run the strongest effect. When we are done, one of the last things that we do with the fit is to loop through those
bonuses and actually run the effect. To do this, we have a special argument passed into the effect handler that tells it
which warfareBuffID to run (shouldn't need this right now, but better safe than sorry)
-'''
+"""
type = "active", "gang"
diff --git a/eos/gamedata.py b/eos/gamedata.py
index 0fc9482e2..9c14f23ac 100644
--- a/eos/gamedata.py
+++ b/eos/gamedata.py
@@ -166,14 +166,14 @@ class Effect(EqBase):
t = t if isinstance(t, tuple) or t is None else (t,)
self.__type = t
- except (ImportError) as e:
+ except ImportError as e:
# Effect probably doesn't exist, so create a dummy effect and flag it with a warning.
self.__handler = effectDummy
self.__runTime = "normal"
self.__activeByDefault = True
self.__type = None
pyfalog.debug("ImportError generating handler: {0}", e)
- except (AttributeError) as e:
+ except AttributeError as e:
# Effect probably exists but there is an issue with it. Turn it into a dummy effect so we can continue, but flag it with an error.
self.__handler = effectDummy
self.__runTime = "normal"
@@ -630,8 +630,8 @@ class Unit(EqBase):
def attributeIDCallback(v):
v = int(v)
if not v: # some attributes come through with a value of 0? See #1387
- return "%d" % (v)
- attribute = eos.db.getAttributeInfo(v, eager=("unit"))
+ return "%d" % v
+ attribute = eos.db.getAttributeInfo(v, eager="unit")
return "%s (%d)" % (attribute.name.capitalize(), v)
def TranslateValue(self, value):
diff --git a/eos/modifiedAttributeDict.py b/eos/modifiedAttributeDict.py
index 06d348b81..d660dd38b 100644
--- a/eos/modifiedAttributeDict.py
+++ b/eos/modifiedAttributeDict.py
@@ -34,10 +34,10 @@ class ItemAttrShortcut(object):
return return_value or default
def getBaseAttrValue(self, key, default=0):
- '''
+ """
Gets base value in this order:
Mutated value > override value > attribute value
- '''
+ """
return_value = self.itemModifiedAttributes.getOriginal(key)
return return_value or default
@@ -382,7 +382,7 @@ class ModifiedAttributeDict(collections.MutableMapping):
if resist:
afflictPenal += "r"
- self.__afflict(attributeName, "%s*" % (afflictPenal), multiplier, multiplier != 1)
+ self.__afflict(attributeName, "%s*" % afflictPenal, multiplier, multiplier != 1)
def boost(self, attributeName, boostFactor, skill=None, *args, **kwargs):
"""Boost value by some percentage"""
diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py
index a675b0fb0..57aacf101 100644
--- a/eos/saveddata/module.py
+++ b/eos/saveddata/module.py
@@ -17,19 +17,17 @@
# along with eos. If not, see .
# ===============================================================================
-from logbook import Logger
-from copy import deepcopy
-
-from sqlalchemy.orm import validates, reconstructor
from math import floor
+from logbook import Logger
+from sqlalchemy.orm import reconstructor, validates
+
import eos.db
-from eos.effectHandlerHelpers import HandledItem, HandledCharge
+from eos.effectHandlerHelpers import HandledCharge, HandledItem
from eos.enum import Enum
-from eos.modifiedAttributeDict import ModifiedAttributeDict, ItemAttrShortcut, ChargeAttrShortcut
+from eos.modifiedAttributeDict import ChargeAttrShortcut, ItemAttrShortcut, ModifiedAttributeDict
from eos.saveddata.citadel import Citadel
from eos.saveddata.mutator import Mutator
-from utils.deprecated import deprecated
pyfalog = Logger(__name__)
@@ -651,7 +649,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
for i in range(5):
itemChargeGroup = self.getModifiedItemAttr('chargeGroup' + str(i), None)
if itemChargeGroup is not None:
- g = eos.db.getGroup(int(itemChargeGroup), eager=("items.attributes"))
+ g = eos.db.getGroup(int(itemChargeGroup), eager="items.attributes")
if g is None:
continue
for singleItem in g.items:
diff --git a/eos/saveddata/ship.py b/eos/saveddata/ship.py
index 1e1dd30d6..a7cbc15b7 100644
--- a/eos/saveddata/ship.py
+++ b/eos/saveddata/ship.py
@@ -131,7 +131,7 @@ class Ship(ItemAttrShortcut, HandledItem):
return None
items = []
- g = eos.db.getGroup("Ship Modifiers", eager=("items.attributes"))
+ g = eos.db.getGroup("Ship Modifiers", eager="items.attributes")
for item in g.items:
# Rely on name detection because race is not reliable
if item.name.lower().startswith(self.item.name.lower()):
diff --git a/gui/attribute_gauge.py b/gui/attribute_gauge.py
index 1057775f7..e275b2dc2 100644
--- a/gui/attribute_gauge.py
+++ b/gui/attribute_gauge.py
@@ -1,10 +1,13 @@
-import copy
import wx
import math
-from gui.utils import color as color_utils
-from gui.utils import draw, anim_effects
-from service.fit import Fit
+from gui.utils import anim_effects
+import math
+
+import wx
+
+from gui.utils import anim_effects
+
# todo: clean class up. Took from pyfa gauge, has a bunch of extra shit we don't need
diff --git a/gui/bitmap_loader.py b/gui/bitmap_loader.py
index 061e05a0c..deb0712f4 100644
--- a/gui/bitmap_loader.py
+++ b/gui/bitmap_loader.py
@@ -19,15 +19,14 @@
import io
import os.path
-import zipfile
from collections import OrderedDict
# noinspection PyPackageRequirements
import wx
+from logbook import Logger
import config
-from logbook import Logger
logging = Logger(__name__)
diff --git a/gui/builtinContextMenus/boosterSideEffects.py b/gui/builtinContextMenus/boosterSideEffects.py
index eb162c3e7..d6dbc38c6 100644
--- a/gui/builtinContextMenus/boosterSideEffects.py
+++ b/gui/builtinContextMenus/boosterSideEffects.py
@@ -16,7 +16,7 @@ class BoosterSideEffect(ContextMenu):
# if not self.settings.get('fighterAbilities'):
# return False
- if self.mainFrame.getActiveFit() is None or srcContext not in ("boosterItem"):
+ if self.mainFrame.getActiveFit() is None or srcContext not in "boosterItem":
return False
self.booster = selection[0]
diff --git a/gui/builtinContextMenus/cargo.py b/gui/builtinContextMenus/cargo.py
index a0b1c6e80..3bcadfa31 100644
--- a/gui/builtinContextMenus/cargo.py
+++ b/gui/builtinContextMenus/cargo.py
@@ -1,11 +1,9 @@
-from gui.contextMenu import ContextMenu
+import gui.fitCommands as cmd
import gui.mainFrame
-import gui.globalEvents as GE
+from gui.contextMenu import ContextMenu
# noinspection PyPackageRequirements
-import wx
from service.fit import Fit
from service.settings import ContextMenuSettings
-import gui.fitCommands as cmd
class Cargo(ContextMenu):
diff --git a/gui/builtinContextMenus/cargoAmmo.py b/gui/builtinContextMenus/cargoAmmo.py
index af3a855ac..b92ba8e3a 100644
--- a/gui/builtinContextMenus/cargoAmmo.py
+++ b/gui/builtinContextMenus/cargoAmmo.py
@@ -1,10 +1,7 @@
-from gui.contextMenu import ContextMenu
-import gui.mainFrame
-import gui.globalEvents as GE
-import wx
-from service.settings import ContextMenuSettings
-from service.fit import Fit
import gui.fitCommands as cmd
+import gui.mainFrame
+from gui.contextMenu import ContextMenu
+from service.settings import ContextMenuSettings
class CargoAmmo(ContextMenu):
diff --git a/gui/builtinContextMenus/commandFits.py b/gui/builtinContextMenus/commandFits.py
index 7433efbec..97496bb75 100644
--- a/gui/builtinContextMenus/commandFits.py
+++ b/gui/builtinContextMenus/commandFits.py
@@ -1,13 +1,12 @@
# noinspection PyPackageRequirements
import wx
+import gui.fitCommands as cmd
+import gui.mainFrame
+from gui.contextMenu import ContextMenu
from service.fit import Fit
from service.market import Market
-import gui.mainFrame
-import gui.globalEvents as GE
-from gui.contextMenu import ContextMenu
from service.settings import ContextMenuSettings
-import gui.fitCommands as cmd
class CommandFits(ContextMenu):
@@ -26,7 +25,7 @@ class CommandFits(ContextMenu):
if evt is not None:
ids = getattr(evt, 'typeID')
if not isinstance(ids, set):
- ids = set([ids])
+ ids = {ids}
if evt is None or not ids.isdisjoint(cls.commandTypeIDs):
# we are adding or removing an item that defines a command fit. Need to refresh fit list
diff --git a/gui/builtinContextMenus/droneRemoveStack.py b/gui/builtinContextMenus/droneRemoveStack.py
index 5af373e41..fad83f1e8 100644
--- a/gui/builtinContextMenus/droneRemoveStack.py
+++ b/gui/builtinContextMenus/droneRemoveStack.py
@@ -1,11 +1,9 @@
-from gui.contextMenu import ContextMenu
+import gui.fitCommands as cmd
import gui.mainFrame
+from gui.contextMenu import ContextMenu
# noinspection PyPackageRequirements
-import wx
-import gui.globalEvents as GE
from service.fit import Fit
from service.settings import ContextMenuSettings
-import gui.fitCommands as cmd
class ItemRemove(ContextMenu):
diff --git a/gui/builtinContextMenus/metaSwap.py b/gui/builtinContextMenus/metaSwap.py
index 83304f4f7..2cbbb2221 100644
--- a/gui/builtinContextMenus/metaSwap.py
+++ b/gui/builtinContextMenus/metaSwap.py
@@ -3,19 +3,11 @@
# noinspection PyPackageRequirements
import wx
-from service.fit import Fit
-from service.market import Market
-import gui.mainFrame
-import gui.globalEvents as GE
-from gui.contextMenu import ContextMenu
-from service.settings import ContextMenuSettings
-from eos.saveddata.booster import Booster
-from eos.saveddata.module import Module
-from eos.saveddata.drone import Drone
-from eos.saveddata.fighter import Fighter
-from eos.saveddata.implant import Implant
-from eos.saveddata.cargo import Cargo
import gui.fitCommands as cmd
+import gui.mainFrame
+from gui.contextMenu import ContextMenu
+from service.market import Market
+from service.settings import ContextMenuSettings
class MetaSwap(ContextMenu):
diff --git a/gui/builtinContextMenus/moduleAmmoPicker.py b/gui/builtinContextMenus/moduleAmmoPicker.py
index 30e1b25d6..2506a1eb1 100644
--- a/gui/builtinContextMenus/moduleAmmoPicker.py
+++ b/gui/builtinContextMenus/moduleAmmoPicker.py
@@ -3,15 +3,13 @@
# noinspection PyPackageRequirements
import wx
-from service.fit import Fit
-from service.market import Market
-from eos.saveddata.module import Hardpoint
-import gui.mainFrame
-import gui.globalEvents as GE
-from gui.contextMenu import ContextMenu
-from gui.bitmap_loader import BitmapLoader
-from service.settings import ContextMenuSettings
import gui.fitCommands as cmd
+import gui.mainFrame
+from eos.saveddata.module import Hardpoint
+from gui.bitmap_loader import BitmapLoader
+from gui.contextMenu import ContextMenu
+from service.market import Market
+from service.settings import ContextMenuSettings
class ModuleAmmoPicker(ContextMenu):
diff --git a/gui/builtinContextMenus/moduleGlobalAmmoPicker.py b/gui/builtinContextMenus/moduleGlobalAmmoPicker.py
index d0fdbf55b..70a41c351 100644
--- a/gui/builtinContextMenus/moduleGlobalAmmoPicker.py
+++ b/gui/builtinContextMenus/moduleGlobalAmmoPicker.py
@@ -1,13 +1,10 @@
# -*- coding: utf-8 -*-
-import gui.mainFrame
-# noinspection PyPackageRequirements
-import wx
-import gui.globalEvents as GE
-from gui.builtinContextMenus.moduleAmmoPicker import ModuleAmmoPicker
-from eos.db.saveddata.queries import getFit as db_getFit
-from service.fit import Fit
-from service.settings import ContextMenuSettings
import gui.fitCommands as cmd
+import gui.mainFrame
+from eos.db.saveddata.queries import getFit as db_getFit
+# noinspection PyPackageRequirements
+from gui.builtinContextMenus.moduleAmmoPicker import ModuleAmmoPicker
+from service.settings import ContextMenuSettings
class ModuleGlobalAmmoPicker(ModuleAmmoPicker):
diff --git a/gui/builtinContextMenus/mutaplasmids.py b/gui/builtinContextMenus/mutaplasmids.py
index 253cdac60..98656b840 100644
--- a/gui/builtinContextMenus/mutaplasmids.py
+++ b/gui/builtinContextMenus/mutaplasmids.py
@@ -18,7 +18,7 @@ class MutaplasmidCM(ContextMenu):
# if not self.settings.get('ammoPattern'):
# return False
- if srcContext not in ("fittingModule") or self.mainFrame.getActiveFit() is None:
+ if srcContext not in "fittingModule" or self.mainFrame.getActiveFit() is None:
return False
mod = selection[0]
diff --git a/gui/builtinContextMenus/project.py b/gui/builtinContextMenus/project.py
index 4b41a30e2..6bbb974b3 100644
--- a/gui/builtinContextMenus/project.py
+++ b/gui/builtinContextMenus/project.py
@@ -1,11 +1,9 @@
-from gui.contextMenu import ContextMenu
+import gui.fitCommands as cmd
import gui.mainFrame
-import gui.globalEvents as GE
+from gui.contextMenu import ContextMenu
# noinspection PyPackageRequirements
-import wx
from service.fit import Fit
from service.settings import ContextMenuSettings
-import gui.fitCommands as cmd
class Project(ContextMenu):
diff --git a/gui/builtinContextMenus/tabbedFits.py b/gui/builtinContextMenus/tabbedFits.py
index 582f4158d..f86562fa6 100644
--- a/gui/builtinContextMenus/tabbedFits.py
+++ b/gui/builtinContextMenus/tabbedFits.py
@@ -3,12 +3,11 @@
# noinspection PyPackageRequirements
import wx
-from service.fit import Fit
-import gui.mainFrame
-import gui.globalEvents as GE
-from gui.contextMenu import ContextMenu
-from gui.builtinViews.emptyView import BlankPage
import gui.fitCommands as cmd
+import gui.mainFrame
+from gui.builtinViews.emptyView import BlankPage
+from gui.contextMenu import ContextMenu
+from service.fit import Fit
class TabbedFits(ContextMenu):
diff --git a/gui/builtinContextMenus/tacticalMode.py b/gui/builtinContextMenus/tacticalMode.py
index a8edff27b..94bfc1076 100644
--- a/gui/builtinContextMenus/tacticalMode.py
+++ b/gui/builtinContextMenus/tacticalMode.py
@@ -1,12 +1,11 @@
# noinspection PyPackageRequirements
import wx
-from gui.contextMenu import ContextMenu
-import gui.mainFrame
-import gui.globalEvents as GE
+import gui.fitCommands as cmd
+import gui.mainFrame
+from gui.contextMenu import ContextMenu
from service.fit import Fit
from service.settings import ContextMenuSettings
-import gui.fitCommands as cmd
class TacticalMode(ContextMenu):
diff --git a/gui/builtinContextMenus/whProjector.py b/gui/builtinContextMenus/whProjector.py
index 16b1255b5..c6e083676 100644
--- a/gui/builtinContextMenus/whProjector.py
+++ b/gui/builtinContextMenus/whProjector.py
@@ -1,14 +1,14 @@
-from gui.contextMenu import ContextMenu
-import gui.mainFrame
-import gui.globalEvents as GE
+import re
+from itertools import chain
+
# noinspection PyPackageRequirements
import wx
-from service.market import Market
-from service.fit import Fit
-from service.settings import ContextMenuSettings
-from itertools import chain
-import re
+
import gui.fitCommands as cmd
+import gui.mainFrame
+from gui.contextMenu import ContextMenu
+from service.market import Market
+from service.settings import ContextMenuSettings
class WhProjector(ContextMenu):
diff --git a/gui/builtinItemStatsViews/attributeSlider.py b/gui/builtinItemStatsViews/attributeSlider.py
index 69358278c..8de27e347 100644
--- a/gui/builtinItemStatsViews/attributeSlider.py
+++ b/gui/builtinItemStatsViews/attributeSlider.py
@@ -1,9 +1,7 @@
import wx
import wx.lib.newevent
-from gui.attribute_gauge import AttributeGauge
-import eos
-import eos.db
+from gui.attribute_gauge import AttributeGauge
_ValueChanged, EVT_VALUE_CHANGED = wx.lib.newevent.NewEvent()
diff --git a/gui/builtinItemStatsViews/itemMutator.py b/gui/builtinItemStatsViews/itemMutator.py
index 614274e6e..30ba82fd9 100644
--- a/gui/builtinItemStatsViews/itemMutator.py
+++ b/gui/builtinItemStatsViews/itemMutator.py
@@ -1,18 +1,16 @@
# noinspection PyPackageRequirements
-import wx
-
-from service.fit import Fit
-from .attributeSlider import AttributeSlider, EVT_VALUE_CHANGED
-
-import gui.mainFrame
-from gui.contextMenu import ContextMenu
-from .itemAttributes import ItemParams
-from gui.bitmap_loader import BitmapLoader
-import gui.globalEvents as GE
import random
+import wx
from logbook import Logger
+import gui.globalEvents as GE
+import gui.mainFrame
+from gui.bitmap_loader import BitmapLoader
+from service.fit import Fit
+from .attributeSlider import AttributeSlider, EVT_VALUE_CHANGED
+from .itemAttributes import ItemParams
+
pyfalog = Logger(__name__)
diff --git a/gui/builtinMarketBrowser/itemView.py b/gui/builtinMarketBrowser/itemView.py
index 7a26cfed1..82454502a 100644
--- a/gui/builtinMarketBrowser/itemView.py
+++ b/gui/builtinMarketBrowser/itemView.py
@@ -1,16 +1,13 @@
import wx
-
-import config
-import gui.builtinMarketBrowser.pfSearchBox as SBox
-from gui.contextMenu import ContextMenu
-from gui.display import Display
-from service.attribute import Attribute
-from service.fit import Fit
-from gui.utils.staticHelpers import DragDropHelper
-
from logbook import Logger
-from gui.builtinMarketBrowser.events import RECENTLY_USED_MODULES, MAX_RECENTLY_USED_MODULES, ItemSelected
+import gui.builtinMarketBrowser.pfSearchBox as SBox
+from gui.builtinMarketBrowser.events import ItemSelected, MAX_RECENTLY_USED_MODULES, RECENTLY_USED_MODULES
+from gui.contextMenu import ContextMenu
+from gui.display import Display
+from gui.utils.staticHelpers import DragDropHelper
+from service.attribute import Attribute
+from service.fit import Fit
pyfalog = Logger(__name__)
diff --git a/gui/builtinPreferenceViews/pyfaEsiPreferences.py b/gui/builtinPreferenceViews/pyfaEsiPreferences.py
index 7eaf31a4e..39125ed38 100644
--- a/gui/builtinPreferenceViews/pyfaEsiPreferences.py
+++ b/gui/builtinPreferenceViews/pyfaEsiPreferences.py
@@ -1,17 +1,13 @@
# noinspection PyPackageRequirements
import wx
-from gui.preferenceView import PreferenceView
-from gui.bitmap_loader import BitmapLoader
-
import gui.mainFrame
-
+from gui.bitmap_loader import BitmapLoader
+from gui.preferenceView import PreferenceView
from service.settings import EsiSettings
-# noinspection PyPackageRequirements
-from wx.lib.intctrl import IntCtrl
-from service.esi import Esi
+# noinspection PyPackageRequirements
class PFEsiPref(PreferenceView):
diff --git a/gui/builtinPreferenceViews/pyfaGaugePreferences.py b/gui/builtinPreferenceViews/pyfaGaugePreferences.py
index c0ca68a98..7ba91eff3 100644
--- a/gui/builtinPreferenceViews/pyfaGaugePreferences.py
+++ b/gui/builtinPreferenceViews/pyfaGaugePreferences.py
@@ -3,12 +3,9 @@
# noinspection PyPackageRequirements
import wx
-import copy
-from gui.preferenceView import PreferenceView
from gui.bitmap_loader import BitmapLoader
-from gui.utils.color import CalculateTransition
-import gui.utils.draw as drawUtils
+from gui.preferenceView import PreferenceView
###########################################################################
diff --git a/gui/builtinShipBrowser/fitItem.py b/gui/builtinShipBrowser/fitItem.py
index 05470f97a..c0bd9c07b 100644
--- a/gui/builtinShipBrowser/fitItem.py
+++ b/gui/builtinShipBrowser/fitItem.py
@@ -2,22 +2,22 @@
import re
import time
-import config
import wx
from logbook import Logger
+import config
import gui.builtinShipBrowser.sfBrowserItem as SFItem
-import gui.globalEvents as GE
+import gui.fitCommands as cmd
import gui.mainFrame
import gui.utils.color as colorUtils
import gui.utils.draw as drawUtils
import gui.utils.fonts as fonts
-from .events import ImportSelected, SearchSelected, FitSelected, BoosterListUpdated, Stage3Selected, FitRenamed, FitRemoved
from gui.bitmap_loader import BitmapLoader
from gui.builtinShipBrowser.pfBitmapFrame import PFBitmapFrame
from service.fit import Fit
-import gui.fitCommands as cmd
+from .events import BoosterListUpdated, FitRemoved, FitSelected, ImportSelected, SearchSelected, Stage3Selected
+
pyfalog = Logger(__name__)
diff --git a/gui/builtinShipBrowser/shipItem.py b/gui/builtinShipBrowser/shipItem.py
index 517648ad6..cf1de024c 100644
--- a/gui/builtinShipBrowser/shipItem.py
+++ b/gui/builtinShipBrowser/shipItem.py
@@ -8,11 +8,11 @@ import gui.mainFrame
import gui.utils.color as colorUtils
import gui.utils.draw as drawUtils
import gui.utils.fonts as fonts
-from .events import Stage3Selected, Stage2Selected, Stage1Selected, FitSelected
from gui.bitmap_loader import BitmapLoader
from gui.contextMenu import ContextMenu
from service.fit import Fit
from service.market import Market
+from .events import FitSelected, Stage3Selected
pyfalog = Logger(__name__)
diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py
index 9eb03ea22..767ad958f 100644
--- a/gui/builtinStatsViews/priceViewFull.py
+++ b/gui/builtinStatsViews/priceViewFull.py
@@ -129,15 +129,15 @@ class PriceViewFull(StatsView):
total_price = 0
- if (self.settings.get("ship")):
+ if self.settings.get("ship"):
total_price += ship_price
- if (self.settings.get("modules")):
+ if self.settings.get("modules"):
total_price += module_price
- if (self.settings.get("drones")):
+ if self.settings.get("drones"):
total_price += drone_price + fighter_price
- if (self.settings.get("cargo")):
+ if self.settings.get("cargo"):
total_price += cargo_price
- if (self.settings.get("character")):
+ if self.settings.get("character"):
total_price += booster_price + implant_price
self.labelPriceShip.SetLabel("%s ISK" % formatAmount(ship_price, 3, 3, 9, currency=True))
diff --git a/gui/builtinStatsViews/priceViewMinimal.py b/gui/builtinStatsViews/priceViewMinimal.py
index ec1d5357f..8d6a5ce83 100644
--- a/gui/builtinStatsViews/priceViewMinimal.py
+++ b/gui/builtinStatsViews/priceViewMinimal.py
@@ -125,15 +125,15 @@ class PriceViewMinimal(StatsView):
total_price = 0
- if (self.settings.get("ship")):
+ if self.settings.get("ship"):
total_price += ship_price
- if (self.settings.get("modules")):
+ if self.settings.get("modules"):
total_price += module_price
- if (self.settings.get("drones")):
+ if self.settings.get("drones"):
total_price += drone_price + fighter_price
- if (self.settings.get("cargo")):
+ if self.settings.get("cargo"):
total_price += cargo_price
- if (self.settings.get("character")):
+ if self.settings.get("character"):
total_price += booster_price + implant_price
self.labelPriceShip.SetLabel("%s ISK" % formatAmount(ship_price, 3, 3, 9, currency=True))
diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py
index 85fbbb8b2..fe9b73358 100644
--- a/gui/builtinViews/fittingView.py
+++ b/gui/builtinViews/fittingView.py
@@ -21,29 +21,26 @@
import wx
# noinspection PyPackageRequirements
import wx.lib.newevent
-import gui.mainFrame
-from gui.builtinMarketBrowser.events import ItemSelected, ITEM_SELECTED
+from logbook import Logger
+
+import gui.builtinViews.emptyView
import gui.display as d
-from gui.contextMenu import ContextMenu
-from gui.builtinShipBrowser.events import EVT_FIT_RENAMED, EVT_FIT_REMOVED, FitSelected, EVT_FIT_SELECTED
+import gui.fitCommands as cmd
+import gui.globalEvents as GE
+import gui.mainFrame
import gui.multiSwitch
from eos.saveddata.mode import Mode
-from eos.saveddata.module import Module, Slot, Rack
-from gui.builtinViewColumns.state import State
+from eos.saveddata.module import Module, Rack, Slot
from gui.bitmap_loader import BitmapLoader
-import gui.builtinViews.emptyView
-from logbook import Logger
+from gui.builtinMarketBrowser.events import ITEM_SELECTED
+from gui.builtinShipBrowser.events import EVT_FIT_REMOVED, EVT_FIT_RENAMED, EVT_FIT_SELECTED, FitSelected
+from gui.builtinViewColumns.state import State
from gui.chrome_tabs import EVT_NOTEBOOK_PAGE_CHANGED
-import gui.fitCommands as cmd
-
+from gui.contextMenu import ContextMenu
+from gui.utils.staticHelpers import DragDropHelper
from service.fit import Fit
from service.market import Market
-from gui.utils.staticHelpers import DragDropHelper
-import gui.utils.fonts as fonts
-
-import gui.globalEvents as GE
-
pyfalog = Logger(__name__)
@@ -361,9 +358,9 @@ class FittingView(d.Display):
self.parent.SetPageTextIcon(pageIndex, text, bitmap)
def appendItem(self, event):
- '''
+ """
Adds items that are double clicks from the market browser. We handle both modules and ammo
- '''
+ """
if not self:
event.Skip()
return
@@ -390,7 +387,7 @@ class FittingView(d.Display):
event.Skip()
def removeItem(self, event):
- '''Double Left Click - remove module'''
+ """Double Left Click - remove module"""
if event.CmdDown():
return
row, _ = self.HitTest(event.Position)
diff --git a/gui/characterEditor.py b/gui/characterEditor.py
index c0d8de298..6fe7c809a 100644
--- a/gui/characterEditor.py
+++ b/gui/characterEditor.py
@@ -17,35 +17,30 @@
# along with pyfa. If not, see .
# =============================================================================
+import re
+
+import roman
# noinspection PyPackageRequirements
import wx
import wx.dataview
import wx.lib.agw.hyperlink
-
# noinspection PyPackageRequirements
import wx.lib.newevent
+from logbook import Logger
# noinspection PyPackageRequirements
from wx.dataview import TreeListCtrl
-from gui.bitmap_loader import BitmapLoader
-from gui.contextMenu import ContextMenu
-import gui.globalEvents as GE
-from gui.builtinViews.implantEditor import BaseImplantEditorView
-from gui.builtinViews.entityEditor import EntityEditor, BaseValidator, TextEntryValidatedDialog
-from service.fit import Fit
-from service.character import Character
-from service.esi import Esi
-from service.network import AuthenticationError, TimeoutError
-from service.market import Market
-from logbook import Logger
-
from wx.lib.agw.floatspin import FloatSpin
-
-from gui.utils.clipboard import toClipboard, fromClipboard
-
-import roman
-import re
-import webbrowser
+import gui.globalEvents as GE
+from gui.bitmap_loader import BitmapLoader
+from gui.builtinViews.entityEditor import BaseValidator, EntityEditor, TextEntryValidatedDialog
+from gui.builtinViews.implantEditor import BaseImplantEditorView
+from gui.contextMenu import ContextMenu
+from gui.utils.clipboard import fromClipboard, toClipboard
+from service.character import Character
+from service.esi import Esi
+from service.fit import Fit
+from service.market import Market
pyfalog = Logger(__name__)
diff --git a/gui/chrome_tabs.py b/gui/chrome_tabs.py
index 95d79415d..b50073565 100644
--- a/gui/chrome_tabs.py
+++ b/gui/chrome_tabs.py
@@ -30,7 +30,7 @@ PageAdded, EVT_NOTEBOOK_PAGE_ADDED = wx.lib.newevent.NewEvent()
PageClosed, EVT_NOTEBOOK_PAGE_CLOSED = wx.lib.newevent.NewEvent()
-class VetoAble():
+class VetoAble:
def __init__(self):
self.__vetoed = False
@@ -41,7 +41,7 @@ class VetoAble():
return self.__vetoed
-class NotebookTabChangeEvent():
+class NotebookTabChangeEvent:
def __init__(self, old, new):
self.__old = old
self.__new = new
diff --git a/gui/esiFittings.py b/gui/esiFittings.py
index c471a1334..20fc2ed74 100644
--- a/gui/esiFittings.py
+++ b/gui/esiFittings.py
@@ -319,7 +319,7 @@ class SsoCharacterMgmt(wx.Dialog):
self.Centre(wx.BOTH)
def ssoLogin(self, event):
- if (self):
+ if self:
# todo: these events don't unbind properly when window is closed (?), hence the `if`. Figure out better way of doing this.
self.popCharList()
event.Skip()
@@ -384,7 +384,7 @@ class FittingsTreeView(wx.Panel):
dict = {}
fits = data
for fit in fits:
- if (fit['fitting_id'] in sEsi.fittings_deleted):
+ if fit['fitting_id'] in sEsi.fittings_deleted:
continue
ship = getItem(fit['ship_type_id'])
if ship is None:
diff --git a/gui/fitCommands/calc/fitRemoveFighter.py b/gui/fitCommands/calc/fitRemoveFighter.py
index 58b1f7c6a..da186bd48 100644
--- a/gui/fitCommands/calc/fitRemoveFighter.py
+++ b/gui/fitCommands/calc/fitRemoveFighter.py
@@ -1,8 +1,8 @@
import wx
-
-from gui.fitCommands.helpers import ModuleInfoCache
-import eos.db
from logbook import Logger
+
+import eos.db
+
pyfalog = Logger(__name__)
diff --git a/gui/fitCommands/calc/fitReplaceModule.py b/gui/fitCommands/calc/fitReplaceModule.py
index ddfd2c770..19674df80 100644
--- a/gui/fitCommands/calc/fitReplaceModule.py
+++ b/gui/fitCommands/calc/fitReplaceModule.py
@@ -1,12 +1,10 @@
import wx
-from service.fit import Fit
-
-import gui.mainFrame
-from gui import globalEvents as GE
-from gui.fitCommands.helpers import ModuleInfoCache
-from eos.saveddata.module import Module, State
-import eos.db
from logbook import Logger
+
+import eos.db
+from eos.saveddata.module import Module, State
+from gui.fitCommands.helpers import ModuleInfoCache
+
pyfalog = Logger(__name__)
diff --git a/gui/fitCommands/calc/fitSetCharge.py b/gui/fitCommands/calc/fitSetCharge.py
index 6cc6d0988..93a6da4ae 100644
--- a/gui/fitCommands/calc/fitSetCharge.py
+++ b/gui/fitCommands/calc/fitSetCharge.py
@@ -1,11 +1,10 @@
import wx
+from logbook import Logger
+
+import eos.db
+import gui.mainFrame
from service.fit import Fit
-import gui.mainFrame
-from gui import globalEvents as GE
-from eos.saveddata.module import Module
-from logbook import Logger
-import eos.db
pyfalog = Logger(__name__)
diff --git a/gui/fitCommands/guiModuleToCargo.py b/gui/fitCommands/guiModuleToCargo.py
index 95e9be0b6..66a9f9833 100644
--- a/gui/fitCommands/guiModuleToCargo.py
+++ b/gui/fitCommands/guiModuleToCargo.py
@@ -1,15 +1,14 @@
import wx
-from service.fit import Fit
+from logbook import Logger
import gui.mainFrame
from gui import globalEvents as GE
-from gui.fitCommands.calc.fitSetCharge import FitSetChargeCommand
-from gui.fitCommands.calc.fitReplaceModule import FitReplaceModuleCommand
from gui.fitCommands.calc.fitRemoveCargo import FitRemoveCargoCommand
from gui.fitCommands.calc.fitRemoveModule import FitRemoveModuleCommand
-
+from gui.fitCommands.calc.fitReplaceModule import FitReplaceModuleCommand
+from service.fit import Fit
from .calc.fitAddCargo import FitAddCargoCommand
-from logbook import Logger
+
pyfalog = Logger(__name__)
diff --git a/gui/mainFrame.py b/gui/mainFrame.py
index b8277e8cb..7c6e71877 100644
--- a/gui/mainFrame.py
+++ b/gui/mainFrame.py
@@ -17,76 +17,62 @@
# along with pyfa. If not, see .
# =============================================================================
-import sys
-import os.path
-from logbook import Logger
-
-import sqlalchemy
-# noinspection PyPackageRequirements
-import wx
-# noinspection PyPackageRequirements
-from wx.lib.wordwrap import wordwrap
-# noinspection PyPackageRequirements
-from wx.lib.inspection import InspectionTool
-import time
-
-from codecs import open
-
-import config
-
-from eos.config import gamedata_version, gamedata_date
import datetime
-
-import gui.aboutData
-from gui.chrome_tabs import ChromeNotebook
-import gui.globalEvents as GE
-
-from gui.bitmap_loader import BitmapLoader
-from gui.mainMenuBar import MainMenuBar
-from gui.additionsPane import AdditionsPane
-from gui.marketBrowser import MarketBrowser
-from gui.builtinMarketBrowser.events import ItemSelected
-from gui.multiSwitch import MultiSwitch
-from gui.statsPane import StatsPane
-from gui.shipBrowser import ShipBrowser
-from gui.builtinShipBrowser.events import FitSelected, ImportSelected, Stage3Selected
-from gui.characterEditor import CharacterEditor
-from gui.characterSelection import CharacterSelection
-from gui.patternEditor import DmgPatternEditorDlg
-from gui.resistsEditor import ResistsEditorDlg
-from gui.setEditor import ImplantSetEditorDlg
-from gui.devTools import DevTools
-from gui.preferenceDialog import PreferenceDialog
-from gui.graphFrame import GraphFrame
-from gui.ssoLogin import SsoLogin
-from gui.copySelectDialog import CopySelectDialog
-from gui.utils.clipboard import toClipboard, fromClipboard
-from gui.updateDialog import UpdateDialog
-# noinspection PyUnresolvedReferences
-from gui.builtinViews import emptyView, entityEditor, fittingView, implantEditor # noqa: F401
-from gui import graphFrame
-
-from service.settings import SettingsProvider
-from service.fit import Fit
-from service.character import Character
-from service.update import Update
-from service.esiAccess import SsoMode
-
-# import this to access override setting
-from eos.modifiedAttributeDict import ModifiedAttributeDict
-from eos.db.saveddata.loadDefaultDatabaseValues import DefaultDatabaseValues
-from eos.db.saveddata.queries import getFit as db_getFit
-from service.port import Port, IPortUser, EfsPort
-from service.settings import HTMLExportSettings
-
+import os.path
+import threading
+import time
+import webbrowser
+from codecs import open
from time import gmtime, strftime
-import threading
-import webbrowser
+# noinspection PyPackageRequirements
+import wx
import wx.adv
+from logbook import Logger
+# noinspection PyPackageRequirements
+# noinspection PyPackageRequirements
+from wx.lib.inspection import InspectionTool
-from service.esi import Esi, LoginMethod
+import config
+import gui.globalEvents as GE
+from eos.config import gamedata_date, gamedata_version
+from eos.db.saveddata.loadDefaultDatabaseValues import DefaultDatabaseValues
+from eos.db.saveddata.queries import getFit as db_getFit
+# import this to access override setting
+from eos.modifiedAttributeDict import ModifiedAttributeDict
+from gui import graphFrame
+from gui.additionsPane import AdditionsPane
+from gui.bitmap_loader import BitmapLoader
+from gui.builtinMarketBrowser.events import ItemSelected
+from gui.builtinShipBrowser.events import FitSelected, ImportSelected, Stage3Selected
+# noinspection PyUnresolvedReferences
+from gui.builtinViews import emptyView, entityEditor, fittingView, implantEditor # noqa: F401
+from gui.characterEditor import CharacterEditor
+from gui.characterSelection import CharacterSelection
+from gui.chrome_tabs import ChromeNotebook
+from gui.copySelectDialog import CopySelectDialog
+from gui.devTools import DevTools
from gui.esiFittings import EveFittings, ExportToEve, SsoCharacterMgmt
+from gui.graphFrame import GraphFrame
+from gui.mainMenuBar import MainMenuBar
+from gui.marketBrowser import MarketBrowser
+from gui.multiSwitch import MultiSwitch
+from gui.patternEditor import DmgPatternEditorDlg
+from gui.preferenceDialog import PreferenceDialog
+from gui.resistsEditor import ResistsEditorDlg
+from gui.setEditor import ImplantSetEditorDlg
+from gui.shipBrowser import ShipBrowser
+from gui.ssoLogin import SsoLogin
+from gui.statsPane import StatsPane
+from gui.updateDialog import UpdateDialog
+from gui.utils.clipboard import fromClipboard, toClipboard
+from service.character import Character
+from service.esi import Esi, LoginMethod
+from service.esiAccess import SsoMode
+from service.fit import Fit
+from service.port import EfsPort, IPortUser, Port
+from service.settings import HTMLExportSettings, SettingsProvider
+from service.update import Update
disableOverrideEditor = False
diff --git a/gui/pyfa_gauge.py b/gui/pyfa_gauge.py
index 61379c5b0..c3e3e1c16 100644
--- a/gui/pyfa_gauge.py
+++ b/gui/pyfa_gauge.py
@@ -14,11 +14,10 @@
# ===============================================================================
import copy
+
import wx
-from gui.utils import color as color_utils
-from gui.utils import draw, anim_effects
-from service.fit import Fit
+from gui.utils import anim_effects, color as color_utils, draw
class PyGauge(wx.Window):
diff --git a/pyfa.py b/pyfa.py
index 740d443ab..d73ef0975 100755
--- a/pyfa.py
+++ b/pyfa.py
@@ -19,13 +19,14 @@
# ==============================================================================
+import datetime
import os
import sys
-import traceback
from optparse import AmbiguousOptionError, BadOptionError, OptionParser
-from service.prereqsCheck import PreCheckException, PreCheckMessage, version_precheck, version_block
+
import config
-import datetime
+from service.prereqsCheck import PreCheckException, PreCheckMessage, version_block, version_precheck
+
# ascii_text = '''
# ++++++++++++++++++++++++++++++++++++++++++++++++++
diff --git a/scripts/dynamicattributes.py b/scripts/dynamicattributes.py
index f21a5f96a..b6a2d720b 100644
--- a/scripts/dynamicattributes.py
+++ b/scripts/dynamicattributes.py
@@ -6,13 +6,8 @@ This script will generate a dynamicItemAttributes.json file using res files
import argparse
-import os
-import re
-import sqlite3
import json
-
-from PIL import Image
-
+import os
from shutil import copyfile
parser = argparse.ArgumentParser(description='This script updates module icons for pyfa')
diff --git a/scripts/effectUsedBy.py b/scripts/effectUsedBy.py
index dc231c61c..aa5f878b3 100755
--- a/scripts/effectUsedBy.py
+++ b/scripts/effectUsedBy.py
@@ -410,7 +410,7 @@ else:
if not effect_file.startswith('__'):
file_name, file_extension = effect_file.rsplit('.', 1)
# Ignore non-py files and exclude implementation-specific 'effects'
- if file_extension == "py" and not file_name in ("__init__"):
+ if file_extension == "py" and not file_name in "__init__":
effect_list.append(file_name)
# Stage 2
diff --git a/scripts/icons_update.py b/scripts/icons_update.py
index 0ad4c5359..73813c505 100644
--- a/scripts/icons_update.py
+++ b/scripts/icons_update.py
@@ -6,15 +6,13 @@ This script updates only market/item icons.
import argparse
-import os
-import re
-import sqlite3
import json
+import os
+import sqlite3
+from shutil import copyfile
from PIL import Image
-from shutil import copyfile
-
parser = argparse.ArgumentParser(description='This script updates module icons for pyfa')
parser.add_argument('-e', '--eve', required=True, type=str, help='path to eve\'s ')
parser.add_argument('-s', '--server', required=False, default='tq', type=str, help='which server to use (defaults to tq)')
@@ -67,7 +65,7 @@ graphics = graphicIDsLoader.load(os.path.join(to_path, 'graphicIDs.fsdbinary'))
graphics_py_ob = {}
for x, v in graphics.items():
- if (hasattr(v, 'iconFolder')):
+ if hasattr(v, 'iconFolder'):
graphics_py_ob[x] = v.iconFolder
# Add children to market group list
diff --git a/scripts/itemDiff.py b/scripts/itemDiff.py
index 053e36222..e03f259d6 100755
--- a/scripts/itemDiff.py
+++ b/scripts/itemDiff.py
@@ -19,17 +19,16 @@
#===============================================================================
-'''
+"""
This script is used to compare two different database versions.
It shows removed/changed/new items with list of changed effects,
changed attributes and effects which were renamed
-'''
+"""
import argparse
import os.path
import re
import sqlite3
-import sys
script_dir = os.path.dirname(__file__)
default_old = os.path.join(script_dir, "..", "eve.db")
@@ -282,14 +281,12 @@ def main(old, new, groups=True, effects=True, attributes=True, renames=True):
oldgroup = old_itmdata[item][0]
groupdata = (S["unchanged"], oldgroup, None)
# Set old set of effects and mark all as unchanged
- effectsdata = {}
- effectsdata[S["unchanged"]] = set()
+ effectsdata = {S["unchanged"]: set()}
if effects:
oldeffects = old_itmdata[item][1]
effectsdata[S["unchanged"]].update(oldeffects)
# Set old set of attributes and mark all as unchanged
- attrdata = {}
- attrdata[S["unchanged"]] = {}
+ attrdata = {S["unchanged"]: {}}
if attributes:
oldattrs = old_itmdata[item][2]
for attr in oldattrs:
@@ -307,14 +304,12 @@ def main(old, new, groups=True, effects=True, attributes=True, renames=True):
newgroup = new_itmdata[item][0]
groupdata = (S["unchanged"], None, newgroup)
# Set new set of effects and mark all as unchanged
- effectsdata = {}
- effectsdata[S["unchanged"]] = set()
+ effectsdata = {S["unchanged"]: set()}
if effects:
neweffects = new_itmdata[item][1]
effectsdata[S["unchanged"]].update(neweffects)
# Set new set of attributes and mark all as unchanged
- attrdata = {}
- attrdata[S["unchanged"]] = {}
+ attrdata = {S["unchanged"]: {}}
if attributes:
newattrs = new_itmdata[item][2]
for attr in newattrs:
diff --git a/scripts/jsonToSql.py b/scripts/jsonToSql.py
index add0fe957..24492637a 100755
--- a/scripts/jsonToSql.py
+++ b/scripts/jsonToSql.py
@@ -18,10 +18,9 @@
# License along with eos. If not, see .
#======================================================================
+import functools
import os
import sys
-import functools
-import re
# Add eos root path to sys.path so we can import ourselves
path = os.path.dirname(__file__)
@@ -46,7 +45,6 @@ def main(db, json_path):
eos.config.debug = False
# Now thats done, we can import the eos modules using the config
- import eos.db
import eos.gamedata
# Create the database tables
@@ -241,7 +239,7 @@ def main(db, json_path):
row['iconFile'] = row['iconFile'].lower().replace('modules/', '').replace('.png', '')
if jsonName is 'clonegrades':
- if (row['alphaCloneID'] not in tmp):
+ if row['alphaCloneID'] not in tmp:
cloneParent = eos.gamedata.AlphaClone()
setattr(cloneParent, 'alphaCloneID', row['alphaCloneID'])
setattr(cloneParent, 'alphaCloneName', row['alphaCloneName'])
@@ -249,7 +247,7 @@ def main(db, json_path):
tmp.append(row['alphaCloneID'])
for k, v in row.items():
- if (isinstance(v, str)):
+ if isinstance(v, str):
v = v.strip()
setattr(instance, fieldMap.get(k, k), v)
diff --git a/scripts/sdeReadIcons.py b/scripts/sdeReadIcons.py
index 66010a53c..d099f6bd5 100644
--- a/scripts/sdeReadIcons.py
+++ b/scripts/sdeReadIcons.py
@@ -1,8 +1,8 @@
-'''
+"""
A change to EVE Online's cache format rendered Reverence unable to correctly dump the icons file. As a stop gap, this
reads the offical SDE iconIDs.yaml and populates our own icons.json file. This files should then be transferred to the
other JSON files Phobos dumps before being converted to SQL
-'''
+"""
import yaml
import json
diff --git a/scripts/t3conversions.py b/scripts/t3conversions.py
index 8b6e7e09a..4f2445071 100644
--- a/scripts/t3conversions.py
+++ b/scripts/t3conversions.py
@@ -2,11 +2,11 @@
# Requires eve-old.db file (which is the previous releases database so that we can lookup the old items)
# See https://community.eveonline.com/news/patch-notes/patch-notes-for-july-2017-release
-import sys
-from os.path import realpath, join, dirname, abspath
-from sqlalchemy import MetaData, create_engine
-from sqlalchemy.orm import sessionmaker
import csv
+import sys
+from os.path import abspath, dirname, join, realpath
+
+from sqlalchemy import create_engine
newDB = create_engine('sqlite:///' + unicode(realpath(join(dirname(abspath(__file__)), "..", "eve.db")), sys.getfilesystemencoding()))
oldDB = create_engine('sqlite:///' + unicode(realpath(join(dirname(abspath(__file__)), "..", "eve-old.db")), sys.getfilesystemencoding()))
diff --git a/service/attribute.py b/service/attribute.py
index b4c3453e9..b5ebcae66 100644
--- a/service/attribute.py
+++ b/service/attribute.py
@@ -33,10 +33,10 @@ class Attribute(object):
@staticmethod
def getAttributeInfo(identity):
if isinstance(identity, (int, str)):
- info = eos.db.getAttributeInfo(identity, eager=("unit"))
+ info = eos.db.getAttributeInfo(identity, eager="unit")
elif isinstance(identity, (int, float)):
id_ = int(identity)
- info = eos.db.getAttributeInfo(id_, eager=("unit"))
+ info = eos.db.getAttributeInfo(id_, eager="unit")
else:
info = None
return info
diff --git a/service/character.py b/service/character.py
index 2ff03de67..565d7d329 100644
--- a/service/character.py
+++ b/service/character.py
@@ -337,7 +337,7 @@ class Character(object):
@staticmethod
def getApiDetails(charID):
# todo: fix this (or get rid of?)
- return ("", "", "", [])
+ return "", "", "", []
char = eos.db.getCharacter(charID)
if char.chars is not None:
chars = json.loads(char.chars)
diff --git a/service/esi.py b/service/esi.py
index 4b5f8198f..7b5247bec 100644
--- a/service/esi.py
+++ b/service/esi.py
@@ -138,7 +138,7 @@ class Esi(EsiAccess):
def handleLogin(self, message):
# we already have authenticated stuff for the auto mode
- if (self.settings.get('ssoMode') == SsoMode.AUTO):
+ if self.settings.get('ssoMode') == SsoMode.AUTO:
ssoInfo = message['SSOInfo'][0]
auth_response = json.loads(base64.b64decode(ssoInfo))
else:
diff --git a/service/esiAccess.py b/service/esiAccess.py
index bbddc6384..db1931fa2 100644
--- a/service/esiAccess.py
+++ b/service/esiAccess.py
@@ -1,4 +1,4 @@
-'''
+"""
A lot of the inspiration (and straight up code copying!) for this class comes from EsiPy
Much of the credit goes to the maintainer of that package, Kyria . The reasoning for no
@@ -7,7 +7,7 @@ low level.
Eventually I'll rewrite this to be a bit cleaner and a bit more generic, but for now, it works!
-'''
+"""
# noinspection PyPackageRequirements
from logbook import Logger
@@ -63,7 +63,7 @@ class APIException(Exception):
elif 'message' in self.response:
return 'HTTP Error %s: %s' % (self.status_code,
self.response['message'])
- return 'HTTP Error %s' % (self.status_code)
+ return 'HTTP Error %s' % self.status_code
class ESIEndpoints(Enum):
@@ -89,7 +89,7 @@ class EsiAccess(object):
@property
def sso_url(self):
- if (self.settings.get("ssoMode") == SsoMode.CUSTOM):
+ if self.settings.get("ssoMode") == SsoMode.CUSTOM:
return "https://login.eveonline.com"
return "https://www.pyfa.io"
@@ -136,7 +136,7 @@ class EsiAccess(object):
def getLoginURI(self, redirect=None):
self.state = str(uuid.uuid4())
- if (self.settings.get("ssoMode") == SsoMode.AUTO):
+ if self.settings.get("ssoMode") == SsoMode.AUTO:
args = {
'state': self.state,
'pyfa_version': config.version,
@@ -256,7 +256,7 @@ class EsiAccess(object):
self._session.headers.update(self.get_oauth_header(ssoChar.accessToken))
def _after_request(self, resp):
- if ("warning" in resp.headers):
+ if "warning" in resp.headers:
pyfalog.warn("{} - {}".format(resp.headers["warning"], resp.url))
if resp.status_code >= 400:
diff --git a/service/fit.py b/service/fit.py
index f58c5eed4..d830dda3e 100644
--- a/service/fit.py
+++ b/service/fit.py
@@ -18,33 +18,31 @@
# ===============================================================================
import copy
-from logbook import Logger
-from time import time
import datetime
+from time import time
+
+import wx
+from logbook import Logger
import eos.db
-from eos.saveddata.booster import Booster as es_Booster
-from eos.saveddata.cargo import Cargo as es_Cargo
from eos.saveddata.character import Character as saveddata_Character
from eos.saveddata.citadel import Citadel as es_Citadel
from eos.saveddata.damagePattern import DamagePattern as es_DamagePattern
from eos.saveddata.drone import Drone as es_Drone
from eos.saveddata.fighter import Fighter as es_Fighter
-from eos.saveddata.implant import Implant as es_Implant
-from eos.saveddata.ship import Ship as es_Ship
-from eos.saveddata.module import Module as es_Module, State, Slot, ProjectedMap, ProjectedSystem, LocalMap
from eos.saveddata.fit import Fit as FitType, ImplantLocation
+from eos.saveddata.module import Module as es_Module, State
+from eos.saveddata.ship import Ship as es_Ship
from service.character import Character
from service.damagePattern import DamagePattern
+from service.fitDeprecated import FitDeprecated
from service.settings import SettingsProvider
from utils.deprecated import deprecated
-import wx
-from service.fitDeprecated import FitDeprecated
pyfalog = Logger(__name__)
-class DeferRecalc():
+class DeferRecalc:
def __init__(self, fitID):
self.fitID = fitID
self.sFit = Fit.getInstance()
diff --git a/service/fitDeprecated.py b/service/fitDeprecated.py
index c145b858c..531191b9d 100644
--- a/service/fitDeprecated.py
+++ b/service/fitDeprecated.py
@@ -458,7 +458,7 @@ class FitDeprecated(object):
if m.isValidState(State.ACTIVE):
m.state = State.ACTIVE
- if (recalc):
+ if recalc:
# As some items may affect state-limiting attributes of the ship, calculate new attributes first
self.recalc(fit)
# Then, check states of all modules and change where needed. This will recalc if needed
diff --git a/service/jargon/jargon.py b/service/jargon/jargon.py
index bc9a0d525..3530d0859 100644
--- a/service/jargon/jargon.py
+++ b/service/jargon/jargon.py
@@ -17,9 +17,6 @@
# along with pyfa. If not, see .
# =============================================================================
-import config
-import pkg_resources
-
class Jargon(object):
def __init__(self, rawdata: dict):
diff --git a/service/market.py b/service/market.py
index 545b1a66f..3e128cbbc 100644
--- a/service/market.py
+++ b/service/market.py
@@ -17,25 +17,22 @@
# along with pyfa. If not, see .
# ===============================================================================
-import re
-import threading
-from logbook import Logger
import queue
-from itertools import chain
+import threading
+from collections import OrderedDict
# noinspection PyPackageRequirements
import wx
+from logbook import Logger
from sqlalchemy.sql import or_
import config
import eos.db
-from service import conversions
-from service.settings import SettingsProvider
-from service.jargon import JargonLoader
-
from eos.gamedata import Category as types_Category, Group as types_Group, Item as types_Item, MarketGroup as types_MarketGroup, \
MetaGroup as types_MetaGroup, MetaType as types_MetaType
-from collections import OrderedDict
+from service import conversions
+from service.jargon import JargonLoader
+from service.settings import SettingsProvider
pyfalog = Logger(__name__)
diff --git a/service/marketSources/evemarketdata.py b/service/marketSources/evemarketdata.py
index be42cb66d..bd1f8f3af 100644
--- a/service/marketSources/evemarketdata.py
+++ b/service/marketSources/evemarketdata.py
@@ -18,12 +18,12 @@
# =============================================================================
import time
-from logbook import Logger
from xml.dom import minidom
-from service.network import Network
-from service.price import Price, VALIDITY, TIMEOUT, TimeoutError
+from logbook import Logger
+from service.network import Network
+from service.price import Price, TIMEOUT, VALIDITY
pyfalog = Logger(__name__)
diff --git a/service/marketSources/evemarketer.py b/service/marketSources/evemarketer.py
index 948b9ec48..a2728ddfb 100644
--- a/service/marketSources/evemarketer.py
+++ b/service/marketSources/evemarketer.py
@@ -18,12 +18,12 @@
# =============================================================================
import time
-from logbook import Logger
from xml.dom import minidom
-from service.network import Network
-from service.price import Price, VALIDITY, TIMEOUT, TimeoutError
+from logbook import Logger
+from service.network import Network
+from service.price import Price, VALIDITY
pyfalog = Logger(__name__)
diff --git a/service/port/efs.py b/service/port/efs.py
index d1dd394d9..4420adc90 100755
--- a/service/port/efs.py
+++ b/service/port/efs.py
@@ -1,23 +1,20 @@
-import inspect
-import os
-import platform
-import re
-import sys
-import traceback
import json
-import eos.db
-
+import json
from math import log
+
+from logbook import Logger
+
+import eos.db
from config import version as pyfaVersion
+from eos.db import gamedata_session, getAttributeInfo, getCategory, getGroup
+from eos.effectHandlerHelpers import HandledList
+from eos.enum import Enum
+from eos.gamedata import Attribute, Effect, Group, Item, ItemEffect
+from eos.saveddata.drone import Drone
+from eos.saveddata.module import Hardpoint, Module, Slot, State
from service.fit import Fit
from service.market import Market
-from eos.enum import Enum
-from eos.saveddata.module import Hardpoint, Slot, Module, State
-from eos.saveddata.drone import Drone
-from eos.effectHandlerHelpers import HandledList
-from eos.db import gamedata_session, getItemsByCategory, getCategory, getAttributeInfo, getGroup
-from eos.gamedata import Category, Group, Item, Traits, Attribute, Effect, ItemEffect
-from logbook import Logger
+
pyfalog = Logger(__name__)
@@ -29,7 +26,7 @@ class RigSize(Enum):
CAPITAL = 4
-class EfsPort():
+class EfsPort:
wepTestSet = {}
version = 0.01
@@ -500,7 +497,7 @@ class EfsPort():
# Since the effect modules are fairly opaque a mock test fit is used to test the impact of traits.
# standin class used to prevent . notation causing issues when used as an arg
- class standin():
+ class standin:
pass
tf = standin()
tf.modules = HandledList(turrets + launchers)
diff --git a/service/prereqsCheck.py b/service/prereqsCheck.py
index f0e064796..159468591 100644
--- a/service/prereqsCheck.py
+++ b/service/prereqsCheck.py
@@ -1,7 +1,6 @@
-import sys
-import inspect
-import re
import platform
+import re
+import sys
version_block = ''
@@ -10,7 +9,7 @@ class PreCheckException(Exception):
pass
-class PreCheckMessage():
+class PreCheckMessage:
def __init__(self, msg):
# wx may not be installed, in which case print to console. For all other prechecks, should pop up a MessageDialog
try:
diff --git a/service/price.py b/service/price.py
index 2b8cd474b..fed4b3eb2 100644
--- a/service/price.py
+++ b/service/price.py
@@ -18,18 +18,17 @@
# =============================================================================
-import time
-import threading
import queue
-from xml.dom import minidom
+import threading
+import time
-from logbook import Logger
import wx
+from logbook import Logger
from eos import db
-from service.network import Network, TimeoutError
from service.fit import Fit
from service.market import Market
+from service.network import TimeoutError
pyfalog = Logger(__name__)
@@ -235,4 +234,3 @@ class PriceWorkerThread(threading.Thread):
self.wait[x.typeID].append(callback)
-from service.marketSources import evemarketer, evemarketdata # noqa: E402
diff --git a/service/update.py b/service/update.py
index 246b520fd..a2f4cf730 100644
--- a/service/update.py
+++ b/service/update.py
@@ -17,21 +17,19 @@
# along with pyfa. If not, see .
# =============================================================================
-import threading
-import json
import calendar
+import threading
-# noinspection PyPackageRequirements
-import wx
# noinspection PyPackageRequirements
import dateutil.parser
+# noinspection PyPackageRequirements
+import wx
+from logbook import Logger
+from packaging.version import Version
import config
from service.network import Network
from service.settings import UpdateSettings
-from logbook import Logger
-from packaging.version import Version
-
pyfalog = Logger(__name__)
diff --git a/tests/test_locale/file_dialog.py b/tests/test_locale/file_dialog.py
index 357037265..f72dccf8c 100644
--- a/tests/test_locale/file_dialog.py
+++ b/tests/test_locale/file_dialog.py
@@ -1,9 +1,9 @@
# noinspection PyPackageRequirements
-import wx
-import sys
import os
import sys
+import wx
+
script_dir = os.path.dirname(os.path.abspath(__file__))
# Add root to python paths, this allows us to import submodules
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..')))
diff --git a/tests/test_modules/test_eos/test_gamedata.py b/tests/test_modules/test_eos/test_gamedata.py
index 4a8674339..73aac3945 100644
--- a/tests/test_modules/test_eos/test_gamedata.py
+++ b/tests/test_modules/test_eos/test_gamedata.py
@@ -6,8 +6,6 @@ script_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..', '..')))
# noinspection PyPackageRequirements
-from _development.helpers import DBInMemory as DB, Gamedata, Saveddata
-from _development.helpers_fits import RifterFit, KeepstarFit
def test_race(DB, RifterFit, KeepstarFit):
"""
diff --git a/tests/test_modules/test_eos/test_modifiedAttributeDict.py b/tests/test_modules/test_eos/test_modifiedAttributeDict.py
index 649cfaee8..71bc5d892 100644
--- a/tests/test_modules/test_eos/test_modifiedAttributeDict.py
+++ b/tests/test_modules/test_eos/test_modifiedAttributeDict.py
@@ -9,8 +9,6 @@ print(script_dir)
sys.path.append(script_dir)
# noinspection PyPackageRequirements
-from _development.helpers import DBInMemory as DB, Gamedata, Saveddata
-from _development.helpers_fits import RifterFit
def test_multiply_stacking_penalties(DB, Saveddata, RifterFit):
"""
diff --git a/tests/test_modules/test_eos/test_saveddata/test_booster.py b/tests/test_modules/test_eos/test_saveddata/test_booster.py
index 05576c3fc..11df6280d 100644
--- a/tests/test_modules/test_eos/test_saveddata/test_booster.py
+++ b/tests/test_modules/test_eos/test_saveddata/test_booster.py
@@ -7,9 +7,6 @@ script_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..', '..', '..')))
# noinspection PyPackageRequirements
-from _development.helpers import DBInMemory as DB, Gamedata, Saveddata
-from _development.helpers_fits import RifterFit, KeepstarFit
-from _development.helpers_items import StrongBluePillBooster
def test_itemModifiedAttributes(DB, StrongBluePillBooster):
diff --git a/tests/test_modules/test_eos/test_saveddata/test_fit_2.py b/tests/test_modules/test_eos/test_saveddata/test_fit_2.py
index e60d43088..894a3e103 100644
--- a/tests/test_modules/test_eos/test_saveddata/test_fit_2.py
+++ b/tests/test_modules/test_eos/test_saveddata/test_fit_2.py
@@ -4,14 +4,11 @@
# This must be done on every test in order to pass in Travis
import os
import sys
-from copy import deepcopy
script_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..', '..', '..')))
# noinspection PyPackageRequirements
-from _development.helpers import DBInMemory as DB, Gamedata, Saveddata
-from _development.helpers_fits import RifterFit, KeepstarFit, HeronFit
def test_calculateModifiedAttributes(DB, RifterFit, KeepstarFit):
diff --git a/tests/test_modules/test_service/test_fit.py b/tests/test_modules/test_service/test_fit.py
index b110dd2da..18f5a9e52 100644
--- a/tests/test_modules/test_service/test_fit.py
+++ b/tests/test_modules/test_service/test_fit.py
@@ -6,9 +6,7 @@ script_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..', '..')))
# noinspection PyPackageRequirements
-from _development.helpers import DBInMemory as DB, Gamedata, Saveddata
# noinspection PyPackageRequirements
-from _development.helpers_fits import RifterFit, KeepstarFit
from service.fit import Fit
diff --git a/tests/test_unread_desc.py b/tests/test_unread_desc.py
index 5fc54fd14..824475d4f 100644
--- a/tests/test_unread_desc.py
+++ b/tests/test_unread_desc.py
@@ -64,8 +64,8 @@ def print_db_info():
import eos
print()
print("------------ data base connection info ------------")
- print((eos.db.saveddata_engine))
- print((eos.db.gamedata_engine))
+ print(eos.db.saveddata_engine)
+ print(eos.db.gamedata_engine)
print()
diff --git a/utils/strfunctions.py b/utils/strfunctions.py
index 8532d9c18..833277d17 100644
--- a/utils/strfunctions.py
+++ b/utils/strfunctions.py
@@ -1,6 +1,6 @@
-'''
+"""
string manipulation module
-'''
+"""
import re