Skip to content

Commit

Permalink
add original exception string to MapcheteIOError
Browse files Browse the repository at this point in the history
  • Loading branch information
ungarj committed Nov 26, 2024
1 parent b6e051d commit df95f33
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
6 changes: 3 additions & 3 deletions mapchete/io/raster/read.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,9 +208,9 @@ def _empty_array() -> ma.MaskedArray:
raise
except Exception as exception: # pragma: no cover
_, _, exc_traceback = sys.exc_info()
raise MapcheteIOError(f"failed to read {input_file}").with_traceback(
exc_traceback
) from exception
raise MapcheteIOError(
f"failed to read {input_file} due to a {str(exception)}"
).with_traceback(exc_traceback) from exception


def _get_warped_edge_array(
Expand Down
4 changes: 3 additions & 1 deletion mapchete/io/vector/read.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,9 @@ def _gen_features() -> Generator[GeoJSONLikeFeature, None, None]:
raise
except Exception as exception: # pragma: no cover
_, _, exc_traceback = sys.exc_info()
raise MapcheteIOError(exception).with_traceback(exc_traceback) from exception
raise MapcheteIOError(
f"failed to read {inp} due to a {str(exception)}"
).with_traceback(exc_traceback) from exception


def _read_vector_window_from_file(
Expand Down

6 comments on commit df95f33

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test Coverage

missing coverage
FileStmtsMissCoverMissing
__init__.py330100% 
_deprecated.py180100% 
bounds.py980100% 
enums.py310100% 
errors.py170100% 
grid.py350100% 
index.py1790100% 
log.py500100% 
path.py3850100% 
pretty.py160100% 
protocols.py140100% 
registered.py50100% 
settings.py330100% 
stac.py1470100% 
testing.py1010100% 
tile.py1970100% 
timer.py370100% 
types.py390100% 
validate.py650100% 
zoom_levels.py980100% 
cli
   __init__.py00100% 
   main.py90100% 
   mpath.py820100% 
   options.py1280100% 
   progress_bar.py370100% 
cli/default
   __init__.py00100% 
   convert.py630100% 
   cp.py330100% 
   create.py360100% 
   execute.py420100% 
   formats.py190100% 
   index.py420100% 
   processes.py180100% 
   rm.py250100% 
   serve.py690100% 
   stac.py600100% 
commands
   __init__.py60100% 
   convert.py780100% 
   cp.py650100% 
   execute.py700100% 
   index.py340100% 
   observer.py90100% 
   parser.py910100% 
   rm.py440100% 
config
   __init__.py40100% 
   base.py3570100% 
   models.py1800100% 
   parse.py760100% 
   process_func.py890100% 
executor
   __init__.py170100% 
   base.py770100% 
   concurrent_futures.py700100% 
   dask.py1050100% 
   future.py820100% 
   sequential.py330100% 
   types.py130100% 
formats
   __init__.py30100% 
   base.py1740100% 
   drivers.py00100% 
   loaders.py430100% 
   protocols.py130100% 
   tools.py1530100% 
formats/default
   __init__.py00100% 
   _fiona_base.py510100% 
   flatgeobuf.py140100% 
   geojson.py120100% 
   gtiff.py1950100% 
   mapchete_input.py160100% 
   png.py660100% 
   png_hillshade.py560100% 
   raster_file.py850100% 
   tile_directory.py1010100% 
   vector_file.py1170100% 
geometry
   __init__.py100100% 
   clip.py410100% 
   filter.py350100% 
   footprints.py390100% 
   latlon.py300100% 
   repair.py120100% 
   reproject.py660100% 
   segmentize.py230100% 
   shape.py120100% 
   transform.py280100% 
   types.py240100% 
io
   __init__.py70100% 
   _json.py60100% 
   _misc.py780100% 
   _path.py00100% 
   profiles.py60100% 
io/raster
   __init__.py80100% 
   array.py1050100% 
   convert.py230100% 
   mosaic.py1030100% 
   open.py140100% 
   read.py1690100% 
   referenced_raster.py970100% 
   write.py1000100% 
io/vector
   __init__.py90100% 
   convert.py260100% 
   indexed_features.py1780100% 
   open.py150100% 
   read.py750100% 
   types.py80100% 
   write.py980100% 
processes
   __init__.py170100% 
   clip.py160100% 
   contours.py520100% 
   convert.py380100% 
   hillshade.py490100% 
processes/examples
   __init__.py00100% 
   example_process.py60100% 
processing
   __init__.py30100% 
   base.py2710100% 
   execute.py710100% 
   mp.py260100% 
   tasks.py2910100% 
   types.py450100% 
processing/profilers
   __init__.py50100% 
   memory.py600100% 
   requests.py250100% 
   time.py220100% 
static
   __init__.py00100% 
   process_template.py10100% 
TOTAL73030100% 

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test Coverage

missing coverage
FileStmtsMissCoverMissing
__init__.py330100% 
_deprecated.py180100% 
bounds.py980100% 
enums.py310100% 
errors.py170100% 
grid.py350100% 
index.py1790100% 
log.py500100% 
path.py3850100% 
pretty.py160100% 
protocols.py140100% 
registered.py50100% 
settings.py330100% 
stac.py1470100% 
testing.py1010100% 
tile.py1970100% 
timer.py370100% 
types.py390100% 
validate.py650100% 
zoom_levels.py980100% 
cli
   __init__.py00100% 
   main.py90100% 
   mpath.py820100% 
   options.py1280100% 
   progress_bar.py370100% 
cli/default
   __init__.py00100% 
   convert.py630100% 
   cp.py330100% 
   create.py360100% 
   execute.py420100% 
   formats.py190100% 
   index.py420100% 
   processes.py180100% 
   rm.py250100% 
   serve.py690100% 
   stac.py600100% 
commands
   __init__.py60100% 
   convert.py780100% 
   cp.py650100% 
   execute.py700100% 
   index.py340100% 
   observer.py90100% 
   parser.py910100% 
   rm.py440100% 
config
   __init__.py40100% 
   base.py3570100% 
   models.py1800100% 
   parse.py760100% 
   process_func.py890100% 
executor
   __init__.py170100% 
   base.py770100% 
   concurrent_futures.py700100% 
   dask.py1050100% 
   future.py820100% 
   sequential.py330100% 
   types.py130100% 
formats
   __init__.py30100% 
   base.py1740100% 
   drivers.py00100% 
   loaders.py430100% 
   protocols.py130100% 
   tools.py1530100% 
formats/default
   __init__.py00100% 
   _fiona_base.py510100% 
   flatgeobuf.py140100% 
   geojson.py120100% 
   gtiff.py1950100% 
   mapchete_input.py160100% 
   png.py660100% 
   png_hillshade.py560100% 
   raster_file.py850100% 
   tile_directory.py1010100% 
   vector_file.py1170100% 
geometry
   __init__.py100100% 
   clip.py410100% 
   filter.py350100% 
   footprints.py390100% 
   latlon.py300100% 
   repair.py120100% 
   reproject.py660100% 
   segmentize.py230100% 
   shape.py120100% 
   transform.py280100% 
   types.py240100% 
io
   __init__.py70100% 
   _json.py60100% 
   _misc.py780100% 
   _path.py00100% 
   profiles.py60100% 
io/raster
   __init__.py80100% 
   array.py1050100% 
   convert.py230100% 
   mosaic.py1030100% 
   open.py140100% 
   read.py1690100% 
   referenced_raster.py970100% 
   write.py1000100% 
io/vector
   __init__.py90100% 
   convert.py260100% 
   indexed_features.py1780100% 
   open.py150100% 
   read.py750100% 
   types.py80100% 
   write.py980100% 
processes
   __init__.py170100% 
   clip.py160100% 
   contours.py520100% 
   convert.py380100% 
   hillshade.py490100% 
processes/examples
   __init__.py00100% 
   example_process.py60100% 
processing
   __init__.py30100% 
   base.py2710100% 
   execute.py710100% 
   mp.py260100% 
   tasks.py2910100% 
   types.py450100% 
processing/profilers
   __init__.py50100% 
   memory.py600100% 
   requests.py250100% 
   time.py220100% 
static
   __init__.py00100% 
   process_template.py10100% 
TOTAL73030100% 

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test Coverage

missing coverage
FileStmtsMissCoverMissing
__init__.py330100% 
_deprecated.py180100% 
bounds.py980100% 
enums.py310100% 
errors.py170100% 
grid.py350100% 
index.py1790100% 
log.py500100% 
path.py3850100% 
pretty.py160100% 
protocols.py140100% 
registered.py50100% 
settings.py330100% 
stac.py1470100% 
testing.py1010100% 
tile.py1970100% 
timer.py370100% 
types.py390100% 
validate.py650100% 
zoom_levels.py980100% 
cli
   __init__.py00100% 
   main.py90100% 
   mpath.py820100% 
   options.py1280100% 
   progress_bar.py370100% 
cli/default
   __init__.py00100% 
   convert.py630100% 
   cp.py330100% 
   create.py360100% 
   execute.py420100% 
   formats.py190100% 
   index.py420100% 
   processes.py180100% 
   rm.py250100% 
   serve.py690100% 
   stac.py600100% 
commands
   __init__.py60100% 
   convert.py780100% 
   cp.py650100% 
   execute.py700100% 
   index.py340100% 
   observer.py90100% 
   parser.py910100% 
   rm.py440100% 
config
   __init__.py40100% 
   base.py3570100% 
   models.py1800100% 
   parse.py760100% 
   process_func.py890100% 
executor
   __init__.py170100% 
   base.py770100% 
   concurrent_futures.py700100% 
   dask.py1050100% 
   future.py820100% 
   sequential.py330100% 
   types.py130100% 
formats
   __init__.py30100% 
   base.py1740100% 
   drivers.py00100% 
   loaders.py430100% 
   protocols.py130100% 
   tools.py1530100% 
formats/default
   __init__.py00100% 
   _fiona_base.py510100% 
   flatgeobuf.py140100% 
   geojson.py120100% 
   gtiff.py1950100% 
   mapchete_input.py160100% 
   png.py660100% 
   png_hillshade.py560100% 
   raster_file.py850100% 
   tile_directory.py1010100% 
   vector_file.py1170100% 
geometry
   __init__.py100100% 
   clip.py410100% 
   filter.py350100% 
   footprints.py390100% 
   latlon.py300100% 
   repair.py120100% 
   reproject.py660100% 
   segmentize.py230100% 
   shape.py120100% 
   transform.py280100% 
   types.py240100% 
io
   __init__.py70100% 
   _json.py60100% 
   _misc.py780100% 
   _path.py00100% 
   profiles.py60100% 
io/raster
   __init__.py80100% 
   array.py1050100% 
   convert.py230100% 
   mosaic.py1030100% 
   open.py140100% 
   read.py1690100% 
   referenced_raster.py970100% 
   write.py1000100% 
io/vector
   __init__.py90100% 
   convert.py260100% 
   indexed_features.py1780100% 
   open.py150100% 
   read.py750100% 
   types.py80100% 
   write.py980100% 
processes
   __init__.py170100% 
   clip.py160100% 
   contours.py520100% 
   convert.py380100% 
   hillshade.py490100% 
processes/examples
   __init__.py00100% 
   example_process.py60100% 
processing
   __init__.py30100% 
   base.py2710100% 
   execute.py710100% 
   mp.py260100% 
   tasks.py2910100% 
   types.py450100% 
processing/profilers
   __init__.py50100% 
   memory.py600100% 
   requests.py250100% 
   time.py220100% 
static
   __init__.py00100% 
   process_template.py10100% 
TOTAL73030100% 

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test Coverage

missing coverage
FileStmtsMissCoverMissing
__init__.py330100% 
_deprecated.py180100% 
bounds.py980100% 
enums.py310100% 
errors.py170100% 
grid.py350100% 
index.py1790100% 
log.py500100% 
path.py3850100% 
pretty.py160100% 
protocols.py140100% 
registered.py50100% 
settings.py330100% 
stac.py1470100% 
testing.py1010100% 
tile.py1970100% 
timer.py370100% 
types.py390100% 
validate.py650100% 
zoom_levels.py980100% 
cli
   __init__.py00100% 
   main.py90100% 
   mpath.py820100% 
   options.py1280100% 
   progress_bar.py370100% 
cli/default
   __init__.py00100% 
   convert.py630100% 
   cp.py330100% 
   create.py360100% 
   execute.py420100% 
   formats.py190100% 
   index.py420100% 
   processes.py180100% 
   rm.py250100% 
   serve.py690100% 
   stac.py600100% 
commands
   __init__.py60100% 
   convert.py780100% 
   cp.py650100% 
   execute.py700100% 
   index.py340100% 
   observer.py90100% 
   parser.py910100% 
   rm.py440100% 
config
   __init__.py40100% 
   base.py3570100% 
   models.py1800100% 
   parse.py760100% 
   process_func.py890100% 
executor
   __init__.py170100% 
   base.py770100% 
   concurrent_futures.py700100% 
   dask.py1050100% 
   future.py820100% 
   sequential.py330100% 
   types.py130100% 
formats
   __init__.py30100% 
   base.py1740100% 
   drivers.py00100% 
   loaders.py430100% 
   protocols.py130100% 
   tools.py1530100% 
formats/default
   __init__.py00100% 
   _fiona_base.py510100% 
   flatgeobuf.py140100% 
   geojson.py120100% 
   gtiff.py1950100% 
   mapchete_input.py160100% 
   png.py660100% 
   png_hillshade.py560100% 
   raster_file.py850100% 
   tile_directory.py1010100% 
   vector_file.py1170100% 
geometry
   __init__.py100100% 
   clip.py410100% 
   filter.py350100% 
   footprints.py390100% 
   latlon.py300100% 
   repair.py120100% 
   reproject.py660100% 
   segmentize.py230100% 
   shape.py120100% 
   transform.py280100% 
   types.py240100% 
io
   __init__.py70100% 
   _json.py60100% 
   _misc.py780100% 
   _path.py00100% 
   profiles.py60100% 
io/raster
   __init__.py80100% 
   array.py1050100% 
   convert.py230100% 
   mosaic.py1030100% 
   open.py140100% 
   read.py1690100% 
   referenced_raster.py970100% 
   write.py1000100% 
io/vector
   __init__.py90100% 
   convert.py260100% 
   indexed_features.py1780100% 
   open.py150100% 
   read.py750100% 
   types.py80100% 
   write.py980100% 
processes
   __init__.py170100% 
   clip.py160100% 
   contours.py520100% 
   convert.py380100% 
   hillshade.py490100% 
processes/examples
   __init__.py00100% 
   example_process.py60100% 
processing
   __init__.py30100% 
   base.py2710100% 
   execute.py710100% 
   mp.py260100% 
   tasks.py2910100% 
   types.py450100% 
processing/profilers
   __init__.py50100% 
   memory.py600100% 
   requests.py250100% 
   time.py220100% 
static
   __init__.py00100% 
   process_template.py10100% 
TOTAL73030100% 

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test Coverage

missing coverage
FileStmtsMissCoverMissing
__init__.py330100% 
_deprecated.py180100% 
bounds.py980100% 
enums.py310100% 
errors.py170100% 
grid.py350100% 
index.py1790100% 
log.py500100% 
path.py3850100% 
pretty.py160100% 
protocols.py140100% 
registered.py50100% 
settings.py330100% 
stac.py1470100% 
testing.py1010100% 
tile.py1970100% 
timer.py370100% 
types.py390100% 
validate.py650100% 
zoom_levels.py980100% 
cli
   __init__.py00100% 
   main.py90100% 
   mpath.py820100% 
   options.py1280100% 
   progress_bar.py370100% 
cli/default
   __init__.py00100% 
   convert.py630100% 
   cp.py330100% 
   create.py360100% 
   execute.py420100% 
   formats.py190100% 
   index.py420100% 
   processes.py180100% 
   rm.py250100% 
   serve.py690100% 
   stac.py600100% 
commands
   __init__.py60100% 
   convert.py780100% 
   cp.py650100% 
   execute.py700100% 
   index.py340100% 
   observer.py90100% 
   parser.py910100% 
   rm.py440100% 
config
   __init__.py40100% 
   base.py3570100% 
   models.py1800100% 
   parse.py760100% 
   process_func.py890100% 
executor
   __init__.py170100% 
   base.py770100% 
   concurrent_futures.py700100% 
   dask.py1050100% 
   future.py820100% 
   sequential.py330100% 
   types.py130100% 
formats
   __init__.py30100% 
   base.py1740100% 
   drivers.py00100% 
   loaders.py430100% 
   protocols.py130100% 
   tools.py1530100% 
formats/default
   __init__.py00100% 
   _fiona_base.py510100% 
   flatgeobuf.py140100% 
   geojson.py120100% 
   gtiff.py1950100% 
   mapchete_input.py160100% 
   png.py660100% 
   png_hillshade.py560100% 
   raster_file.py850100% 
   tile_directory.py1010100% 
   vector_file.py1170100% 
geometry
   __init__.py100100% 
   clip.py410100% 
   filter.py350100% 
   footprints.py390100% 
   latlon.py300100% 
   repair.py120100% 
   reproject.py660100% 
   segmentize.py230100% 
   shape.py120100% 
   transform.py280100% 
   types.py240100% 
io
   __init__.py70100% 
   _json.py60100% 
   _misc.py780100% 
   _path.py00100% 
   profiles.py60100% 
io/raster
   __init__.py80100% 
   array.py1050100% 
   convert.py230100% 
   mosaic.py1030100% 
   open.py140100% 
   read.py1690100% 
   referenced_raster.py970100% 
   write.py1000100% 
io/vector
   __init__.py90100% 
   convert.py260100% 
   indexed_features.py1780100% 
   open.py150100% 
   read.py750100% 
   types.py80100% 
   write.py980100% 
processes
   __init__.py170100% 
   clip.py160100% 
   contours.py520100% 
   convert.py380100% 
   hillshade.py490100% 
processes/examples
   __init__.py00100% 
   example_process.py60100% 
processing
   __init__.py30100% 
   base.py2710100% 
   execute.py710100% 
   mp.py260100% 
   tasks.py2910100% 
   types.py450100% 
processing/profilers
   __init__.py50100% 
   memory.py600100% 
   requests.py250100% 
   time.py220100% 
static
   __init__.py00100% 
   process_template.py10100% 
TOTAL73030100% 

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test Coverage

missing coverage
FileStmtsMissCoverMissing
__init__.py330100% 
_deprecated.py180100% 
bounds.py980100% 
enums.py310100% 
errors.py170100% 
grid.py350100% 
index.py1790100% 
log.py500100% 
path.py3850100% 
pretty.py160100% 
protocols.py140100% 
registered.py50100% 
settings.py330100% 
stac.py1470100% 
testing.py1010100% 
tile.py1970100% 
timer.py370100% 
types.py390100% 
validate.py650100% 
zoom_levels.py980100% 
cli
   __init__.py00100% 
   main.py90100% 
   mpath.py820100% 
   options.py1280100% 
   progress_bar.py370100% 
cli/default
   __init__.py00100% 
   convert.py630100% 
   cp.py330100% 
   create.py360100% 
   execute.py420100% 
   formats.py190100% 
   index.py420100% 
   processes.py180100% 
   rm.py250100% 
   serve.py690100% 
   stac.py600100% 
commands
   __init__.py60100% 
   convert.py780100% 
   cp.py650100% 
   execute.py700100% 
   index.py340100% 
   observer.py90100% 
   parser.py910100% 
   rm.py440100% 
config
   __init__.py40100% 
   base.py3570100% 
   models.py1800100% 
   parse.py760100% 
   process_func.py890100% 
executor
   __init__.py170100% 
   base.py770100% 
   concurrent_futures.py700100% 
   dask.py1050100% 
   future.py820100% 
   sequential.py330100% 
   types.py130100% 
formats
   __init__.py30100% 
   base.py1740100% 
   drivers.py00100% 
   loaders.py430100% 
   protocols.py130100% 
   tools.py1530100% 
formats/default
   __init__.py00100% 
   _fiona_base.py510100% 
   flatgeobuf.py140100% 
   geojson.py120100% 
   gtiff.py1950100% 
   mapchete_input.py160100% 
   png.py660100% 
   png_hillshade.py560100% 
   raster_file.py850100% 
   tile_directory.py1010100% 
   vector_file.py1170100% 
geometry
   __init__.py100100% 
   clip.py410100% 
   filter.py350100% 
   footprints.py390100% 
   latlon.py300100% 
   repair.py120100% 
   reproject.py660100% 
   segmentize.py230100% 
   shape.py120100% 
   transform.py280100% 
   types.py240100% 
io
   __init__.py70100% 
   _json.py60100% 
   _misc.py780100% 
   _path.py00100% 
   profiles.py60100% 
io/raster
   __init__.py80100% 
   array.py1050100% 
   convert.py230100% 
   mosaic.py1030100% 
   open.py140100% 
   read.py1690100% 
   referenced_raster.py970100% 
   write.py1000100% 
io/vector
   __init__.py90100% 
   convert.py260100% 
   indexed_features.py1780100% 
   open.py150100% 
   read.py750100% 
   types.py80100% 
   write.py980100% 
processes
   __init__.py170100% 
   clip.py160100% 
   contours.py520100% 
   convert.py380100% 
   hillshade.py490100% 
processes/examples
   __init__.py00100% 
   example_process.py60100% 
processing
   __init__.py30100% 
   base.py2710100% 
   execute.py710100% 
   mp.py260100% 
   tasks.py2910100% 
   types.py450100% 
processing/profilers
   __init__.py50100% 
   memory.py600100% 
   requests.py250100% 
   time.py220100% 
static
   __init__.py00100% 
   process_template.py10100% 
TOTAL73030100% 

Please sign in to comment.