# remote data store
DataStoreConfig = namedtuple("DataStoreConfig", "server auth_token")

SERVER = "SERVER"
AUTH_TOKEN = "AUTH_TOKEN"

# Load configuration data from `project/config.json` file.
# Edit this file to change to correct values for your configuration

RESOURCE_PACKAGE = __name__
RESOURCE_PATH = "config.json"

with resource_stream(RESOURCE_PACKAGE, RESOURCE_PATH) as data:

    raw_config = load_json(data)

    HARDWARE_CONFIG = HardwareConfig(kit=raw_config.get(KIT, KNOWN_KITS.grove),
                                     platform=raw_config.get(PLATFORM))

    APP_CONFIG = AppConfig(
        vibration_threshold=raw_config.get(VIBRATION_THRESHOLD),
        noise_threshold=raw_config.get(NOISE_THRESHOLD))

    DATA_STORE_CONFIG = DataStoreConfig(
        server=raw_config.get(SERVER), auth_token=raw_config.get(
            AUTH_TOKEN)) if {SERVER, AUTH_TOKEN} <= set(raw_config) else None

    # service configs

    raw_services = raw_config.get("services", {})
# remote data store
DataStoreConfig = namedtuple("DataStoreConfig", "server auth_token")

SERVER = "SERVER"
AUTH_TOKEN = "AUTH_TOKEN"

# Load configuration data from `project/config.json` file.
# Edit this file to change to correct values for your configuration

RESOURCE_PACKAGE = __name__
RESOURCE_PATH = "config.json"


with resource_stream(RESOURCE_PACKAGE, RESOURCE_PATH) as data:

    RAW_CONFIG = load_json(data)

    HARDWARE_CONFIG = HardwareConfig(
        kit=RAW_CONFIG.get(KIT, KNOWN_KITS.grove),
        platform=RAW_CONFIG.get(PLATFORM)
    )

    APP_CONFIG = AppConfig(
        alarm_threshold=RAW_CONFIG.get(ALARM_THRESHOLD)
    )

    TWILIO_CONFIG = TwilioConfig(
        account_sid=RAW_CONFIG.get(TWILIO_ACCOUNT_SID),
        auth_token=RAW_CONFIG.get(TWILIO_AUTH_TOKEN),
        outbound_number=RAW_CONFIG.get(TWILIO_OUTBOUND_NUMBER),
        inbound_number=RAW_CONFIG.get(TWILIO_INBOUND_NUMBER)
# remote data store
DataStoreConfig = namedtuple("DataStoreConfig", "server auth_token")

SERVER = "SERVER"
AUTH_TOKEN = "AUTH_TOKEN"

# Load configuration data from `project/config.json` file.
# Edit this file to change to correct values for your configuration

RESOURCE_PACKAGE = __name__
RESOURCE_PATH = "config.json"

with resource_stream(RESOURCE_PACKAGE, RESOURCE_PATH) as data:

    RAW_CONFIG = load_json(data)

    HARDWARE_CONFIG = HardwareConfig(kit=RAW_CONFIG.get(KIT, KNOWN_KITS.grove),
                                     platform=RAW_CONFIG.get(PLATFORM))

    APP_CONFIG = AppConfig(latitude=RAW_CONFIG.get(LATITUDE, "47.641944"),
                           longitude=RAW_CONFIG.get(LONGITUDE, "-122.127222"))

    MQTT_CONFIG = MqttConfig(server=RAW_CONFIG.get(MQTT_SERVER),
                             port=RAW_CONFIG.get(MQTT_PORT, 1883),
                             client_id=RAW_CONFIG.get(MQTT_CLIENTID),
                             username=RAW_CONFIG.get(MQTT_USERNAME),
                             password=RAW_CONFIG.get(MQTT_PORT),
                             cert=RAW_CONFIG.get(MQTT_CERT),
                             key=RAW_CONFIG.get(MQTT_KEY),
                             topic=RAW_CONFIG.get(MQTT_TOPIC)) if not {