Update main.py, api.py and seven other files

This commit is contained in:
Richard Bronkhorst
2023-06-12 10:51:01 +02:00
parent 415d0e98c1
commit 80badca912
9 changed files with 79 additions and 26 deletions

View File

@@ -1,16 +1,19 @@
from copy import deepcopy
from dataclasses import dataclass
from nullptr.util import sg
@dataclass
class Base:
symbol: str
dirty: bool
store: object
def __init__(self, symbol, store):
self.symbol = symbol
self.store = store
self.dirty = True
self.symbol = symbol
def __hash__(self):
return hash(self.symbol)
def seta(self, attr, d, name=None):
if name is None:
name = attr
@@ -25,17 +28,19 @@ class Base:
setattr(self, attr, lst)
def __setattr__(self, name, value):
if name != 'dirty':
self.dirty = True
if name not in ['symbol','store']:
self.store.dirty(self)
super().__setattr__(name, value)
def update(self, d):
pass
def dict(self):
r = deepcopy(self.__dict__)
del r['store']
del r['dirty']
r = {}
for k,v in self.__dict__.items():
if k == 'store':
continue
r[k] = deepcopy(v)
return r
def path(self):

View File

@@ -0,0 +1,20 @@
from .base import Base
from typing import List
class Jumpgate(Base):
range: int
faction: str
systems:List[str] = []
def update(self, d):
self.setlst('systems', d, 'connectedSystems', 'symbol')
self.seta('faction', d, 'factionSymbol')
self.seta('range', d, 'jumpRange')
@classmethod
def ext(self):
return 'jmp'
def path(self):
sector, system, symbol = self.symbol.split('-')
return f'atlas/{sector}/{system[0:1]}/{system}/{symbol}.{self.ext()}'

View File

@@ -17,5 +17,5 @@ class Marketplace(Base):
return 'mkt'
def path(self):
sector, system, symbol, _ = self.symbol.split('-')
sector, system, symbol = self.symbol.split('-')
return f'atlas/{sector}/{system[0:1]}/{system}/{symbol}.{self.ext()}'

View File

@@ -14,8 +14,7 @@ class Waypoint(Base):
self.seta('y', d)
self.seta('type', d)
self.seta('faction', d, 'faction.symbol')
if 'traits' in d:
self.traits = [mg(t, 'symbol') for t in d['traits'] ]
self.setlst('traits', d, 'traits', 'symbol')
@classmethod
def ext(self):