def test_old_registry_multiple_load(): # See Issue #157 for details reg1 = UnitRegistry() reg1.add("code_length", 1.0, length) reg1.add("code_mass", 1.0, mass) reg1.add("code_time", 1.0, time) reg1.add("code_temperature", 1.0, temperature) UnitSystem( reg1.unit_system_id, "code_length", "code_mass", "code_time", "code_temperature", registry=reg1, ) cm = Unit("code_mass", registry=reg1) cl = Unit("code_length", registry=reg1) (cm / cl).latex_representation() with open(OLD_JSON_PATH) as f: json_data = f.read() reg2 = UnitRegistry.from_json(json_data) UnitSystem( reg2.unit_system_id, "code_length", "code_mass", "code_time", "code_temperature", registry=reg2, )
def _parse_parameter_file(self): self._prefix = \ self.filename[:self.filename.rfind(self._suffix)] fh = h5py.File(self.filename, mode="r") for attr in ["hubble_constant", "omega_matter", "omega_lambda"]: setattr(self, attr, fh.attrs.get(attr, None)) if "unit_registry_json" in fh.attrs: self.unit_registry = \ UnitRegistry.from_json( parse_h5_attr(fh, "unit_registry_json")) if "box_size" in fh.attrs: self.box_size = _hdf5_yt_attr(fh, "box_size", unit_registry=self.unit_registry) self.field_info.update(json.loads(parse_h5_attr(fh, "field_info"))) self._size = fh.attrs["total_trees"] fh.close() # analysis fields in sidecar files analysis_filename = f"{self._prefix}-analysis{self._suffix}" if os.path.exists(analysis_filename): self.analysis_filename = analysis_filename fh = h5py.File(analysis_filename, mode="r") analysis_fi = json.loads(parse_h5_attr(fh, "field_info")) fh.close() for field in analysis_fi: analysis_fi[field]["type"] = "analysis_saved" self.field_info.update(analysis_fi) else: self.analysis_filename = None self.field_list = list(self.field_info.keys())
def test_registry_json(): reg = UnitRegistry() json_reg = reg.to_json() unserialized_reg = UnitRegistry.from_json(json_reg) assert reg.lut == unserialized_reg.lut assert reg.lut["m"][1] is length assert reg.lut["erg"][1] is energy
def hubble_constant(self, value): self._hubble_constant = value # reset the unit registry lut while preserving other changes self.unit_registry = UnitRegistry.from_json( self.unit_registry.to_json()) if 'h' in self.unit_registry: self.unit_registry.modify("h", self.hubble_constant) else: self.unit_registry.add( 'h', self.hubble_constant, dimensionless)
def _parse_parameter_file(self): fh = h5py.File(self.filename, "r") for attr in ["hubble_constant", "omega_matter", "omega_lambda"]: setattr(self, attr, fh.attrs[attr]) my_ur = UnitRegistry.from_json(parse_h5_attr(fh, "unit_registry_json")) right = _hdf5_yt_attr(fh, "domain_right_edge", unit_registry=my_ur) left = _hdf5_yt_attr(fh, "domain_left_edge", unit_registry=my_ur) # Drop the "cm" suffix because all lengths will # be in comoving units. self.box_size = self.quan((right - left)[0].to("Mpccm/h"), "Mpc/h") fh.close()
def test_old_registry_json(): with open(OLD_JSON_PATH) as f: json_text = f.read() reg = UnitRegistry.from_json(json_text) default_reg = UnitRegistry() loaded_keys = reg.keys() for k in default_reg.keys(): assert k in loaded_keys loaded_val = reg[k] val = default_reg[k] assert_allclose(loaded_val[0], val[0]) assert loaded_val[1:] == val[1:]
def test_old_registry_json(): path = os.sep.join([os.path.dirname(__file__), "old_json_registry.txt"]) with open(path) as f: json_text = f.read() reg = UnitRegistry.from_json(json_text) default_reg = UnitRegistry() loaded_keys = reg.keys() for k in default_reg.keys(): assert k in loaded_keys loaded_val = reg[k] val = default_reg[k] assert_allclose(loaded_val[0], val[0]) assert loaded_val[1:] == val[1:]
def _parse_parameter_file(self): self._prefix = \ self.filename[:self.filename.rfind(self._suffix)] fh = h5py.File(self.filename, "r") for attr in ["hubble_constant", "omega_matter", "omega_lambda"]: setattr(self, attr, fh.attrs[attr]) if "unit_registry_json" in fh.attrs: self.unit_registry = \ UnitRegistry.from_json( parse_h5_attr(fh, "unit_registry_json")) self.box_size = _hdf5_yt_attr( fh, "box_size", unit_registry=self.unit_registry) self.field_info.update( json.loads(parse_h5_attr(fh, "field_info"))) self.field_list = list(self.field_info.keys()) self._size = fh.attrs["total_trees"] fh.close()
def test_registry_json(): reg = UnitRegistry() json_reg = reg.to_json() unserialized_reg = UnitRegistry.from_json(json_reg) assert_equal(reg.lut, unserialized_reg.lut)