........EEE..EEE....E..EEEE.................EE......EE..E...EEE...E.EE.E.E...EEEEEE.EEE..EE.EE.E.EEEE./build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py:274: ResourceWarning: unclosed file <_io.BufferedReader name='/build/python-trimesh/src/trimesh-3.9.31/models/tube.obj'> args = f(file_obj=exists, file_type='YOYOMA.oBj') ResourceWarning: Enable tracemalloc to get the object allocation traceback /build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py:288: ResourceWarning: unclosed file <_io.BufferedReader name='/build/python-trimesh/src/trimesh-3.9.31/models/tube.obj'> args = f(file_obj=nonexists, file_type='.ObJ') ResourceWarning: Enable tracemalloc to get the object allocation traceback /usr/lib/python3.10/unittest/case.py:549: ResourceWarning: unclosed file <_io.BufferedReader name='/build/python-trimesh/src/trimesh-3.9.31/models/tube.obj'> method() ResourceWarning: Enable tracemalloc to get the object allocation traceback .E..EE/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py:165: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray. quads = np.asanyarray(quads) .EE......E....E....E.........E...EEE..E......E.E...................E..127.0.0.1 - - [04/Feb/2022 00:30:15] "GET /unit_cube.STL HTTP/1.1" 200 - /usr/lib/python3.10/contextlib.py:142: ResourceWarning: unclosed next(self.gen) ResourceWarning: Enable tracemalloc to get the object allocation traceback ..E.E.E.EEEE..EEEE..................E..../build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py:165: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray. quads = np.asanyarray(quads) ..EEEEEEEE.EEE.EEE...............EE..EE...EEEEEEEE..EEEEEE.EEEEE.........EEE....E.E..EEE.....................E.......E..EE.EF......EE....EEE..EEEE....EE.E.E127.0.0.1 - - [04/Feb/2022 00:33:06] "GET /fuze.obj HTTP/1.1" 200 - 127.0.0.1 - - [04/Feb/2022 00:33:06] "GET /fuze.obj.mtl HTTP/1.1" 200 - 127.0.0.1 - - [04/Feb/2022 00:33:06] "GET /fuze_uv.jpg HTTP/1.1" 200 - 127.0.0.1 - - [04/Feb/2022 00:33:06] "GET /fuze.zip HTTP/1.1" 200 - /usr/lib/python3.10/contextlib.py:142: ResourceWarning: unclosed next(self.gen) ResourceWarning: Enable tracemalloc to get the object allocation traceback ...E..E.E.E............E......E...E...................................E...E..E.....E. ====================================================================== ERROR: test_center (test_arc.ArcTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 11, in test_center from trimesh.path.arc import arc_center File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_center_random (test_arc.ArcTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 32, in test_center_random from trimesh.path.arc import arc_center File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_multiroot (test_arc.ArcTests) Test a Path2D object containing polygons nested in ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_none (test_base.MeshTests) Make sure mesh methods don't return None or crash. ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2834, in face_angles_sparse angles = curvature.face_angles_sparse(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/curvature.py", line 26, in face_angles_sparse matrix = coo_matrix(( NameError: name 'coo_matrix' is not defined ====================================================================== ERROR: test_validate (test_base.MeshTests) Make sure meshes with validation work ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 26, in test_validate m = g.get_mesh('featuretype.STL', validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 126, in load loaded = load_mesh(file_obj, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 218, in load_mesh loaded.append(load_kwargs(kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 500, in load_kwargs return handler() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 445, in handle_mesh return Trimesh(**kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 967, in edges_sparse sparse = graph.edges_to_coo(self.edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 22, in from scipy.sparse import csgraph, coo_matrix ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_validate_inversion (test_base.MeshTests) Make sure inverted meshes are fixed by `validate=True` ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 58, in test_validate_inversion fixed_mesh = g.Trimesh(orig_verts, inv_faces, validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 26, in test_validate m = g.get_mesh('featuretype.STL', validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 126, in load loaded = load_mesh(file_obj, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 218, in load_mesh loaded.append(load_kwargs(kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 500, in load_kwargs return handler() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 445, in handle_mesh return Trimesh(**kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 967, in edges_sparse sparse = graph.edges_to_coo(self.edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 22, in from scipy.sparse import csgraph, coo_matrix ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_2D (test_bounds.BoundsTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 106, in test_2D T, rectangle = g.trimesh.bounds.oriented_bounds_2D(points) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 47, in oriented_bounds_2D convex = spatial.ConvexHull( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 14, in from scipy import spatial ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_cylinder (test_bounds.BoundsTest) Check bounding cylinders on basically a cuboid ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 153, in test_cylinder assert g.np.isclose(mesh.bounding_cylinder.volume, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 234, in bounding_cylinder kwargs = bounds.minimum_cylinder(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 341, in minimum_cylinder hull = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 217, in bounding_sphere center, radius = nsphere.minimum_nsphere(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/nsphere.py", line 61, in minimum_nsphere points = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 252, in bounding_primitive options = [self.bounding_box_oriented, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 21, in from scipy import spatial ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_obb_mesh (test_bounds.BoundsTest) Test the OBB functionality in attributes of Trimesh objects ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 29, in test_obb_mesh box_ext = m.bounding_box_oriented.primitive.extents.copy() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 153, in test_cylinder assert g.np.isclose(mesh.bounding_cylinder.volume, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 234, in bounding_cylinder kwargs = bounds.minimum_cylinder(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 341, in minimum_cylinder hull = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 217, in bounding_sphere center, radius = nsphere.minimum_nsphere(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/nsphere.py", line 61, in minimum_nsphere points = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 252, in bounding_primitive options = [self.bounding_box_oriented, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 21, in from scipy import spatial ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_obb_order (test_bounds.BoundsTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 217, in test_obb_order obb = b.bounding_box_oriented File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 29, in test_obb_mesh box_ext = m.bounding_box_oriented.primitive.extents.copy() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 153, in test_cylinder assert g.np.isclose(mesh.bounding_cylinder.volume, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 234, in bounding_cylinder kwargs = bounds.minimum_cylinder(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 341, in minimum_cylinder hull = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 217, in bounding_sphere center, radius = nsphere.minimum_nsphere(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/nsphere.py", line 61, in minimum_nsphere points = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 252, in bounding_primitive options = [self.bounding_box_oriented, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 21, in from scipy import spatial ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_obb_points (test_bounds.BoundsTest) Test OBB functions with raw points as input ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 73, in test_obb_points to_origin, extents = g.trimesh.bounds.oriented_bounds(points) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 155, in oriented_bounds hull_obj = spatial.ConvexHull(points) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 106, in test_2D T, rectangle = g.trimesh.bounds.oriented_bounds_2D(points) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 47, in oriented_bounds_2D convex = spatial.ConvexHull( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 14, in from scipy import spatial ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_conversion (test_color.VisualTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_data_model (test_color.VisualTest) Test the probably too- magical color caching and storage ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_convex (test_convex.ConvexTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_convex.py", line 26, in test_convex hulls.append(permutated.convex_hull) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 217, in test_obb_order obb = b.bounding_box_oriented File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 29, in test_obb_mesh box_ext = m.bounding_box_oriented.primitive.extents.copy() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 153, in test_cylinder assert g.np.isclose(mesh.bounding_cylinder.volume, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 234, in bounding_cylinder kwargs = bounds.minimum_cylinder(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 341, in minimum_cylinder hull = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 217, in bounding_sphere center, radius = nsphere.minimum_nsphere(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/nsphere.py", line 61, in minimum_nsphere points = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 252, in bounding_primitive options = [self.bounding_box_oriented, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 21, in from scipy import spatial ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_primitives (test_convex.ConvexTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_convex.py", line 69, in test_primitives assert g.np.isclose(tess.convex_hull.volume, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_convex.py", line 26, in test_convex hulls.append(permutated.convex_hull) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 217, in test_obb_order obb = b.bounding_box_oriented File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 29, in test_obb_mesh box_ext = m.bounding_box_oriented.primitive.extents.copy() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 153, in test_cylinder assert g.np.isclose(mesh.bounding_cylinder.volume, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 234, in bounding_cylinder kwargs = bounds.minimum_cylinder(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 341, in minimum_cylinder hull = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 217, in bounding_sphere center, radius = nsphere.minimum_nsphere(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/nsphere.py", line 61, in minimum_nsphere points = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 252, in bounding_primitive options = [self.bounding_box_oriented, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 21, in from scipy import spatial ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_copy (test_copy.CopyTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_copy.py", line 19, in test_copy mesh.kdtree File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1613, in kdtree from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_camera_marker (test_creation.CreationTest) Create a marker including FOV for a camera object ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 103, in test_camera_marker g.trimesh.path.Path3D)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/__init__.py", line 40, in from . import path File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_cone (test_creation.CreationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 20, in test_cone assert c.body_count == 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 58, in test_validate_inversion fixed_mesh = g.Trimesh(orig_verts, inv_faces, validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 26, in test_validate m = g.get_mesh('featuretype.STL', validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 126, in load loaded = load_mesh(file_obj, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 218, in load_mesh loaded.append(load_kwargs(kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 500, in load_kwargs return handler() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 445, in handle_mesh return Trimesh(**kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 967, in edges_sparse sparse = graph.edges_to_coo(self.edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 22, in from scipy.sparse import csgraph, coo_matrix ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_cylinder (test_creation.CreationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 30, in test_cylinder assert c.body_count == 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 20, in test_cone assert c.body_count == 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 58, in test_validate_inversion fixed_mesh = g.Trimesh(orig_verts, inv_faces, validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 26, in test_validate m = g.get_mesh('featuretype.STL', validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 126, in load loaded = load_mesh(file_obj, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 218, in load_mesh loaded.append(load_kwargs(kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 500, in load_kwargs return handler() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 445, in handle_mesh return Trimesh(**kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 967, in edges_sparse sparse = graph.edges_to_coo(self.edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 22, in from scipy.sparse import csgraph, coo_matrix ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_triangulate (test_creation.CreationTest) Test triangulate using meshpy and triangle ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_truncated (test_creation.CreationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 276, in test_truncated assert m.body_count == count File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 30, in test_cylinder assert c.body_count == 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 20, in test_cone assert c.body_count == 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 58, in test_validate_inversion fixed_mesh = g.Trimesh(orig_verts, inv_faces, validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 26, in test_validate m = g.get_mesh('featuretype.STL', validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 126, in load loaded = load_mesh(file_obj, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 218, in load_mesh loaded.append(load_kwargs(kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 500, in load_kwargs return handler() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 445, in handle_mesh return Trimesh(**kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 967, in edges_sparse sparse = graph.edges_to_coo(self.edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 22, in from scipy.sparse import csgraph, coo_matrix ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_gaussian_curvature (test_curvature.CurvatureTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_curvature.py", line 14, in test_gaussian_curvature gauss = g.trimesh.curvature.discrete_gaussian_curvature_measure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/curvature.py", line 79, in discrete_gaussian_curvature_measure nearest = mesh.kdtree.query_ball_point(points, radius) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1613, in kdtree from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_vertex_defect (test_curvature.CurvatureTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_curvature.py", line 43, in test_vertex_defect assert g.np.logical_or(g.np.isclose(m.vertex_defects, 0.0), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2852, in vertex_defects defects = curvature.vertex_defects(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/curvature.py", line 47, in vertex_defects angle_sum = np.array(mesh.face_angles_sparse.sum(axis=1)).flatten() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2834, in face_angles_sparse angles = curvature.face_angles_sparse(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/curvature.py", line 26, in face_angles_sparse matrix = coo_matrix(( NameError: name 'coo_matrix' is not defined ====================================================================== ERROR: test_export (test_dae.DAETest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_bulge (test_dxf.DXFTest) Test bulged polylines which are polylines with ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_dxf (test_dxf.DXFTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 46, in test_dxf single = g.np.hstack(splits) File "<__array_function__ internals>", line 5, in hstack File "/usr/lib/python3.10/site-packages/numpy/core/shape_base.py", line 345, in hstack return _nx.concatenate(arrs, 1) File "<__array_function__ internals>", line 5, in concatenate ValueError: need at least one array to concatenate ====================================================================== ERROR: test_spline (test_dxf.DXFTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_text (test_dxf.DXFTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_unicode (test_dxf.DXFTest) Check our handling of unicode. Current approach is to ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_versions (test_dxf.DXFTest) DXF files have a bajillion versions, so test against ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 107, in test_versions paths[f] = g.trimesh.load(ff) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_brle (test_encoding.EncodingTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 102, in test_brle self._test_brle(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 39, in _test_brle encoding.binary_run_length_data(), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 159, in binary_run_length_data return rl.dense_to_brle(self.dense, dtype=dtype) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 11, in from scipy import sparse as sp ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_composite (test_encoding.EncodingTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 150, in test_composite self._test_composite(encoding, dense_data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 71, in _test_composite check() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 67, in check self._test_dense(encoding, data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 848, in dense return self._data.dense.transpose(self._perm) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 102, in test_brle self._test_brle(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 39, in _test_brle encoding.binary_run_length_data(), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 159, in binary_run_length_data return rl.dense_to_brle(self.dense, dtype=dtype) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 11, in from scipy import sparse as sp ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_dense (test_encoding.EncodingTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 94, in test_dense self._test_dense(encoding, dense_data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 150, in test_composite self._test_composite(encoding, dense_data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 71, in _test_composite check() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 67, in check self._test_dense(encoding, data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 848, in dense return self._data.dense.transpose(self._perm) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 102, in test_brle self._test_brle(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 39, in _test_brle encoding.binary_run_length_data(), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 159, in binary_run_length_data return rl.dense_to_brle(self.dense, dtype=dtype) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 11, in from scipy import sparse as sp ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_flat (test_encoding.EncodingTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 134, in test_flat self._test_dense(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 94, in test_dense self._test_dense(encoding, dense_data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 150, in test_composite self._test_composite(encoding, dense_data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 71, in _test_composite check() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 67, in check self._test_dense(encoding, data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 848, in dense return self._data.dense.transpose(self._perm) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 102, in test_brle self._test_brle(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 39, in _test_brle encoding.binary_run_length_data(), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 159, in binary_run_length_data return rl.dense_to_brle(self.dense, dtype=dtype) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 11, in from scipy import sparse as sp ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_flipped (test_encoding.EncodingTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 115, in test_flipped self._test_flipped(encoding, dense_data, ax) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 61, in _test_flipped self._test_dense(encoding.flip(axes), data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 910, in dense dense = self._data.dense File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 134, in test_flat self._test_dense(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 94, in test_dense self._test_dense(encoding, dense_data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 150, in test_composite self._test_composite(encoding, dense_data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 71, in _test_composite check() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 67, in check self._test_dense(encoding, data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 848, in dense return self._data.dense.transpose(self._perm) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 102, in test_brle self._test_brle(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 39, in _test_brle encoding.binary_run_length_data(), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 159, in binary_run_length_data return rl.dense_to_brle(self.dense, dtype=dtype) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 11, in from scipy import sparse as sp ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_reshape (test_encoding.EncodingTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 145, in test_reshape self._test_dense( File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 785, in dense return self._data.dense.reshape(self.shape) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 115, in test_flipped self._test_flipped(encoding, dense_data, ax) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 61, in _test_flipped self._test_dense(encoding.flip(axes), data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 910, in dense dense = self._data.dense File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 134, in test_flat self._test_dense(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 94, in test_dense self._test_dense(encoding, dense_data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 150, in test_composite self._test_composite(encoding, dense_data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 71, in _test_composite check() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 67, in check self._test_dense(encoding, data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 848, in dense return self._data.dense.transpose(self._perm) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 102, in test_brle self._test_brle(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 39, in _test_brle encoding.binary_run_length_data(), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 159, in binary_run_length_data return rl.dense_to_brle(self.dense, dtype=dtype) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 11, in from scipy import sparse as sp ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_rle (test_encoding.EncodingTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 98, in test_rle self._test_rle(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 35, in _test_rle encoding.run_length_data(), rl.dense_to_rle(data)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 153, in run_length_data return rl.dense_to_rle(self.dense, dtype=dtype) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 145, in test_reshape self._test_dense( File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 785, in dense return self._data.dense.reshape(self.shape) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 115, in test_flipped self._test_flipped(encoding, dense_data, ax) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 61, in _test_flipped self._test_dense(encoding.flip(axes), data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 910, in dense dense = self._data.dense File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 134, in test_flat self._test_dense(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 94, in test_dense self._test_dense(encoding, dense_data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 150, in test_composite self._test_composite(encoding, dense_data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 71, in _test_composite check() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 67, in check self._test_dense(encoding, data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 848, in dense return self._data.dense.transpose(self._perm) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 102, in test_brle self._test_brle(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 39, in _test_brle encoding.binary_run_length_data(), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 159, in binary_run_length_data return rl.dense_to_brle(self.dense, dtype=dtype) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 11, in from scipy import sparse as sp ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_transpose (test_encoding.EncodingTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 126, in test_transpose self._test_transpose(encoding, dense_data, perm) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 45, in _test_transpose self._test_dense(encoding, data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 848, in dense return self._data.dense.transpose(self._perm) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 98, in test_rle self._test_rle(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 35, in _test_rle encoding.run_length_data(), rl.dense_to_rle(data)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 153, in run_length_data return rl.dense_to_rle(self.dense, dtype=dtype) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 145, in test_reshape self._test_dense( File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 785, in dense return self._data.dense.reshape(self.shape) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 115, in test_flipped self._test_flipped(encoding, dense_data, ax) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 61, in _test_flipped self._test_dense(encoding.flip(axes), data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 910, in dense dense = self._data.dense File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 134, in test_flat self._test_dense(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 94, in test_dense self._test_dense(encoding, dense_data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 150, in test_composite self._test_composite(encoding, dense_data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 71, in _test_composite check() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 67, in check self._test_dense(encoding, data) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 31, in _test_dense np.testing.assert_equal(encoding.dense, data) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 848, in dense return self._data.dense.transpose(self._perm) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 102, in test_brle self._test_brle(encoding.flat, dense_data.reshape((-1,))) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_encoding.py", line 39, in _test_brle encoding.binary_run_length_data(), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 159, in binary_run_length_data return rl.dense_to_brle(self.dense, dtype=dtype) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 723, in dense return self._data.dense.reshape((-1,)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 344, in dense sparse = self._csc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 355, in _csc return sp.csc_matrix((values, indices, indptr), shape=(self.size, 1)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/voxel/encoding.py", line 11, in from scipy import sparse as sp ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_dict (test_export.ExportTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_export (test_export.ExportTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_gltf_path (test_export.ExportTest) Check to make sure GLTF exports of Path2D and Path3D ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 242, in test_gltf_path path2D = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 107, in test_versions paths[f] = g.trimesh.load(ff) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_obj (test_export.ExportTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_scene (test_export.ExportTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_facet (test_facets.FacetTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_facets.py", line 16, in test_facet assert len(m.facets) == len(m.facets_on_hull) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1758, in facets_on_hull convex = self.convex_hull.vertices.view(np.ndarray).copy() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_convex.py", line 69, in test_primitives assert g.np.isclose(tess.convex_hull.volume, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_convex.py", line 26, in test_convex hulls.append(permutated.convex_hull) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 217, in test_obb_order obb = b.bounding_box_oriented File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 29, in test_obb_mesh box_ext = m.bounding_box_oriented.primitive.extents.copy() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 153, in test_cylinder assert g.np.isclose(mesh.bounding_cylinder.volume, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 234, in bounding_cylinder kwargs = bounds.minimum_cylinder(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 341, in minimum_cylinder hull = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 217, in bounding_sphere center, radius = nsphere.minimum_nsphere(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/nsphere.py", line 61, in minimum_nsphere points = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 252, in bounding_primitive options = [self.bounding_box_oriented, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 21, in from scipy import spatial ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_fill (test_fill.FillTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_fill.py", line 12, in test_fill a = g.get_mesh('2D/broken_loop.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 242, in test_gltf_path path2D = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 107, in test_versions paths[f] = g.trimesh.load(ff) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_basic (test_gltf.GLTFTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_buffer_dedupe (test_gltf.GLTFTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 105, in test_buffer_dedupe a = g.json.loads(scene.export( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_extras (test_gltf.GLTFTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 465, in test_extras export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 105, in test_buffer_dedupe a = g.json.loads(scene.export( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_merge_buffers (test_gltf.GLTFTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 222, in test_merge_buffers export = scene.export(file_type='gltf', merge_buffers=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 465, in test_extras export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 105, in test_buffer_dedupe a = g.json.loads(scene.export( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_node_name (test_gltf.GLTFTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 376, in test_node_name export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 222, in test_merge_buffers export = scene.export(file_type='gltf', merge_buffers=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 465, in test_extras export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 105, in test_buffer_dedupe a = g.json.loads(scene.export( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_vertex_colors (test_gltf.GLTFTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 592, in test_vertex_colors export = m.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 376, in test_node_name export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 222, in test_merge_buffers export = scene.export(file_type='gltf', merge_buffers=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 465, in test_extras export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 105, in test_buffer_dedupe a = g.json.loads(scene.export( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_components (test_graph.GraphTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_graph.py", line 43, in test_components split = mult.split(only_watertight=False, engine=engine) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1289, in split return graph.split(self, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 340, in split components = connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 443, in connected_components return engines[engine]() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 276, in test_truncated assert m.body_count == count File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 30, in test_cylinder assert c.body_count == 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 20, in test_cone assert c.body_count == 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 58, in test_validate_inversion fixed_mesh = g.Trimesh(orig_verts, inv_faces, validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 26, in test_validate m = g.get_mesh('featuretype.STL', validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 126, in load loaded = load_mesh(file_obj, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 218, in load_mesh loaded.append(load_kwargs(kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 500, in load_kwargs return handler() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 445, in handle_mesh return Trimesh(**kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 967, in edges_sparse sparse = graph.edges_to_coo(self.edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 22, in from scipy.sparse import csgraph, coo_matrix ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_engine_time (test_graph.GraphTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_graph.py", line 88, in test_engine_time mesh.split(engine=engine, only_watertight=False) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1289, in split return graph.split(self, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 340, in split components = connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 443, in connected_components return engines[engine]() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_graph.py", line 43, in test_components split = mult.split(only_watertight=False, engine=engine) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1289, in split return graph.split(self, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 340, in split components = connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 443, in connected_components return engines[engine]() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 276, in test_truncated assert m.body_count == count File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 30, in test_cylinder assert c.body_count == 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 20, in test_cone assert c.body_count == 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 58, in test_validate_inversion fixed_mesh = g.Trimesh(orig_verts, inv_faces, validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 26, in test_validate m = g.get_mesh('featuretype.STL', validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 126, in load loaded = load_mesh(file_obj, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 218, in load_mesh loaded.append(load_kwargs(kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 500, in load_kwargs return handler() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 445, in handle_mesh return Trimesh(**kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 967, in edges_sparse sparse = graph.edges_to_coo(self.edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 22, in from scipy.sparse import csgraph, coo_matrix ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_engines (test_graph.GraphTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_graph.py", line 112, in test_engines check_engines(nodes=g.np.arange(i), File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_graph.py", line 255, in check_engines c = g.trimesh.graph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 443, in connected_components return engines[engine]() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_graph.py", line 88, in test_engine_time mesh.split(engine=engine, only_watertight=False) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1289, in split return graph.split(self, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 340, in split components = connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 443, in connected_components return engines[engine]() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_graph.py", line 43, in test_components split = mult.split(only_watertight=False, engine=engine) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1289, in split return graph.split(self, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 340, in split components = connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 443, in connected_components return engines[engine]() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 276, in test_truncated assert m.body_count == count File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 30, in test_cylinder assert c.body_count == 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 20, in test_cone assert c.body_count == 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 58, in test_validate_inversion fixed_mesh = g.Trimesh(orig_verts, inv_faces, validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 26, in test_validate m = g.get_mesh('featuretype.STL', validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 126, in load loaded = load_mesh(file_obj, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 218, in load_mesh loaded.append(load_kwargs(kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 500, in load_kwargs return handler() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 445, in handle_mesh return Trimesh(**kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 967, in edges_sparse sparse = graph.edges_to_coo(self.edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 22, in from scipy.sparse import csgraph, coo_matrix ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_traversals (test_graph.GraphTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_graph.py", line 150, in test_traversals dfs_basic = g.trimesh.graph.traversals(edges, 'dfs') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 644, in traversals func = csgraph.depth_first_order File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_graph.py", line 112, in test_engines check_engines(nodes=g.np.arange(i), File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_graph.py", line 255, in check_engines c = g.trimesh.graph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 443, in connected_components return engines[engine]() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_graph.py", line 88, in test_engine_time mesh.split(engine=engine, only_watertight=False) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1289, in split return graph.split(self, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 340, in split components = connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 443, in connected_components return engines[engine]() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_graph.py", line 43, in test_components split = mult.split(only_watertight=False, engine=engine) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1289, in split return graph.split(self, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 340, in split components = connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 443, in connected_components return engines[engine]() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 276, in test_truncated assert m.body_count == count File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 30, in test_cylinder assert c.body_count == 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 20, in test_cone assert c.body_count == 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 449, in connected_components return function() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 391, in components_csgraph labels = connected_component_labels(edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 472, in connected_component_labels matrix = edges_to_coo(edges, node_count) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 58, in test_validate_inversion fixed_mesh = g.Trimesh(orig_verts, inv_faces, validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 26, in test_validate m = g.get_mesh('featuretype.STL', validate=True) File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 126, in load loaded = load_mesh(file_obj, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 218, in load_mesh loaded.append(load_kwargs(kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 500, in load_kwargs return handler() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 445, in handle_mesh return Trimesh(**kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 192, in __init__ self.process(validate=validate, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 234, in process self.fix_normals() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/constants.py", line 146, in timed result = method(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1789, in fix_normals multibody = self.body_count > 1 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 967, in edges_sparse sparse = graph.edges_to_coo(self.edges, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 712, in edges_to_coo matrix = coo_matrix((data, edges.T), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 984, in body_count count, labels = graph.csgraph.connected_components( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/graph.py", line 22, in from scipy.sparse import csgraph, coo_matrix ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_cluster (test_grouping.GroupTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_grouping.py", line 201, in test_cluster assert len(g.trimesh.grouping.clusters(points, .01)) > 0 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/grouping.py", line 694, in clusters tree = cKDTree(points) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/grouping.py", line 15, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_group_vector (test_grouping.GroupTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_grouping.py", line 249, in test_group_vector uv, ui = g.trimesh.grouping.group_vectors(vec) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/grouping.py", line 628, in group_vectors angles, groups = group_distance(spherical, angle) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/grouping.py", line 658, in group_distance tree = cKDTree(values) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_grouping.py", line 201, in test_cluster assert len(g.trimesh.grouping.clusters(points, .01)) > 0 File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/grouping.py", line 694, in clusters tree = cKDTree(points) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/grouping.py", line 15, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_fileobj (test_loaded.LoaderTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_loaded.py", line 62, in test_fileobj path = g.trimesh.load( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_fill.py", line 12, in test_fill a = g.get_mesh('2D/broken_loop.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 242, in test_gltf_path path2D = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 107, in test_versions paths[f] = g.trimesh.load(ff) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_medial (test_medial.MedialTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_medial.py", line 10, in test_medial p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_loaded.py", line 62, in test_fileobj path = g.trimesh.load( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_fill.py", line 12, in test_fill a = g.get_mesh('2D/broken_loop.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 242, in test_gltf_path path2D = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 107, in test_versions paths[f] = g.trimesh.load(ff) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_meshes (test_mesh.MeshTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mesh.py", line 34, in test_meshes assert mesh.vertex_normals.shape == mesh.vertices.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 592, in test_vertex_colors export = m.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 376, in test_node_name export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 222, in test_merge_buffers export = scene.export(file_type='gltf', merge_buffers=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 465, in test_extras export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 105, in test_buffer_dedupe a = g.json.loads(scene.export( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_svg (test_meta.MetaTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_meta.py", line 54, in test_svg p = g.get_mesh('2D/1002_tray_bottom.DXF') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_medial.py", line 10, in test_medial p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_loaded.py", line 62, in test_fileobj path = g.trimesh.load( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_fill.py", line 12, in test_fill a = g.get_mesh('2D/broken_loop.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 242, in test_gltf_path path2D = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 107, in test_versions paths[f] = g.trimesh.load(ff) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_not_mutated_bunny (test_mutate.MutateTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 61, in test_not_mutated_bunny self._test_not_mutated(*get_readonly('bunny.ply')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mesh.py", line 34, in test_meshes assert mesh.vertex_normals.shape == mesh.vertices.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 592, in test_vertex_colors export = m.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 376, in test_node_name export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 222, in test_merge_buffers export = scene.export(file_type='gltf', merge_buffers=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 465, in test_extras export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 105, in test_buffer_dedupe a = g.json.loads(scene.export( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_not_mutated_cube (test_mutate.MutateTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 55, in test_not_mutated_cube self._test_not_mutated(*get_readonly('cube.OBJ')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 61, in test_not_mutated_bunny self._test_not_mutated(*get_readonly('bunny.ply')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mesh.py", line 34, in test_meshes assert mesh.vertex_normals.shape == mesh.vertices.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 592, in test_vertex_colors export = m.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 376, in test_node_name export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 222, in test_merge_buffers export = scene.export(file_type='gltf', merge_buffers=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 465, in test_extras export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 105, in test_buffer_dedupe a = g.json.loads(scene.export( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_not_mutated_teapot (test_mutate.MutateTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 64, in test_not_mutated_teapot self._test_not_mutated(*get_readonly('teapot.stl')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 55, in test_not_mutated_cube self._test_not_mutated(*get_readonly('cube.OBJ')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 61, in test_not_mutated_bunny self._test_not_mutated(*get_readonly('bunny.ply')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mesh.py", line 34, in test_meshes assert mesh.vertex_normals.shape == mesh.vertices.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 592, in test_vertex_colors export = m.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 376, in test_node_name export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 222, in test_merge_buffers export = scene.export(file_type='gltf', merge_buffers=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 465, in test_extras export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 105, in test_buffer_dedupe a = g.json.loads(scene.export( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_not_mutated_torus (test_mutate.MutateTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 58, in test_not_mutated_torus self._test_not_mutated(*get_readonly('torus.STL')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 64, in test_not_mutated_teapot self._test_not_mutated(*get_readonly('teapot.stl')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 55, in test_not_mutated_cube self._test_not_mutated(*get_readonly('cube.OBJ')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 61, in test_not_mutated_bunny self._test_not_mutated(*get_readonly('bunny.ply')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mesh.py", line 34, in test_meshes assert mesh.vertex_normals.shape == mesh.vertices.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 592, in test_vertex_colors export = m.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 376, in test_node_name export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 222, in test_merge_buffers export = scene.export(file_type='gltf', merge_buffers=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 465, in test_extras export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 105, in test_buffer_dedupe a = g.json.loads(scene.export( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_vertex_normal (test_normals.NormalsTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_normals.py", line 32, in test_vertex_normal assert mesh.faces_sparse is not None File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 296, in mean_vertex_normals summed = summed_sparse() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 281, in summed_sparse matrix = index_sparse(vertex_count, faces) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 296, in mean_vertex_normals summed = summed_sparse() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 281, in summed_sparse matrix = index_sparse(vertex_count, faces) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 58, in test_not_mutated_torus self._test_not_mutated(*get_readonly('torus.STL')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 64, in test_not_mutated_teapot self._test_not_mutated(*get_readonly('teapot.stl')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 55, in test_not_mutated_cube self._test_not_mutated(*get_readonly('cube.OBJ')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 61, in test_not_mutated_bunny self._test_not_mutated(*get_readonly('bunny.ply')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mesh.py", line 34, in test_meshes assert mesh.vertex_normals.shape == mesh.vertices.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 592, in test_vertex_colors export = m.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 376, in test_node_name export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 222, in test_merge_buffers export = scene.export(file_type='gltf', merge_buffers=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 465, in test_extras export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 105, in test_buffer_dedupe a = g.json.loads(scene.export( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_weighted_vertex_normals (test_normals.NormalsTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_normals.py", line 68, in test_weighted_vertex_normals compare_trimesh_to_groundtruth(ico_mesh, ico_truth) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_normals.py", line 60, in compare_trimesh_to_groundtruth assert mesh.faces_sparse is not None File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 379, in weighted_vertex_normals return util.unitize(summed_sparse()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 349, in summed_sparse matrix = index_sparse(vertex_count, faces).astype(np.float64) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 379, in weighted_vertex_normals return util.unitize(summed_sparse()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 349, in summed_sparse matrix = index_sparse(vertex_count, faces).astype(np.float64) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_normals.py", line 32, in test_vertex_normal assert mesh.faces_sparse is not None File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 296, in mean_vertex_normals summed = summed_sparse() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 281, in summed_sparse matrix = index_sparse(vertex_count, faces) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 296, in mean_vertex_normals summed = summed_sparse() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 281, in summed_sparse matrix = index_sparse(vertex_count, faces) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 58, in test_not_mutated_torus self._test_not_mutated(*get_readonly('torus.STL')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 64, in test_not_mutated_teapot self._test_not_mutated(*get_readonly('teapot.stl')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 55, in test_not_mutated_cube self._test_not_mutated(*get_readonly('cube.OBJ')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 61, in test_not_mutated_bunny self._test_not_mutated(*get_readonly('bunny.ply')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mesh.py", line 34, in test_meshes assert mesh.vertex_normals.shape == mesh.vertices.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 592, in test_vertex_colors export = m.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 376, in test_node_name export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 222, in test_merge_buffers export = scene.export(file_type='gltf', merge_buffers=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 465, in test_extras export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 105, in test_buffer_dedupe a = g.json.loads(scene.export( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_isnsphere (test_nsphere.NSphereTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_nsphere.py", line 45, in test_isnsphere assert g.trimesh.nsphere.is_nsphere(m.vertices) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/nsphere.py", line 189, in is_nsphere center, radius, error = fit_nsphere(points) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/nsphere.py", line 162, in fit_nsphere center_result, return_code = leastsq(residuals, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/nsphere.py", line 17, in from scipy import spatial ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_minball (test_nsphere.NSphereTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_nsphere.py", line 18, in test_minball s = m.bounding_sphere File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 217, in bounding_sphere center, radius = nsphere.minimum_nsphere(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/nsphere.py", line 61, in minimum_nsphere points = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/comparison.py", line 99, in identifier_simple hull = mesh.convex_hull File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_facets.py", line 16, in test_facet assert len(m.facets) == len(m.facets_on_hull) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 1758, in facets_on_hull convex = self.convex_hull.vertices.view(np.ndarray).copy() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_convex.py", line 69, in test_primitives assert g.np.isclose(tess.convex_hull.volume, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_convex.py", line 26, in test_convex hulls.append(permutated.convex_hull) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 217, in test_obb_order obb = b.bounding_box_oriented File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 29, in test_obb_mesh box_ext = m.bounding_box_oriented.primitive.extents.copy() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_bounds.py", line 153, in test_cylinder assert g.np.isclose(mesh.bounding_cylinder.volume, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 234, in bounding_cylinder kwargs = bounds.minimum_cylinder(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 341, in minimum_cylinder hull = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 217, in bounding_sphere center, radius = nsphere.minimum_nsphere(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/nsphere.py", line 61, in minimum_nsphere points = convex.hull_points(obj) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 212, in hull_points if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 252, in bounding_primitive options = [self.bounding_box_oriented, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_base.py", line 80, in test_none res = eval(expr) File "", line 1, in File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2256, in convex_hull hull = convex.convex_hull(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 21, in from scipy import spatial ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_scene (test_obj.OBJTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_obj.py", line 209, in test_scene g.io_wrap(s.export(file_type='obj')), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 233, in export_scene data = export_obj(scene, resolver=resolver) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/obj.py", line 810, in export_obj len(mesh.visual.vertex_colors)): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_normals.py", line 68, in test_weighted_vertex_normals compare_trimesh_to_groundtruth(ico_mesh, ico_truth) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_normals.py", line 60, in compare_trimesh_to_groundtruth assert mesh.faces_sparse is not None File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 379, in weighted_vertex_normals return util.unitize(summed_sparse()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 349, in summed_sparse matrix = index_sparse(vertex_count, faces).astype(np.float64) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 379, in weighted_vertex_normals return util.unitize(summed_sparse()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 349, in summed_sparse matrix = index_sparse(vertex_count, faces).astype(np.float64) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_normals.py", line 32, in test_vertex_normal assert mesh.faces_sparse is not None File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 296, in mean_vertex_normals summed = summed_sparse() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 281, in summed_sparse matrix = index_sparse(vertex_count, faces) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 296, in mean_vertex_normals summed = summed_sparse() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 281, in summed_sparse matrix = index_sparse(vertex_count, faces) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 58, in test_not_mutated_torus self._test_not_mutated(*get_readonly('torus.STL')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 64, in test_not_mutated_teapot self._test_not_mutated(*get_readonly('teapot.stl')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 55, in test_not_mutated_cube self._test_not_mutated(*get_readonly('cube.OBJ')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 61, in test_not_mutated_bunny self._test_not_mutated(*get_readonly('bunny.ply')) File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mutate.py", line 71, in _test_not_mutated mesh.faces_sparse File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_mesh.py", line 34, in test_meshes assert mesh.vertex_normals.shape == mesh.vertices.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 592, in test_vertex_colors export = m.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 376, in test_node_name export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 222, in test_merge_buffers export = scene.export(file_type='gltf', merge_buffers=True) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 465, in test_extras export = s.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 105, in test_buffer_dedupe a = g.json.loads(scene.export( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 190, in test_basic export = scene.export(file_type='gltf') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 225, in export_scene data = export_gltf(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 103, in export_gltf tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 228, in test_scene export = source.export(file_type='glb') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/scene/scene.py", line 843, in export return export.export_scene( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 227, in export_scene data = export_glb(scene, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 179, in export_glb tree, buffer_items = _create_gltf_structure( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 604, in _create_gltf_structure _append_mesh( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/gltf.py", line 720, in _append_mesh vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 190, in test_obj assert m.vertex_normals.shape == reconstructed.vertex_normals.shape File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 26, in test_export export = mesh.export(file_type=file_type) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 216, in test_dict mesh.visual.vertex_colors = mesh.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dae.py", line 46, in test_export r = a.export(file_type='dae') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2668, in export return export_mesh(mesh=self, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/export.py", line 82, in export_mesh export = _mesh_exporters[file_type](mesh, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/dae.py", line 102, in export_collada 'normals-array', m.vertex_normals.flatten(), ('X', 'Y', 'Z')) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 473, in vertex_normals assert hasattr(self.faces_sparse, 'dot') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 81, in test_data_model assert bool((m.visual.vertex_colors == test_color).all()) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_color.py", line 169, in test_conversion m.visual.vertex_colors = m.visual.vertex_colors File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 220, in vertex_colors return self._get_colors(name='vertex') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 338, in _get_colors colors = face_to_vertex_color( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/visual/color.py", line 716, in face_to_vertex_color vertex = mesh.faces_sparse.dot(rgba.astype(np.float64)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 326, in faces_sparse sparse = geometry.index_sparse( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 450, in index_sparse matrix = scipy.sparse.coo_matrix((data, (row, col)), File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/geometry.py", line 7, in import scipy.sparse ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_add (test_operators.OpTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_operators.py", line 20, in test_add p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_meta.py", line 54, in test_svg p = g.get_mesh('2D/1002_tray_bottom.DXF') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_medial.py", line 10, in test_medial p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_loaded.py", line 62, in test_fileobj path = g.trimesh.load( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_fill.py", line 12, in test_fill a = g.get_mesh('2D/broken_loop.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 242, in test_gltf_path path2D = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 107, in test_versions paths[f] = g.trimesh.load(ff) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_obb (test_packing.PackingTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_packing.py", line 14, in test_obb from trimesh.path import packing File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_paths (test_packing.PackingTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_packing.py", line 18, in test_paths from trimesh.path import packing File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_circle (test_path_creation.CreationTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_path_creation.py", line 22, in test_circle from trimesh.path import creation File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_circle_pattern (test_path_creation.CreationTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_path_creation.py", line 10, in test_circle_pattern from trimesh.path import creation File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_grid (test_path_creation.CreationTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_path_creation.py", line 60, in test_grid grid = g.trimesh.path.creation.grid(side=5.0) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 103, in test_camera_marker g.trimesh.path.Path3D)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/__init__.py", line 40, in from . import path File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_rect (test_path_creation.CreationTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_path_creation.py", line 39, in test_rect from trimesh.path import creation File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_full_filetype (test_pathlib.PathTest) Test loading with file types specified as ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_pathlib.py", line 61, in test_full_filetype path = g.trimesh.load_path(file_obj=file_name, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_operators.py", line 20, in test_add p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_meta.py", line 54, in test_svg p = g.get_mesh('2D/1002_tray_bottom.DXF') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_medial.py", line 10, in test_medial p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_loaded.py", line 62, in test_fileobj path = g.trimesh.load( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_fill.py", line 12, in test_fill a = g.get_mesh('2D/broken_loop.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 242, in test_gltf_path path2D = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 107, in test_versions paths[f] = g.trimesh.load(ff) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_section (test_paths.SectionTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 249, in test_section section = mesh.section(plane_origin=mesh.center_mass, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_pathlib.py", line 61, in test_full_filetype path = g.trimesh.load_path(file_obj=file_name, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_operators.py", line 20, in test_add p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_meta.py", line 54, in test_svg p = g.get_mesh('2D/1002_tray_bottom.DXF') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_medial.py", line 10, in test_medial p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_loaded.py", line 62, in test_fileobj path = g.trimesh.load( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_fill.py", line 12, in test_fill a = g.get_mesh('2D/broken_loop.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 242, in test_gltf_path path2D = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 107, in test_versions paths[f] = g.trimesh.load(ff) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_split (test_paths.SplitTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 219, in test_split p = g.get_mesh(fn) File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 249, in test_section section = mesh.section(plane_origin=mesh.center_mass, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_pathlib.py", line 61, in test_full_filetype path = g.trimesh.load_path(file_obj=file_name, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_operators.py", line 20, in test_add p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_meta.py", line 54, in test_svg p = g.get_mesh('2D/1002_tray_bottom.DXF') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_medial.py", line 10, in test_medial p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_loaded.py", line 62, in test_fileobj path = g.trimesh.load( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_fill.py", line 12, in test_fill a = g.get_mesh('2D/broken_loop.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 242, in test_gltf_path path2D = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 107, in test_versions paths[f] = g.trimesh.load(ff) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_color (test_paths.VectorTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 195, in test_color p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 219, in test_split p = g.get_mesh(fn) File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 249, in test_section section = mesh.section(plane_origin=mesh.center_mass, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_pathlib.py", line 61, in test_full_filetype path = g.trimesh.load_path(file_obj=file_name, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_operators.py", line 20, in test_add p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_meta.py", line 54, in test_svg p = g.get_mesh('2D/1002_tray_bottom.DXF') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_medial.py", line 10, in test_medial p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_loaded.py", line 62, in test_fileobj path = g.trimesh.load( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_fill.py", line 12, in test_fill a = g.get_mesh('2D/broken_loop.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 242, in test_gltf_path path2D = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 107, in test_versions paths[f] = g.trimesh.load(ff) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_empty (test_paths.VectorTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 181, in test_empty p = g.trimesh.path.Path2D() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_path_creation.py", line 60, in test_grid grid = g.trimesh.path.creation.grid(side=5.0) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 683, in test_bulk if isinstance(geom, g.trimesh.path.path.Path): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 103, in test_camera_marker g.trimesh.path.Path3D)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/__init__.py", line 40, in from . import path File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_poly (test_paths.VectorTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 117, in test_poly p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 195, in test_color p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 219, in test_split p = g.get_mesh(fn) File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 249, in test_section section = mesh.section(plane_origin=mesh.center_mass, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_pathlib.py", line 61, in test_full_filetype path = g.trimesh.load_path(file_obj=file_name, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_operators.py", line 20, in test_add p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_meta.py", line 54, in test_svg p = g.get_mesh('2D/1002_tray_bottom.DXF') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_medial.py", line 10, in test_medial p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_loaded.py", line 62, in test_fileobj path = g.trimesh.load( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_fill.py", line 12, in test_fill a = g.get_mesh('2D/broken_loop.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 242, in test_gltf_path path2D = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 107, in test_versions paths[f] = g.trimesh.load(ff) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_text (test_paths.VectorTests) Do some checks on Text entities ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 161, in test_text p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 117, in test_poly p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 195, in test_color p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 219, in test_split p = g.get_mesh(fn) File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_paths.py", line 249, in test_section section = mesh.section(plane_origin=mesh.center_mass, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_pathlib.py", line 61, in test_full_filetype path = g.trimesh.load_path(file_obj=file_name, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_operators.py", line 20, in test_add p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_meta.py", line 54, in test_svg p = g.get_mesh('2D/1002_tray_bottom.DXF') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_medial.py", line 10, in test_medial p = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_loaded.py", line 62, in test_fileobj path = g.trimesh.load( File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_gltf.py", line 682, in test_bulk geom = g.trimesh.load(path_in) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_fill.py", line 12, in test_fill a = g.get_mesh('2D/broken_loop.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_export.py", line 242, in test_gltf_path path2D = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 107, in test_versions paths[f] = g.trimesh.load(ff) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 197, in test_unicode m = g.get_mesh('2D/wrench.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 161, in test_text original = g.get_mesh('2D/text.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 70, in test_spline d = g.get_mesh('2D/cycloidal.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_dxf.py", line 145, in test_bulge p = g.get_mesh('2D/LM2.dxf') File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_creation.py", line 232, in test_triangulate bench = g.get_mesh('2D/wrench.dxf').polygons_full[0] File "/build/python-trimesh/src/trimesh-3.9.31/tests/generic.py", line 184, in get_mesh meshes.append(trimesh.load(location, **kwargs)) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 145, in load load_path() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", line 549, in _callTestMethod method() File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_arc.py", line 90, in test_multiroot s = m.section(plane_normal=[0, 0, 1], File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/base.py", line 2104, in section path = load_path(lines) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 48, in failed raise exc File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exchange/load.py", line 31, in from ..path.exchange.load import load_path, path_formats File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/__init__.py", line 9, in from .path import Path2D, Path3D File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/path.py", line 32, in from . import repair File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/path/repair.py", line 11, in from scipy.spatial import cKDTree ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_kmeans (test_points.PointsTest) Test K-means clustering ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_points.py", line 128, in test_kmeans centroids, klabel = g.trimesh.points.k_means(points=clustered, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/points.py", line 247, in k_means from scipy.cluster.vq import kmeans ModuleNotFoundError: No module named 'scipy' ====================================================================== ERROR: test_obb (test_points.PointsTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_3mf.py", line 2, in from . import generic as g ImportError: attempted relative import with no known parent package During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-trimesh/src/trimesh-3.9.31/tests/test_points.py", line 188, in test_obb matrix = p.apply_obb() File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 272, in apply_obb matrix = self.bounding_box_oriented.primitive.transform File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/parent.py", line 194, in bounding_box_oriented to_origin, extents = bounds.oriented_bounds(self) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/bounds.py", line 141, in oriented_bounds if hasattr(obj, 'convex_hull'): File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/caching.py", line 109, in get_cached value = function(*args, **kwargs) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/points.py", line 607, in convex_hull return convex.convex_hull(self.vertices) File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/convex.py", line 58, in convex_hull hull = spatial.ConvexHull(points, File "/build/python-trimesh/src/trimesh-3.9.31/trimesh/exceptions.py", line 28, in __getattribute__ raise super(ExceptionModule, self).__getattribute__('exc') File "/usr/lib/python3.10/unittest/case.py", line 59, in testPartExecutor yield File "/usr/lib/python3.10/unittest/case.py", line 591, in run self._callTestMethod(testMethod) File "/usr/lib/python3.10/unittest/case.py", l