def __init__(self): base_config = _load_config(BROWNIE_FOLDER.joinpath("data/default-config.yaml")) if Path.home().joinpath("brownie-config.yaml").exists(): home_config = _load_config(Path.home().joinpath("brownie-config.yaml")) _recursive_update(base_config, home_config) network_config = _load_config(_get_data_folder().joinpath("network-config.yaml")) self.networks = {} for value in network_config["development"]: key = value["id"] if key in self.networks: raise ValueError(f"Multiple networks using ID '{key}'") self.networks[key] = value for value in [x for i in network_config["live"] for x in i["networks"]]: key = value["id"] if key in self.networks: raise ValueError(f"Multiple networks using ID '{key}'") self.networks[key] = value # make sure chainids are always strings for network, values in self.networks.items(): if "chainid" in values: self.networks[network]["chainid"] = str(values["chainid"]) self.argv = defaultdict(lambda: None) self.settings = _Singleton("settings", (ConfigDict,), {})(base_config) self._active_network = None self.settings._lock() _modify_hypothesis_settings(self.settings["hypothesis"], "brownie-base", "default")
def _load_default_config() -> Any: """Loads the default configuration settings from brownie/data/config.json""" brownie_path = Path(__file__).parent path = brownie_path.joinpath("data/config.json") config = _Singleton("Config", (ConfigDict,), {})(_load_json(path)) config.update({"active_network": {"name": None}, "brownie_folder": brownie_path}) return config
def _load_default_config(): '''Loads the default configuration settings from brownie/data/config.json''' brownie_path = Path(__file__).parent path = brownie_path.joinpath("data/config.json") config = _Singleton("Config", (ConfigDict,), {})(_load_json(path)) config.update({ 'active_network': {'name': None}, 'brownie_folder': brownie_path, }) return config
def _load_default_config(): '''Loads the default configuration settings from brownie/data/config.json''' with Path(__file__).parent.joinpath("data/config.json").open() as fp: config = _Singleton("Config", (ConfigDict,), {})(json.load(fp)) config['folders'] = { 'brownie': str(Path(__file__).parent), 'project': None } config['active_network'] = {'name': None} return config
def _load_default_config() -> "ConfigDict": # Loads the default configuration settings from brownie/data/config.yaml base_config = BROWNIE_FOLDER.joinpath("data/brownie-config.yaml") if not DATA_FOLDER.exists(): DATA_FOLDER.mkdir() config = _Singleton("Config", (ConfigDict, ), {})(_load_config(base_config)) # type: ignore config["active_network"] = {"name": None} _modify_hypothesis_settings(config) return config
def _load_default_config() -> "ConfigDict": # Loads the default configuration settings from brownie/data/config.yaml base_config = BROWNIE_FOLDER.joinpath("data/brownie-config.yaml") default_config = DATA_FOLDER.joinpath("brownie-config.yaml") if not DATA_FOLDER.exists(): DATA_FOLDER.mkdir() if not default_config.exists(): shutil.copy(base_config, default_config) config = _Singleton("Config", (ConfigDict, ), {})(_load_config(base_config)) # type: ignore _recursive_update(config, _load_config(default_config), []) config["active_network"] = {"name": None} return config
original[k] = new[k] def _update_argv_from_docopt(args: Dict) -> None: CONFIG.argv.update(dict((k.lstrip("-"), v) for k, v in args.items())) def _get_data_folder() -> Path: return DATA_FOLDER def _make_data_folders(data_folder: Path) -> None: # create data folder structure data_folder.mkdir(exist_ok=True) for folder in DATA_SUBFOLDERS: data_folder.joinpath(folder).mkdir(exist_ok=True) if not data_folder.joinpath("network-config.yaml").exists(): shutil.copyfile( BROWNIE_FOLDER.joinpath("data/network-config.yaml"), data_folder.joinpath("network-config.yaml"), ) warnings.filterwarnings("once", category=DeprecationWarning, module="brownie") # create data folders _make_data_folders(DATA_FOLDER) CONFIG = _Singleton("Config", (ConfigContainer,), {})()
hypothesis_defaults.update(config.get("hypothesis", {})) hypothesis.settings.register_profile("brownie", **hypothesis_defaults) hypothesis.settings.load_profile("brownie") def _recursive_update(original: Dict, new: Dict, base: List) -> None: # merges project config with brownie default config for k in new: if type(new[k]) is dict and k in REPLACE: original[k] = new[k] elif type(new[k]) is dict and k in original: _recursive_update(original[k], new[k], base + [k]) else: original[k] = new[k] def _update_argv_from_docopt(args: Dict) -> None: ARGV.update(dict((k.lstrip("-"), v) for k, v in args.items())) def _get_data_folder() -> Path: return DATA_FOLDER # create argv object ARGV = _Singleton("Argv", (defaultdict, ), {})(lambda: None) # type: ignore # load config CONFIG = _load_default_config()