File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ v2025.??.0 (2025-??-??)
2+ =======================
3+ Parameter Changes
4+ -----------------
5+ * None Yet
6+
7+ API Changes
8+ -----------
9+ * (New) Add a method to look up parameter by their nc_name
10+ * (Potentially Breaking) Rise a `ValueError` when attempting to coerce a parameter into an error name when an error name it not defined for it
11+
112v2025.10.0 (2025-10-31)
213=======================
314Parameter Changes
Original file line number Diff line number Diff line change @@ -144,6 +144,32 @@ def odv_names(self):
144144
145145 return {to_odv (key ): value for key , value in super ().items ()}
146146
147+ @cached_property
148+ def _nc_names (self ) -> dict [str , WHPName ]:
149+ return {param .nc_name : param for param in self .values ()}
150+
151+ def from_nc_name (self , key : str ) -> WHPName :
152+ is_flag = key .endswith ("_qc" )
153+ key = key .removesuffix ("_qc" )
154+ is_error = key .endswith ("_error" )
155+ key = key .removesuffix ("_error" )
156+ depth = 0
157+ if "_alt_" in key :
158+ try :
159+ _key , _depth = key .split ("_alt_" )
160+ depth = int (_depth )
161+ key = _key
162+ except ValueError :
163+ ...
164+ param = self ._nc_names [key ]
165+ if depth > 0 :
166+ param = param .as_depth (depth )
167+ if is_flag :
168+ return param .as_flag ()
169+ if is_error :
170+ return param .as_error ()
171+ return param
172+
147173 def __getitem__ (self , key : WHPNameKey | WHPName ) -> WHPName :
148174 unit = None
149175 flag = False
Original file line number Diff line number Diff line change @@ -137,6 +137,9 @@ def as_flag(self) -> "WHPName":
137137 raise ValueError ("error columns cannot have flags" )
138138 return replace (self , flag_col = True )
139139
140+ def as_base (self ) -> "WHPName" :
141+ return replace (self , flag_col = False , error_col = False , alt_depth = 0 )
142+
140143 @property
141144 def full_whp_name (self ):
142145 if self .alt_depth > 0 :
@@ -171,6 +174,10 @@ def odv_key(self) -> str:
171174 """
172175 if self .error_col :
173176 base = self .full_error_name
177+ if base is None :
178+ raise ValueError (
179+ f"Error name is not defined for this parameter { self .as_base ()} "
180+ )
174181 else :
175182 base = self .full_whp_name
176183
@@ -182,7 +189,7 @@ def odv_key(self) -> str:
182189 if self .flag_col :
183190 key = f"{ key } _FLAG_W"
184191
185- return key
192+ return str ( key )
186193
187194 @property
188195 def nc_name_flag (self ) -> str :
You can’t perform that action at this time.
0 commit comments