1
1
import os
2
- from typing import Mapping , Self
2
+ from typing import Self
3
3
4
4
5
5
class GlobalOptions :
@@ -12,7 +12,7 @@ def __init__(
12
12
defaultModelProvider : str = "" ,
13
13
defaultModel : str = "" ,
14
14
cacheDir : str = "" ,
15
- env : Mapping [ str , str ] = None ,
15
+ env : list [ str ] = None ,
16
16
):
17
17
self .URL = url
18
18
self .Token = token
@@ -22,9 +22,10 @@ def __init__(
22
22
self .DefaultModelProvider = defaultModelProvider
23
23
self .CacheDir = cacheDir
24
24
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
28
29
29
30
def merge (self , other : Self ) -> Self :
30
31
cp = self .__class__ ()
@@ -37,7 +38,8 @@ def merge(self, other: Self) -> Self:
37
38
cp .DefaultModel = other .DefaultModel if other .DefaultModel != "" else self .DefaultModel
38
39
cp .DefaultModelProvider = other .DefaultModelProvider if other .DefaultModelProvider != "" else self .DefaultModelProvider
39
40
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 [])
41
43
return cp
42
44
43
45
def toEnv (self ):
@@ -76,7 +78,7 @@ def __init__(self,
76
78
defaultModel : str = "" ,
77
79
cacheDir : str = "" ,
78
80
):
79
- super ().__init__ (url , token , apiKey , baseURL , defaultModelProvider , defaultModel , cacheDir )
81
+ super ().__init__ (url , token , apiKey , baseURL , defaultModelProvider , defaultModel , cacheDir , env )
80
82
self .input = input
81
83
self .disableCache = disableCache
82
84
self .subTool = subTool
@@ -87,7 +89,6 @@ def __init__(self,
87
89
self .credentialOverrides = credentialOverrides
88
90
self .credentialContexts = credentialContexts
89
91
self .location = location
90
- self .env = env
91
92
self .forceSequential = forceSequential
92
93
93
94
def merge_global_opts (self , other : GlobalOptions ) -> Self :
@@ -104,6 +105,5 @@ def merge_global_opts(self, other: GlobalOptions) -> Self:
104
105
cp .credentialOverrides = self .credentialOverrides
105
106
cp .credentialContexts = self .credentialContexts
106
107
cp .location = self .location
107
- cp .env = self .env
108
108
cp .forceSequential = self .forceSequential
109
109
return cp
0 commit comments