crashclouseau/config.py (56 lines of code) (raw):
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
# You can obtain one at http://mozilla.org/MPL/2.0/.
import json
__GLOBAL = None
__EXTS = None
__LOCAL = None
def _get_global():
global __GLOBAL
if not __GLOBAL:
with open("./config/global.json", "r") as In:
__GLOBAL = json.load(In)
return __GLOBAL
def _get_exts():
global __EXTS
if not __EXTS:
with open("./config/interesting_extensions.json", "r") as In:
data = json.load(In)
__EXTS = set(x for v in data.values() for x in v)
return __EXTS
def _get_local():
global __LOCAL
if not __LOCAL:
try:
with open("./config/local.json", "r") as In:
__LOCAL = json.load(In)
except Exception:
__LOCAL = {}
return __LOCAL
def get_channels():
return _get_global()["channels"]
def get_products():
return _get_global()["products"]
def get_limit_facets():
return _get_global()["facets_limit"]
def get_ndays():
return _get_global()["backward_lookup_ndays"]
def get_ndays_of_data():
return _get_global()["max_ndays"]
def get_extensions():
return _get_exts()
def get_max_score():
return _get_global()["score"]["max"]
def get_num_lines():
return _get_global()["score"]["number_of_lines"]
def get_database():
return _get_local().get("database", "")
def get_redis():
return _get_local().get("redis", "")
def get_socorro():
return _get_local().get("socorro", "")
def get_threshold(typ, product, channel):
return (
_get_global()
.get("thresholds", {})
.get(typ, {})
.get(product, {})
.get(channel, 1)
)