コード例 #1
0
ファイル: _config.py プロジェクト: asa-Q/brownie
    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")
コード例 #2
0
ファイル: _config.py プロジェクト: acolytec3/brownie
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
コード例 #3
0
ファイル: _config.py プロジェクト: melnaquib/brownie
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
コード例 #4
0
ファイル: _config.py プロジェクト: banteg/brownie
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
コード例 #5
0
ファイル: _config.py プロジェクト: thanos/brownie
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
コード例 #6
0
ファイル: _config.py プロジェクト: ETCCooperative/brownie
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
コード例 #7
0
ファイル: _config.py プロジェクト: asa-Q/brownie
            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,), {})()
コード例 #8
0
ファイル: _config.py プロジェクト: thanos/brownie
    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()