import os
import os.path
import json
from collections import defaultdict
def _load_single_server(name):
filename = ''.join(['data/', name, '.json'])
try:
with open(filename) as f:
return ''.join(f.readlines())
except IOError:
return False
def single_server(name):
server = _load_single_server(name)
if server:
try:
return json.loads(server)
except ValueError:
return False
else:
return False
def _get_json_files(root, files):
for f in files:
if f.endswith('.json'):
yield os.path.join(root, f)
def all_servers():
for root, _, files in os.walk('data'):
for f in _get_json_files(root, files):
with open(f) as fb:
try:
yield json.load(fb)
except ValueError:
fb.close()
continue
def all_servers_by_type(type):
for server in all_servers():
if server['server_type'] == type:
yield server
def split_all_servers_to_types():
servers = defaultdict(list)
for server in all_servers():
servers[server['server_type']].append(server)
return servers