Update atlas_builder.py and store.py

This commit is contained in:
Richard Bronkhorst 2023-06-12 13:56:56 +02:00
parent b19a52d1aa
commit 9410726f07
2 changed files with 18 additions and 3 deletions

View File

@ -28,6 +28,8 @@ class AtlasBuilder:
for w in waypoints: for w in waypoints:
if self.stop_auto: if self.stop_auto:
break break
if 'UNCHARTED' in w.traits:
continue
if 'MARKETPLACE' in w.traits: if 'MARKETPLACE' in w.traits:
self.api.marketplace(w) self.api.marketplace(w)
print(f'marketplace at {w}') print(f'marketplace at {w}')

View File

@ -30,6 +30,20 @@ class Store:
data['store'] = self data['store'] = self
obj.__dict__ = data obj.__dict__ = data
def get_file(self, typ, path):
if not isfile(path):
return None
with open(path) as f:
data = json.load(f)
symbol = mg(data, 'symbol')
oid = f'{symbol}.{typ.ext()}'
if oid in self.data:
return self.data[oid]
obj = typ(symbol, self)
self.load(obj)
self.data[oid] = obj
return obj
def store(self, obj): def store(self, obj):
path = self.path(obj) path = self.path(obj)
path_dir = dirname(path) path_dir = dirname(path)
@ -69,8 +83,7 @@ class Store:
continue continue
if not fil.endswith(ext): if not fil.endswith(ext):
continue continue
symbol = f[:-len(ext)] yield self.get_file(typ, fil)
yield self.get(typ, symbol)
def flush(self): def flush(self):
@ -81,4 +94,4 @@ class Store:
self.store(obj) self.store(obj)
self.dirty_objects = set() self.dirty_objects = set()
dur = time() - start_time dur = time() - start_time
print(f'flush done {it} items {dur:.2f}') # print(f'flush done {it} items {dur:.2f}')