From aee2325335878b630bcef252e0dcf9507bc30e63 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Wed, 18 Aug 2021 11:07:59 -0700 Subject: build: Fully annotate EnvironmentVariables --- mesonbuild/build.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'mesonbuild/build.py') diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 0143022..62f6f6e 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -427,11 +427,11 @@ class ExtractedObjects(HoldableObject): class EnvironmentVariables(HoldableObject): def __init__(self) -> None: - self.envvars = [] + self.envvars: T.List[T.Tuple[T.Callable[[T.Dict[str, str], str, T.List[str], str], str], str, T.List[str], str]] = [] # The set of all env vars we have operations for. Only used for self.has_name() - self.varnames = set() + self.varnames: T.Set[str] = set() - def __repr__(self): + def __repr__(self) -> str: repr_str = "<{0}: {1}>" return repr_str.format(self.__class__.__name__, self.envvars) @@ -450,14 +450,17 @@ class EnvironmentVariables(HoldableObject): self.varnames.add(name) self.envvars.append((self._prepend, name, values, separator)) - def _set(self, env: T.Dict[str, str], name: str, values: T.List[str], separator: str) -> str: + @staticmethod + def _set(env: T.Dict[str, str], name: str, values: T.List[str], separator: str) -> str: return separator.join(values) - def _append(self, env: T.Dict[str, str], name: str, values: T.List[str], separator: str) -> str: + @staticmethod + def _append(env: T.Dict[str, str], name: str, values: T.List[str], separator: str) -> str: curr = env.get(name) return separator.join(values if curr is None else [curr] + values) - def _prepend(self, env: T.Dict[str, str], name: str, values: T.List[str], separator: str) -> str: + @staticmethod + def _prepend(env: T.Dict[str, str], name: str, values: T.List[str], separator: str) -> str: curr = env.get(name) return separator.join(values if curr is None else values + [curr]) -- cgit v1.1 From 8c90140f2bcc1025cc37c5489ef3f60c469009a5 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Tue, 10 Aug 2021 15:00:05 -0700 Subject: build: add ability to set initial value of EnvironmentVariables Which is useful as we move the validation out of the the EnvironmentVariablesObject --- mesonbuild/build.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'mesonbuild/build.py') diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 62f6f6e..bc4065b 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -426,11 +426,15 @@ class ExtractedObjects(HoldableObject): ] class EnvironmentVariables(HoldableObject): - def __init__(self) -> None: + def __init__(self, values: T.Optional[T.Dict[str, str]] = None) -> None: self.envvars: T.List[T.Tuple[T.Callable[[T.Dict[str, str], str, T.List[str], str], str], str, T.List[str], str]] = [] # The set of all env vars we have operations for. Only used for self.has_name() self.varnames: T.Set[str] = set() + if values: + for name, value in values.items(): + self.set(name, [value]) + def __repr__(self) -> str: repr_str = "<{0}: {1}>" return repr_str.format(self.__class__.__name__, self.envvars) -- cgit v1.1