|
|
|
@ -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]) |
|
|
|
|
|
|
|
|
|