Skip to content

Commit 12211d6

Browse files
committed
convert env on setting
1 parent a399d07 commit 12211d6

File tree

4 files changed

+20
-7
lines changed

4 files changed

+20
-7
lines changed

src/psij/executors/batch/batch_scheduler_executor.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ def _env_to_mustache(job: Job) -> List[Dict[str, str]]:
5353

5454
r = []
5555
for k, v in job.spec.environment.items():
56-
r.append({'name': k, 'value': bash_escape(str(v))})
57-
56+
r.append({'name': k, 'value': bash_escape(v)})
5857
return r
5958

6059

src/psij/executors/local.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,6 @@ def _get_env(spec: JobSpec) -> Optional[Dict[str, str]]:
9898
# merge current env with spec env
9999
env = os.environ.copy()
100100
env.update(spec.environment)
101-
# convert integers to strings
102-
for k, v in env.items():
103-
if isinstance(v, int):
104-
env[k] = str(v)
105101
return env
106102
else:
107103
# only spec env

src/psij/job_spec.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,24 @@ def _init_job_spec_dict(self) -> Dict[str, Any]:
111111

112112
return job_spec
113113

114+
@property
115+
def environment(self) -> Optional[Dict[str, str]]:
116+
"""Return the environment dict."""
117+
return self._environment
118+
119+
@environment.setter
120+
def environment(self, env: Optional[Dict[str, Union[str, int]]]) -> None:
121+
"""Ensure env dict values to be string typed."""
122+
self._environment = None
123+
124+
if env:
125+
self._environment = {}
126+
for k, v in env.items():
127+
if isinstance(v, int):
128+
self._environment[k] = str(v)
129+
else:
130+
self._environment[k] = v
131+
114132
@property
115133
def to_dict(self) -> Dict[str, Any]:
116134
"""Returns a dictionary representation of this object."""

tests/test_job_spec.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def test_environment_types() -> None:
3232

3333
spec.environment = {'foo': 'biz', 'bar': 42}
3434
assert spec.environment['foo'] == 'biz'
35-
assert spec.environment['bar'] == 42
35+
assert spec.environment['bar'] == '42'
3636

3737

3838
test_environment_types()

0 commit comments

Comments
 (0)