Move fetch function to shared

This commit is contained in:
DarkPhoenix
2018-11-19 16:57:19 +03:00
parent 74bf3fbc8b
commit fa9b3be41c
3 changed files with 41 additions and 19 deletions

View File

@@ -35,7 +35,7 @@ from eos.saveddata.fit import Fit
from service.fit import Fit as svcFit
from service.market import Market
from service.port.muta import exportMutant
from service.port.shared import IPortUser, processing_notify
from service.port.shared import IPortUser, fetchItem, processing_notify
from enum import Enum
@@ -536,7 +536,7 @@ def _importGetMutationData(lines):
if attrInfo is None:
continue
mutaAttrs[attrInfo.ID] = value
mutaItem = _fetchItem(mutaName)
mutaItem = fetchItem(mutaName)
if mutaItem is None:
continue
data[ref] = (mutaItem, mutaAttrs)
@@ -577,7 +577,7 @@ def _importCreateFit(lines):
shipType = m.group('shipType').strip()
fitName = m.group('fitName').strip()
try:
ship = _fetchItem(shipType)
ship = fetchItem(shipType)
try:
fit.ship = Ship(ship)
except ValueError:
@@ -589,20 +589,6 @@ def _importCreateFit(lines):
return fit
def _fetchItem(typeName, eagerCat=False):
sMkt = Market.getInstance()
eager = 'group.category' if eagerCat else None
try:
item = sMkt.getItem(typeName, eager=eager)
except:
pyfalog.warning('service.port.eft: unable to fetch item "{}"'.format(typeName))
return None
if sMkt.getPublicityByItem(item):
return item
else:
return None
def _clearTail(lst):
while lst and lst[-1] is None:
del lst[-1]
@@ -657,7 +643,7 @@ class Section:
class BaseItemSpec:
def __init__(self, typeName):
item = _fetchItem(typeName, eagerCat=True)
item = fetchItem(typeName, eagerCat=True)
if item is None:
raise EftImportError
self.typeName = typeName
@@ -694,7 +680,7 @@ class RegularItemSpec(BaseItemSpec):
def __fetchCharge(self, chargeName):
if chargeName:
charge = _fetchItem(chargeName, eagerCat=True)
charge = fetchItem(chargeName, eagerCat=True)
if not charge or charge.category.name != 'Charge':
charge = None
else:

View File

@@ -20,6 +20,7 @@
from eos.db.gamedata.queries import getAttributeInfo
from gui.utils.numberFormatter import roundToPrec
from service.port.shared import fetchItem
def exportMutant(mutant, firstPrefix='', prefix=''):
@@ -36,3 +37,17 @@ def exportMutant(mutant, firstPrefix='', prefix=''):
for a in sorted(mutatedAttrs))
exportLines.append('{}{}'.format(prefix, customAttrsLine))
return '\n'.join(exportLines)
def importMutant(lines):
try:
baseName = lines[0]
except IndexError:
return None
baseName = baseName.strip()
mutant = fetchItem(baseName)
# try:
# mutaName = lines[1]
# except IndexError:
# return mutant

View File

@@ -20,6 +20,13 @@
from abc import ABCMeta, abstractmethod
from logbook import Logger
from service.market import Market
pyfalog = Logger(__name__)
class UserCancelException(Exception):
"""when user cancel on port processing."""
@@ -68,3 +75,17 @@ class IPortUser(metaclass=ABCMeta):
def processing_notify(iportuser, flag, data):
if not iportuser.on_port_processing(flag, data):
raise UserCancelException
def fetchItem(typeName, eagerCat=False):
sMkt = Market.getInstance()
eager = 'group.category' if eagerCat else None
try:
item = sMkt.getItem(typeName, eager=eager)
except:
pyfalog.warning('service.port.shared: unable to fetch item "{}"'.format(typeName))
return None
if sMkt.getPublicityByItem(item):
return item
else:
return None