47 lines
1.9 KiB
Python
47 lines
1.9 KiB
Python
import os
|
|
import yaml
|
|
|
|
|
|
# create an empty dictionary to store the demand tags
|
|
demand_tags = {} # demand tags with demands
|
|
world_tags = {} # available resources tags with resources available
|
|
commoditys = {} # commoditys by name
|
|
productions = {} # list of production rules by commodity name
|
|
productions_uses = {} # list of productions that are a key commodity
|
|
data={}
|
|
def search_yaml_files(directory = "db"):
|
|
"""
|
|
Load all tags from the db
|
|
"""
|
|
# iterate through the YAML files in the directory
|
|
for filename in os.listdir(directory):
|
|
filepath = os.path.join(directory, filename)
|
|
if os.path.isdir(filepath):
|
|
search_yaml_files(filepath)
|
|
elif filename.endswith(".yml"):
|
|
# open and read the YAML file
|
|
with open(filepath, 'r') as file:
|
|
data = yaml.safe_load(file)
|
|
# check the kind of tag
|
|
if data['kind'] == "world":
|
|
for tag in data['spec']:
|
|
world_tags[tag['name']] = tag['res']
|
|
elif data['kind'] == "demand":
|
|
for tag in data['spec']:
|
|
demand_tags[tag['name']] = tag['res']
|
|
elif data['kind'] == "commodity":
|
|
for comm in data['spec']:
|
|
commoditys[comm['name']] = comm
|
|
elif data['kind'] == "production":
|
|
for comm in data['spec']:
|
|
if comm['name'] not in productions:
|
|
productions[comm['name']]=[]
|
|
productions[comm['name']].append(comm)
|
|
for comp in comm["prod"]:
|
|
k=list(comp.keys())[0]
|
|
if k not in productions_uses:
|
|
productions_uses[k]=[]
|
|
productions_uses[k].append(comm)
|
|
|
|
|