Exemple #1
0
 def __getitem__(self, key: str) -> Any:
     if key not in self._data:
         raise NoConfigError(key)
     env_var = self._config_map[key].env_var
     if env_var is not None and env_var in os.environ:
         return os.environ[env_var]
     return self._data[key]
Exemple #2
0
 def __getitem__(self, key: str) -> Any:
     if key not in self._config_map and key not in self.deprecated:
         raise NoConfigError(key)
     config_key = self.deprecated.get(key, key)
     config = self._config_map[config_key]
     env_var = config.env_var
     if env_var is not None and env_var in os.environ:
         result = os.environ[env_var]
     else:
         if config_key in self._data:
             result = self._data[config_key]
         elif config.replace:
             result = self._data[config.replace]
         else:
             raise NoConfigError(key) from None
     return config.coerce(result)
Exemple #3
0
    def __setitem__(self, key: str, value: Any) -> None:
        if key not in self._config_map and key not in self.deprecated:
            raise NoConfigError(key)
        config_key = self.deprecated.get(key, key)
        config = self._config_map[config_key]
        if not self.is_global and config.global_only:
            raise ValueError(
                f"Config item '{key}' is not allowed to set in project config."
            )

        value = config.coerce(value)
        env_var = config.env_var
        if env_var is not None and env_var in os.environ:
            click.echo(
                termui.yellow(
                    "WARNING: the config is shadowed by env var '{}', "
                    "the value set won't take effect.".format(env_var)
                )
            )
        self._data[config_key] = value
        self._file_data[config_key] = value
        if config.replace:
            self._data.pop(config.replace, None)
            self._file_data.pop(config.replace, None)
        self._save_config()
Exemple #4
0
 def __getitem__(self, key: str) -> Any:
     if key not in self._data:
         raise NoConfigError(key)
     env_var = self._config_map[key].env_var
     if env_var is not None and env_var in os.environ:
         env_value = os.environ[env_var]
         if isinstance(self._config_map[key].default, bool):
             env_value = ensure_boolean(env_value)
         return env_value
     return self._data[key]
Exemple #5
0
 def __getitem__(self, key: str) -> Any:
     env_var = self._config_map[key].env_var
     if env_var is not None and env_var in os.environ:
         result = os.environ[env_var]
     else:
         try:
             result = self._data[key]
         except KeyError:
             raise NoConfigError(key) from None
     return self._config_map[key].coerce(result)
Exemple #6
0
 def __setitem__(self, key: str, value: Any) -> None:
     if key not in self.CONFIG_ITEMS:
         raise NoConfigError(key)
     if isinstance(value, str):
         if value.lower() == "false":
             value = False
         elif value.lower() == "true":
             value = True
     self._dirty[key] = value
     self._data[key] = value
Exemple #7
0
    def __setitem__(self, key: str, value: Any) -> None:
        if key not in self._config_map:
            raise NoConfigError(key)
        if not self.is_global and self._config_map[key].global_only:
            raise ValueError(
                f"Config item '{key}' is not allowed to set in project config."
            )

        value = self._config_map[key].coerce(value)
        env_var = self._config_map[key].env_var
        if env_var is not None and env_var in os.environ:
            click.echo(
                termui.yellow(
                    "WARNING: the config is shadowed by env var '{}', "
                    "the value set won't take effect.".format(env_var)))
        self._data[key] = value
        self._file_data[key] = value
        self._save_config()
Exemple #8
0
 def __setitem__(self, key: str, value: Any) -> None:
     if key not in self._config_map:
         raise NoConfigError(key)
     if not self.is_global and self._config_map[key].global_only:
         raise ValueError(
             f"Config item '{key}' is not allowed to set in project config."
         )
     if isinstance(value, str):
         if value.lower() == "false":
             value = False
         elif value.lower() == "true":
             value = True
     env_var = self._config_map[key].env_var
     if env_var is not None and env_var in os.environ:
         stream.echo(
             stream.yellow(
                 "WARNING: the config is shadowed by env var '{}', "
                 "set value won't take effect.".format(env_var)))
     self._data[key] = value
     self._file_data[key] = value
     self._save_config()
Exemple #9
0
 def __getitem__(self, key: str) -> Any:
     try:
         return self._data[key]
     except KeyError:
         raise NoConfigError(key) from None
Exemple #10
0
 def __setitem__(self, key: str, value: Any) -> None:
     if key not in self.DEFAULT_CONFIG:
         raise NoConfigError(key)
     self._dirty[key] = value
     self._data[key] = value