Skip to content

TopoStats classes internally and for writing/reading HDF5 #1953

TopoStats classes internally and for writing/reading HDF5

TopoStats classes internally and for writing/reading HDF5 #1953

Triggered via pull request October 14, 2025 16:32
Status Failure
Total duration 12m 47s
Artifacts

tests.yaml

on: pull_request
Matrix: build
Fit to window
Zoom out
Zoom in

Annotations

71 errors and 32 warnings
Ex1 (3.11, windows-latest)
The action 'Setup tmate session' has timed out after 5 minutes.
Ex1 (3.11, windows-latest): tests\test_run_modules.py#L139
test_run_topostats_process_debug schema.SchemaError: There is an error in your YAML plotting configuration file configuration. Please refer to the first error message above for details
Ex1 (3.11, windows-latest): tests\test_run_modules.py#L118
test_run_topostats_process_all schema.SchemaError: There is an error in your YAML plotting configuration file configuration. Please refer to the first error message above for details
Ex1 (3.11, windows-latest): tests\test_processing.py#L1852
test_run_ordered_tracing[catenane] FileNotFoundError: [Errno 2] Unable to synchronously open file (unable to open file: name = 'D:\a\TopoStats\TopoStats\tests\resources\tracing\ordered_tracing\catenane_post_nodestats.topostats', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)
Ex1 (3.11, windows-latest): tests\test_processing.py#L1852
test_run_ordered_tracing[minicircle] KeyError: 'topostats_file_version'
Ex1 (3.11, windows-latest): tests\test_processing.py#L1765
test_run_nodestats[catenane] NotImplementedError: cannot instantiate 'PosixPath' on your system
Ex1 (3.11, windows-latest): tests\test_processing.py#L451
test_image_set[filters, grain_crops and disordered_tracing] TypeError: 'TopoStats' object is not subscriptable
Ex1 (3.11, windows-latest): tests\test_plottingfuncs.py#L254
test_save_figure[None-True-None] _tkinter.TclError: Can't find a usable init.tcl in the following directories: {C:\hostedtoolcache\windows\Python\3.11.9\x64\tcl\tcl8.6} C:/hostedtoolcache/windows/Python/3.11.9/x64/tcl/tcl8.6/init.tcl: couldn't read file "C:/hostedtoolcache/windows/Python/3.11.9/x64/tcl/tcl8.6/init.tcl": No error couldn't read file "C:/hostedtoolcache/windows/Python/3.11.9/x64/tcl/tcl8.6/init.tcl": No error while executing "source C:/hostedtoolcache/windows/Python/3.11.9/x64/tcl/tcl8.6/init.tcl" ("uplevel" body line 1) invoked from within "uplevel #0 [list source $tclfile]" This probably means that Tcl wasn't installed properly.
Ex1 (3.11, windows-latest): tests\test_processing.py#L1027
test_run_grainstats assert 0 == 6
Ex1 (3.11, windows-latest): tests\test_grainstats_minicircle.py#L108
test_trace_extract_height_profile _tkinter.TclError: Can't find a usable tk.tcl in the following directories: C:/hostedtoolcache/windows/Python/3.11.9/x64/tcl/tcl8.6/tk8.6 C:/hostedtoolcache/windows/Python/3.11.9/x64/tcl/tk8.6 C:/hostedtoolcache/windows/Python/3.11.9/lib/tk8.6 C:/hostedtoolcache/windows/Python/3.11.9/lib/tk8.6 C:/hostedtoolcache/windows/Python/lib/tk8.6 C:/hostedtoolcache/windows/Python/3.11.9/library C:/hostedtoolcache/windows/Python/3.11.9/x64/tcl/tk8.6/tk.tcl: couldn't read file "C:/hostedtoolcache/windows/Python/3.11.9/x64/tcl/tk8.6/ttk/scale.tcl": no such file or directory couldn't read file "C:/hostedtoolcache/windows/Python/3.11.9/x64/tcl/tk8.6/ttk/scale.tcl": no such file or directory while executing "source -encoding utf-8 [file join $::ttk::library scale.tcl]" (file "C:/hostedtoolcache/windows/Python/3.11.9/x64/tcl/tk8.6/ttk/ttk.tcl" line 103) invoked from within "source -encoding utf-8 C:/hostedtoolcache/windows/Python/3.11.9/x64/tcl/tk8.6/ttk/ttk.tcl" ("uplevel" body line 1) invoked from within "uplevel \#0 [list source -encoding utf-8 $::ttk::library/ttk.tcl]" (file "C:/hostedtoolcache/windows/Python/3.11.9/x64/tcl/tk8.6/tk.tcl" line 706) invoked from within "source C:/hostedtoolcache/windows/Python/3.11.9/x64/tcl/tk8.6/tk.tcl" ("uplevel" body line 1) invoked from within "uplevel #0 [list source $file]" This probably means that tk wasn't installed properly.
Ex1 (3.11, windows-latest): tests\test_io.py#L409
test_find_files[topostats] AssertionError: assert 5 == 6 + where 5 = len([WindowsPath('D:/a/TopoStats/TopoStats/tests/resources/file.topostats'), WindowsPath('D:/a/TopoStats/TopoStats/tests/resources/notebook3_image.topostats'), WindowsPath('D:/a/TopoStats/TopoStats/tests/resources/process_scan_topostats_file_regtest.topostats'), WindowsPath('D:/a/TopoStats/TopoStats/tests/resources/test_image/minicircle_small.topostats'), WindowsPath('D:/a/TopoStats/TopoStats/tests/resources/tracing/ordered_tracing/minicircle_post_nodestats.topostats')])
Ex1 (3.10, ubuntu-latest)
The operation was canceled.
Ex1 (3.10, ubuntu-latest): tests/test_processing.py#L77
test_process_scan_below_height_profiles TypeError: 'TopoStats' object is not subscriptable
Ex1 (3.10, ubuntu-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test re-add holes, 3 holes, one right size for re-adding] KeyError: 'smoothed_grain'
Ex1 (3.10, ubuntu-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test pruning: thick curve with tail, prune small branch] KeyError: 'smoothed_grain'
Ex1 (3.10, ubuntu-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test pruning: thick curve with tail, no pruning] KeyError: 'smoothed_grain'
Ex1 (3.10, ubuntu-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test height bias: thick curve height weighting outer, weak height bias] KeyError: 'smoothed_grain'
Ex1 (3.10, ubuntu-latest): tests/test_processing.py#L451
test_image_set[filters, grain_crops and disordered_tracing] TypeError: 'TopoStats' object is not subscriptable
Ex1 (3.10, ubuntu-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test height bias: thick curve height weighting outer, strong height bias] KeyError: 'smoothed_grain'
Ex1 (3.10, ubuntu-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[simple slightly curved line] KeyError: 'smoothed_grain'
Ex1 (3.10, ubuntu-latest): tests/test_processing.py#L49
test_process_scan_below TypeError: 'TopoStats' object is not subscriptable
Ex1 (3.10, ubuntu-latest): tests/test_io.py#L409
test_find_files[topostats] AssertionError: assert 5 == 6 + where 5 = len([PosixPath('/home/runner/work/TopoStats/TopoStats/tests/resources/notebook3_image.topostats'), PosixPath('/home/runner/work/TopoStats/TopoStats/tests/resources/file.topostats'), PosixPath('/home/runner/work/TopoStats/TopoStats/tests/resources/process_scan_topostats_file_regtest.topostats'), PosixPath('/home/runner/work/TopoStats/TopoStats/tests/resources/test_image/minicircle_small.topostats'), PosixPath('/home/runner/work/TopoStats/TopoStats/tests/resources/tracing/ordered_tracing/minicircle_post_nodestats.topostats')])
Ex1 (3.10, ubuntu-latest)
The strategy configuration was canceled because "build.windows-latest_3_11" failed
Ex1 (3.11, ubuntu-latest)
The operation was canceled.
Ex1 (3.11, ubuntu-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test re-add holes, 3 holes, one right size for re-adding] KeyError: 'smoothed_grain'
Ex1 (3.11, ubuntu-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test pruning: thick curve with tail, prune small branch] KeyError: 'smoothed_grain'
Ex1 (3.11, ubuntu-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test pruning: thick curve with tail, no pruning] KeyError: 'smoothed_grain'
Ex1 (3.11, ubuntu-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test height bias: thick curve height weighting outer, weak height bias] KeyError: 'smoothed_grain'
Ex1 (3.11, ubuntu-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test height bias: thick curve height weighting outer, strong height bias] KeyError: 'smoothed_grain'
Ex1 (3.11, ubuntu-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[simple slightly curved line] KeyError: 'smoothed_grain'
Ex1 (3.11, ubuntu-latest): tests/test_processing.py#L49
test_process_scan_below TypeError: 'TopoStats' object is not subscriptable
Ex1 (3.11, ubuntu-latest): tests/test_processing.py#L451
test_image_set[grains, nodestats, ordered_tracing] TypeError: 'TopoStats' object is not subscriptable
Ex1 (3.11, ubuntu-latest): tests/test_processing.py#L451
test_image_set[filters, grain_crops and disordered_tracing] TypeError: 'TopoStats' object is not subscriptable
Ex1 (3.11, ubuntu-latest): tests/test_io.py#L409
test_find_files[topostats] AssertionError: assert 5 == 6 + where 5 = len([PosixPath('/home/runner/work/TopoStats/TopoStats/tests/resources/notebook3_image.topostats'), PosixPath('/home/runner/work/TopoStats/TopoStats/tests/resources/file.topostats'), PosixPath('/home/runner/work/TopoStats/TopoStats/tests/resources/process_scan_topostats_file_regtest.topostats'), PosixPath('/home/runner/work/TopoStats/TopoStats/tests/resources/test_image/minicircle_small.topostats'), PosixPath('/home/runner/work/TopoStats/TopoStats/tests/resources/tracing/ordered_tracing/minicircle_post_nodestats.topostats')])
Ex1 (3.11, ubuntu-latest)
The strategy configuration was canceled because "build.windows-latest_3_11" failed
Ex1 (3.10, windows-latest)
The operation was canceled.
Ex1 (3.10, windows-latest): tests\tracing\test_disordered_tracing.py#L1277
test_disordered_trace_grain[test re-add holes, 3 holes, one right size for re-adding] KeyError: 'smoothed_grain'
Ex1 (3.10, windows-latest): tests\tracing\test_disordered_tracing.py#L1277
test_disordered_trace_grain[test pruning: thick curve with tail, prune small branch] KeyError: 'smoothed_grain'
Ex1 (3.10, windows-latest): tests\tracing\test_disordered_tracing.py#L1277
test_disordered_trace_grain[test pruning: thick curve with tail, no pruning] KeyError: 'smoothed_grain'
Ex1 (3.10, windows-latest): tests\tracing\test_disordered_tracing.py#L1277
test_disordered_trace_grain[test height bias: thick curve height weighting outer, weak height bias] KeyError: 'smoothed_grain'
Ex1 (3.10, windows-latest): tests\tracing\test_disordered_tracing.py#L1277
test_disordered_trace_grain[test height bias: thick curve height weighting outer, strong height bias] KeyError: 'smoothed_grain'
Ex1 (3.10, windows-latest): tests\tracing\test_disordered_tracing.py#L1277
test_disordered_trace_grain[simple slightly curved line] KeyError: 'smoothed_grain'
Ex1 (3.10, windows-latest): tests\test_plottingfuncs.py#L254
test_save_figure[None-True-None] _tkinter.TclError: Can't find a usable tk.tcl in the following directories: C:/hostedtoolcache/windows/Python/3.10.11/x64/tcl/tcl8.6/tk8.6 C:/hostedtoolcache/windows/Python/3.10.11/x64/tcl/tk8.6 C:/hostedtoolcache/windows/Python/3.10.11/lib/tk8.6 C:/hostedtoolcache/windows/Python/3.10.11/lib/tk8.6 C:/hostedtoolcache/windows/Python/lib/tk8.6 C:/hostedtoolcache/windows/Python/3.10.11/library C:/hostedtoolcache/windows/Python/3.10.11/x64/tcl/tk8.6/tk.tcl: couldn't read file "C:/hostedtoolcache/windows/Python/3.10.11/x64/tcl/tk8.6/ttk/spinbox.tcl": no such file or directory couldn't read file "C:/hostedtoolcache/windows/Python/3.10.11/x64/tcl/tk8.6/ttk/spinbox.tcl": no such file or directory while executing "source -encoding utf-8 [file join $::ttk::library spinbox.tcl] " (file "C:/hostedtoolcache/windows/Python/3.10.11/x64/tcl/tk8.6/ttk/ttk.tcl" line 109) invoked from within "source -encoding utf-8 C:/hostedtoolcache/windows/Python/3.10.11/x64/tcl/tk8.6/ttk/ttk.tcl" ("uplevel" body line 1) invoked from within "uplevel \#0 [list source -encoding utf-8 $::ttk::library/ttk.tcl]" (file "C:/hostedtoolcache/windows/Python/3.10.11/x64/tcl/tk8.6/tk.tcl" line 706) invoked from within "source C:/hostedtoolcache/windows/Python/3.10.11/x64/tcl/tk8.6/tk.tcl" ("uplevel" body line 1) invoked from within "uplevel #0 [list source $file]" This probably means that tk wasn't installed properly.
Ex1 (3.10, windows-latest): tests\test_processing.py#L1027
test_run_grainstats assert 0 == 6
Ex1 (3.10, windows-latest): tests\test_io.py#L409
test_find_files[topostats] AssertionError: assert 5 == 6 + where 5 = len([WindowsPath('D:/a/TopoStats/TopoStats/tests/resources/file.topostats'), WindowsPath('D:/a/TopoStats/TopoStats/tests/resources/notebook3_image.topostats'), WindowsPath('D:/a/TopoStats/TopoStats/tests/resources/process_scan_topostats_file_regtest.topostats'), WindowsPath('D:/a/TopoStats/TopoStats/tests/resources/test_image/minicircle_small.topostats'), WindowsPath('D:/a/TopoStats/TopoStats/tests/resources/tracing/ordered_tracing/minicircle_post_nodestats.topostats')])
Ex1 (3.10, windows-latest): tests\test_grainstats_minicircle.py#L108
test_trace_extract_height_profile _tkinter.TclError: Can't find a usable init.tcl in the following directories: {C:\hostedtoolcache\windows\Python\3.10.11\x64\tcl\tcl8.6} C:/hostedtoolcache/windows/Python/3.10.11/x64/tcl/tcl8.6/init.tcl: couldn't read file "C:/hostedtoolcache/windows/Python/3.10.11/x64/tcl/tcl8.6/init.tcl": No error couldn't read file "C:/hostedtoolcache/windows/Python/3.10.11/x64/tcl/tcl8.6/init.tcl": No error while executing "source C:/hostedtoolcache/windows/Python/3.10.11/x64/tcl/tcl8.6/init.tcl" ("uplevel" body line 1) invoked from within "uplevel #0 [list source $tclfile]" This probably means that Tcl wasn't installed properly.
Ex1 (3.10, windows-latest)
The strategy configuration was canceled because "build.windows-latest_3_11" failed
Ex1 (3.11, macos-latest)
The operation was canceled.
Ex1 (3.11, macos-latest): tests/test_processing.py#L77
test_process_scan_below_height_profiles TypeError: 'TopoStats' object is not subscriptable
Ex1 (3.11, macos-latest): tests/test_processing.py#L451
test_image_set[all] TypeError: 'TopoStats' object is not subscriptable
Ex1 (3.11, macos-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test re-add holes, 3 holes, one right size for re-adding] KeyError: 'smoothed_grain'
Ex1 (3.11, macos-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test pruning: thick curve with tail, prune small branch] KeyError: 'smoothed_grain'
Ex1 (3.11, macos-latest): tests/test_processing.py#L49
test_process_scan_below TypeError: 'TopoStats' object is not subscriptable
Ex1 (3.11, macos-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test pruning: thick curve with tail, no pruning] KeyError: 'smoothed_grain'
Ex1 (3.11, macos-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test height bias: thick curve height weighting outer, weak height bias] KeyError: 'smoothed_grain'
Ex1 (3.11, macos-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test height bias: thick curve height weighting outer, strong height bias] KeyError: 'smoothed_grain'
Ex1 (3.11, macos-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[simple slightly curved line] KeyError: 'smoothed_grain'
Ex1 (3.11, macos-latest): tests/test_io.py#L409
test_find_files[topostats] AssertionError: assert 5 == 6 + where 5 = len([PosixPath('/Users/runner/work/TopoStats/TopoStats/tests/resources/process_scan_topostats_file_regtest.topostats'), PosixPath('/Users/runner/work/TopoStats/TopoStats/tests/resources/notebook3_image.topostats'), PosixPath('/Users/runner/work/TopoStats/TopoStats/tests/resources/file.topostats'), PosixPath('/Users/runner/work/TopoStats/TopoStats/tests/resources/tracing/ordered_tracing/minicircle_post_nodestats.topostats'), PosixPath('/Users/runner/work/TopoStats/TopoStats/tests/resources/test_image/minicircle_small.topostats')])
Ex1 (3.11, macos-latest)
The strategy configuration was canceled because "build.windows-latest_3_11" failed
Ex1 (3.10, macos-latest)
The operation was canceled.
Ex1 (3.10, macos-latest): tests/test_processing.py#L77
test_process_scan_below_height_profiles TypeError: 'TopoStats' object is not subscriptable
Ex1 (3.10, macos-latest): tests/test_processing.py#L451
test_image_set[all] TypeError: 'TopoStats' object is not subscriptable
Ex1 (3.10, macos-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test re-add holes, 3 holes, one right size for re-adding] KeyError: 'smoothed_grain'
Ex1 (3.10, macos-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test pruning: thick curve with tail, prune small branch] KeyError: 'smoothed_grain'
Ex1 (3.10, macos-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test pruning: thick curve with tail, no pruning] KeyError: 'smoothed_grain'
Ex1 (3.10, macos-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test height bias: thick curve height weighting outer, weak height bias] KeyError: 'smoothed_grain'
Ex1 (3.10, macos-latest): tests/test_processing.py#L49
test_process_scan_below TypeError: 'TopoStats' object is not subscriptable
Ex1 (3.10, macos-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[test height bias: thick curve height weighting outer, strong height bias] KeyError: 'smoothed_grain'
Ex1 (3.10, macos-latest): tests/tracing/test_disordered_tracing.py#L1277
test_disordered_trace_grain[simple slightly curved line] KeyError: 'smoothed_grain'
Ex1 (3.10, macos-latest): tests/test_io.py#L409
test_find_files[topostats] AssertionError: assert 5 == 6 + where 5 = len([PosixPath('/Users/runner/work/TopoStats/TopoStats/tests/resources/process_scan_topostats_file_regtest.topostats'), PosixPath('/Users/runner/work/TopoStats/TopoStats/tests/resources/notebook3_image.topostats'), PosixPath('/Users/runner/work/TopoStats/TopoStats/tests/resources/file.topostats'), PosixPath('/Users/runner/work/TopoStats/TopoStats/tests/resources/tracing/ordered_tracing/minicircle_post_nodestats.topostats'), PosixPath('/Users/runner/work/TopoStats/TopoStats/tests/resources/test_image/minicircle_small.topostats')])
Ex1 (3.10, macos-latest)
The strategy configuration was canceled because "build.windows-latest_3_11" failed
Ex1 (3.11, windows-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.11, windows-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.11, windows-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.11, windows-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.10, ubuntu-latest): topostats/tracing/nodestats.py#L1127
invalid value encountered in arccos
Ex1 (3.10, ubuntu-latest): topostats/tracing/nodestats.py#L1127
invalid value encountered in arccos
Ex1 (3.10, ubuntu-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.10, ubuntu-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.10, ubuntu-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.10, ubuntu-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.11, ubuntu-latest): topostats/tracing/nodestats.py#L1127
invalid value encountered in arccos
Ex1 (3.11, ubuntu-latest): topostats/tracing/nodestats.py#L1127
invalid value encountered in arccos
Ex1 (3.11, ubuntu-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.11, ubuntu-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.11, ubuntu-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.11, ubuntu-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.10, windows-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.10, windows-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.10, windows-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.10, windows-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.11, macos-latest): topostats/tracing/nodestats.py#L1127
invalid value encountered in arccos
Ex1 (3.11, macos-latest): topostats/tracing/nodestats.py#L1127
invalid value encountered in arccos
Ex1 (3.11, macos-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.11, macos-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.11, macos-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.11, macos-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.10, macos-latest): topostats/tracing/nodestats.py#L1127
invalid value encountered in arccos
Ex1 (3.10, macos-latest): topostats/tracing/nodestats.py#L1127
invalid value encountered in arccos
Ex1 (3.10, macos-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.10, macos-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.10, macos-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide
Ex1 (3.10, macos-latest): topostats/measure/feret.py#L316
invalid value encountered in scalar divide