@@ -184,20 +184,25 @@ def run(self) -> None:
184184 for index , node in tree_iter (self .ids , target_metadata ):
185185 shape = shapes [index ]
186186 if shape .all ():
187- node .value = data [index + tuple (map (slice , shapes [index ]))]
187+ # NOTE: bypassing IDSPrimitive.value.setter logic
188+ node ._IDSPrimitive__value = data [
189+ index + tuple (map (slice , shape ))
190+ ]
188191 else :
189192 for index , node in tree_iter (self .ids , target_metadata ):
190193 value = data [index ]
191194 if value != getattr (var , "_FillValue" , None ):
192- node .value = data [index ]
195+ # NOTE: bypassing IDSPrimitive.value.setter logic
196+ node ._IDSPrimitive__value = value
193197
194198 elif metadata .path_string not in self .ncmeta .aos :
195199 # Shortcut for assigning untensorized data
196- self .ids [target_metadata .path ] = data
200+ self .ids [target_metadata .path ]. _IDSPrimitive__value = data
197201
198202 else :
199203 for index , node in tree_iter (self .ids , target_metadata ):
200- node .value = data [index ]
204+ # NOTE: bypassing IDSPrimitive.value.setter logic
205+ node ._IDSPrimitive__value = data [index ]
201206
202207 def validate_variables (self ) -> None :
203208 """Validate that all variables in the netCDF Group exist and match the DD."""
0 commit comments