diff --git a/python/damask/VERSION b/python/damask/VERSION index 6058acdf5..dcf64603b 100644 --- a/python/damask/VERSION +++ b/python/damask/VERSION @@ -1 +1 @@ -v3.0.0-alpha6-157-gecb33641d +v3.0.0-alpha6-170-gfab34d5c3 diff --git a/python/damask/_config.py b/python/damask/_config.py index df670bc97..7adcee9df 100644 --- a/python/damask/_config.py +++ b/python/damask/_config.py @@ -144,7 +144,7 @@ class Config(dict): Configuration from file. """ - fhandle = open(fname) if isinstance(fname, (str, Path)) else \ + fhandle = open(Path(fname).expanduser()) if isinstance(fname, (str, Path)) else \ fname return cls(yaml.safe_load(fhandle)) @@ -163,7 +163,7 @@ class Config(dict): Keyword arguments parsed to yaml.dump. """ - fhandle = open(fname,'w',newline='\n') if isinstance(fname, (str, Path)) else \ + fhandle = open(Path(fname).expanduser(),'w',newline='\n') if isinstance(fname, (str, Path)) else \ fname if 'width' not in kwargs: diff --git a/python/damask/util.py b/python/damask/util.py index 285c5f682..a18fe9503 100644 --- a/python/damask/util.py +++ b/python/damask/util.py @@ -587,7 +587,7 @@ def DREAM3D_base_group(fname: Union[str, Path]) -> str: Path to the base group. """ - with h5py.File(fname,'r') as f: + with h5py.File(Path(fname).expanduser(),'r') as f: base_group = f.visit(lambda path: path.rsplit('/',2)[0] if '_SIMPL_GEOMETRY/SPACING' in path else None) if base_group is None: @@ -615,7 +615,7 @@ def DREAM3D_cell_data_group(fname: Union[str, Path]) -> str: """ base_group = DREAM3D_base_group(fname) - with h5py.File(fname,'r') as f: + with h5py.File(Path(fname).expanduser(),'r') as f: cells = tuple(f['/'.join([base_group,'_SIMPL_GEOMETRY','DIMENSIONS'])][()][::-1]) cell_data_group = f[base_group].visititems(lambda path,obj: path.split('/')[0] \ if isinstance(obj,h5py._hl.dataset.Dataset) and np.shape(obj)[:-1] == cells \ diff --git a/src/IO.f90 b/src/IO.f90 index 591a8c733..493970824 100644 --- a/src/IO.f90 +++ b/src/IO.f90 @@ -498,6 +498,8 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg) msg = 'Length mismatch' case (710) msg = 'Closing quotation mark missing in string' + case (711) + msg = 'Incorrect type' !------------------------------------------------------------------------------------------------- ! errors related to the mesh solver diff --git a/src/YAML_types.f90 b/src/YAML_types.f90 index c57f602cf..d7ca71cbb 100644 --- a/src/YAML_types.f90 +++ b/src/YAML_types.f90 @@ -1218,6 +1218,7 @@ function tList_as1dFloat(self) item => self%first do i = 1, self%length scalar => item%node%asScalar() + if (.not. associated(scalar)) call IO_error(711,ext_msg='float scalar') tList_as1dFloat(i) = scalar%asFloat() item => item%next end do @@ -1245,6 +1246,7 @@ function tList_as2dFloat(self) do i=1,self%length row => self%get(i) row_data => row%asList() + if (.not. associated(row_data)) call IO_error(711,ext_msg='list of floats') if (row_data%length /= size(tList_as2dFloat,2)) call IO_error(709,ext_msg='Varying number of columns') tList_as2dFloat(i,:) = self%get_as1dFloat(i) end do @@ -1269,6 +1271,7 @@ function tList_as1dInt(self) item => self%first do i = 1, self%length scalar => item%node%asScalar() + if (.not. associated(scalar)) call IO_error(711,ext_msg='int scalar') tList_as1dInt(i) = scalar%asInt() item => item%next end do @@ -1293,6 +1296,7 @@ function tList_as1dBool(self) item => self%first do i = 1, self%length scalar => item%node%asScalar() + if (.not. associated(scalar)) call IO_error(711,ext_msg='bool scalar') tList_as1dBool(i) = scalar%asBool() item => item%next end do @@ -1317,6 +1321,7 @@ function tList_as1dString(self) item => self%first do i = 1, self%length scalar => item%node%asScalar() + if (.not. associated(scalar)) call IO_error(711,ext_msg='string scalar') len_max = max(len_max, len_trim(scalar%asString())) item => item%next end do