def load(filepath=None, filecontent=None):
conf = DotDict()<EOL>assert filepath or filecontent<EOL>if not filecontent:<EOL><INDENT>with io.FileIO(filepath) as handle:<EOL><INDENT>filecontent = handle.read().decode('<STR_LIT:utf-8>')<EOL><DEDENT><DEDENT>configs = json.loads(filecontent)<EOL>conf.update(configs.items())<EOL>return conf<EOL>
Read the json file located at `filepath`

    If `filecontent` is specified, its content will be json decoded
    and loaded instead.

    Usage:
        config.load(filepath=None, filecontent=None):
        Provide either a filepath or a json string