summaryrefslogtreecommitdiff
path: root/src/tox/config/main.py
diff options
context:
space:
mode:
authorBernát Gábor <bgabor8@bloomberg.net>2020-10-20 12:05:25 +0100
committerBernát Gábor <bgabor8@bloomberg.net>2020-10-22 16:43:04 +0100
commit64373de0fa4cbb0ea54e3b522891dd61731da155 (patch)
treecce9e11510eff580ee5e478e8f5a0a1f23159cfb /src/tox/config/main.py
parent61869b12edd970998e235c86fcf72b189445c6eb (diff)
downloadtox-git-64373de0fa4cbb0ea54e3b522891dd61731da155.tar.gz
Typing
Signed-off-by: Bernát Gábor <bgabor8@bloomberg.net>
Diffstat (limited to 'src/tox/config/main.py')
-rw-r--r--src/tox/config/main.py41
1 files changed, 31 insertions, 10 deletions
diff --git a/src/tox/config/main.py b/src/tox/config/main.py
index fef1ce16..422bf601 100644
--- a/src/tox/config/main.py
+++ b/src/tox/config/main.py
@@ -1,23 +1,44 @@
from collections import OrderedDict
from pathlib import Path
+from typing import TYPE_CHECKING, Dict, Iterator, List
+from tox.plugin.impl import impl
+
+from .override import Override
from .sets import ConfigSet
from .source.api import Source
+if TYPE_CHECKING:
+ from tox.config.cli.parser import ToxParser
+
+
+@impl
+def tox_add_option(parser: "ToxParser") -> None:
+ parser.add_argument(
+ "-o",
+ "--override",
+ action="append",
+ type=Override,
+ default=[],
+ dest="override",
+ help="list of configuration override(s)",
+ )
+
class Config:
- def __init__(self, config_source: Source) -> None:
+ def __init__(self, config_source: Source, overrides: List[Override]) -> None:
+ self.overrides = overrides
self._src = config_source
- self.core = self._setup_core(self._src)
+ self.core = self._setup_core()
self._env_names = list(self._src.envs(self.core))
- self._envs = OrderedDict()
+ self._envs: Dict[str, ConfigSet] = OrderedDict()
- def _setup_core(self, config_source):
- core = ConfigSet(config_source.core, self)
+ def _setup_core(self) -> ConfigSet:
+ core = ConfigSet(self._src.core, self)
core.add_config(
keys=["tox_root", "toxinidir"],
of_type=Path,
- default=config_source.tox_root,
+ default=self._src.tox_root,
desc="the root directory (where the configuration file is found)",
)
from tox.plugin.manager import MANAGER
@@ -25,7 +46,7 @@ class Config:
MANAGER.tox_add_core_config(core)
return core
- def __getitem__(self, item):
+ def __getitem__(self, item: str) -> ConfigSet:
try:
return self._envs[item]
except KeyError:
@@ -33,11 +54,11 @@ class Config:
self._envs[item] = env
return env
- def __iter__(self):
+ def __iter__(self) -> Iterator[str]:
return iter(self._env_names)
- def __repr__(self):
+ def __repr__(self) -> str:
return f"{type(self).__name__}(config_source={self._src!r})"
- def __contains__(self, item):
+ def __contains__(self, item: str) -> bool:
return item in self._envs