@@ -46,22 +46,47 @@ def get_defaults() -> dict[str, str]:
4646
4747@cache
4848def get_address_hrp () -> str :
49- return get_value ("default_address_hrp" )
49+ """
50+ Returns the HRP for the active environment.
51+ If not set, it returns the default value.
52+ """
53+ data = read_env_file ()
54+ active_env_name : str = data .get ("active" , "default" )
55+ return get_value ("default_address_hrp" , active_env_name )
5056
5157
5258@cache
5359def get_proxy_url () -> str :
54- return get_value ("proxy_url" )
60+ """
61+ Returns the proxy URL for the active environment.
62+ If not set, it returns an empty string.
63+ """
64+ data = read_env_file ()
65+ active_env_name : str = data .get ("active" , "default" )
66+ return get_value ("proxy_url" , active_env_name )
5567
5668
5769@cache
5870def get_explorer_url () -> str :
59- return get_value ("explorer_url" )
71+ """
72+ Returns the explorer URL for the active environment.
73+ If not set, it returns an empty string.
74+ """
75+ data = read_env_file ()
76+ active_env_name : str = data .get ("active" , "default" )
77+ return get_value ("explorer_url" , active_env_name )
6078
6179
6280@cache
6381def get_confirmation_setting () -> bool :
64- confirmation_value = get_value ("ask_confirmation" )
82+ """
83+ Returns the confirmation setting for the active environment.
84+ If not set, it defaults to False.
85+ """
86+ data = read_env_file ()
87+ active_env_name : str = data .get ("active" , "default" )
88+
89+ confirmation_value = get_value ("ask_confirmation" , active_env_name )
6590 if confirmation_value .lower () in ["true" , "yes" , "1" ]:
6691 return True
6792 elif confirmation_value .lower () in ["false" , "no" , "0" ]:
@@ -71,11 +96,17 @@ def get_confirmation_setting() -> bool:
7196
7297
7398@cache
74- def get_value (name : str ) -> str :
99+ def get_value (name : str , env_name : str ) -> str :
75100 _guard_valid_name (name )
76- data = get_active_env ()
101+ data = read_env_file ()
102+
103+ envs = data .get ("environments" , {})
104+ env = envs .get (env_name , None )
105+ if env is None :
106+ raise UnknownEnvironmentError (env_name )
107+
77108 default_value = get_defaults ()[name ]
78- value = data .get (name , default_value )
109+ value = env .get (name , default_value )
79110 assert isinstance (value , str )
80111 return value
81112
@@ -109,13 +140,18 @@ def resolve_env_path() -> Path:
109140 return GLOBAL_ENV_PATH
110141
111142
112- def set_value (name : str , value : Any ):
143+ def set_value (name : str , value : str , env_name : str ):
113144 _guard_valid_name (name )
114145 data = read_env_file ()
115- active_env = data .get ("active" , "default" )
116- data .setdefault ("environments" , {})
117- data ["environments" ].setdefault (active_env , {})
118- data ["environments" ][active_env ][name ] = value
146+
147+ envs = data .get ("environments" , {})
148+ env = envs .get (env_name , None )
149+ if env is None :
150+ raise UnknownEnvironmentError (env_name )
151+
152+ env [name ] = value
153+ envs [env_name ] = env
154+ data ["environments" ] = envs
119155 write_file (data )
120156
121157
@@ -124,14 +160,19 @@ def write_file(data: dict[str, Any]):
124160 write_json_file (str (env_path ), data )
125161
126162
127- def delete_value (name : str ):
163+ def delete_value (name : str , env_name : str ):
128164 """Deletes a key-value pair of the active env."""
129165 _guard_valid_env_deletion (name )
130166 data = read_env_file ()
131- active_env = data .get ("active" , "default" )
132- data .setdefault ("environments" , {})
133- data ["environments" ].setdefault (active_env , {})
134- del data ["environments" ][active_env ][name ]
167+
168+ envs = data .get ("environments" , {})
169+ env = envs .get (env_name , None )
170+ if env is None :
171+ raise UnknownEnvironmentError (env_name )
172+
173+ del env [name ]
174+ envs [env_name ] = env
175+ data ["environments" ] = envs
135176 write_file (data )
136177
137178
0 commit comments