Skip to content

Commit ac27732

Browse files
committed
fix: properly handle Env from global and run options
Signed-off-by: Donnie Adams <[email protected]>
1 parent c965088 commit ac27732

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

gptscript/opts.py

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import os
2-
from typing import Mapping, Self
2+
from typing import Self
33

44

55
class GlobalOptions:
@@ -12,7 +12,7 @@ def __init__(
1212
defaultModelProvider: str = "",
1313
defaultModel: str = "",
1414
cacheDir: str = "",
15-
env: Mapping[str, str] = None,
15+
env: list[str] = None,
1616
):
1717
self.URL = url
1818
self.Token = token
@@ -22,9 +22,10 @@ def __init__(
2222
self.DefaultModelProvider = defaultModelProvider
2323
self.CacheDir = cacheDir
2424
if env is None:
25-
env = os.environ
26-
env_list = [f"{k}={v}" for k, v in env.items()]
27-
self.Env = env_list
25+
env = [f"{k}={v}" for k, v in os.environ.items()]
26+
elif isinstance(env, dict):
27+
env = [f"{k}={v}" for k, v in env.items()]
28+
self.Env = env
2829

2930
def merge(self, other: Self) -> Self:
3031
cp = self.__class__()
@@ -37,7 +38,8 @@ def merge(self, other: Self) -> Self:
3738
cp.DefaultModel = other.DefaultModel if other.DefaultModel != "" else self.DefaultModel
3839
cp.DefaultModelProvider = other.DefaultModelProvider if other.DefaultModelProvider != "" else self.DefaultModelProvider
3940
cp.CacheDir = other.CacheDir if other.CacheDir != "" else self.CacheDir
40-
cp.Env = (other.Env or []).extend(self.Env or [])
41+
cp.Env = (other.Env or [])
42+
cp.Env.extend(self.Env or [])
4143
return cp
4244

4345
def toEnv(self):
@@ -76,7 +78,7 @@ def __init__(self,
7678
defaultModel: str = "",
7779
cacheDir: str = "",
7880
):
79-
super().__init__(url, token, apiKey, baseURL, defaultModelProvider, defaultModel, cacheDir)
81+
super().__init__(url, token, apiKey, baseURL, defaultModelProvider, defaultModel, cacheDir, env)
8082
self.input = input
8183
self.disableCache = disableCache
8284
self.subTool = subTool
@@ -87,7 +89,6 @@ def __init__(self,
8789
self.credentialOverrides = credentialOverrides
8890
self.credentialContexts = credentialContexts
8991
self.location = location
90-
self.env = env
9192
self.forceSequential = forceSequential
9293

9394
def merge_global_opts(self, other: GlobalOptions) -> Self:
@@ -104,6 +105,5 @@ def merge_global_opts(self, other: GlobalOptions) -> Self:
104105
cp.credentialOverrides = self.credentialOverrides
105106
cp.credentialContexts = self.credentialContexts
106107
cp.location = self.location
107-
cp.env = self.env
108108
cp.forceSequential = self.forceSequential
109109
return cp

0 commit comments

Comments
 (0)