From eb4e90e52fe39b8c7a3d1a17c83da57817e2fbb1 Mon Sep 17 00:00:00 2001 From: tomvanmele Date: Tue, 23 Apr 2024 16:09:11 +0200 Subject: [PATCH] ruff, isort --- src/compas/_iotools.py | 2 +- src/compas/_os.py | 3 +- src/compas/colors/colordict.py | 3 +- src/compas/colors/colormap.py | 2 +- src/compas/data/coercion.py | 2 +- src/compas/data/data.py | 7 +-- src/compas/data/encoders.py | 2 +- src/compas/data/schema.py | 5 +- src/compas/data/validators.py | 2 +- .../datastructures/assembly/assembly.py | 3 +- src/compas/datastructures/assembly/part.py | 8 +-- .../cell_network/cell_network.py | 30 +++------- src/compas/datastructures/graph/duality.py | 5 +- src/compas/datastructures/graph/graph.py | 36 ++++++------ .../datastructures/graph/operations/join.py | 14 ++--- .../datastructures/graph/operations/split.py | 2 +- src/compas/datastructures/graph/planarity.py | 8 +-- src/compas/datastructures/graph/smoothing.py | 2 +- src/compas/datastructures/mesh/conway.py | 12 +--- src/compas/datastructures/mesh/duality.py | 4 +- src/compas/datastructures/mesh/mesh.py | 58 +++++++------------ .../mesh/operations/collapse.py | 2 +- .../datastructures/mesh/operations/insert.py | 2 +- .../datastructures/mesh/operations/merge.py | 2 +- .../datastructures/mesh/operations/split.py | 2 +- .../mesh/operations/substitute.py | 2 +- .../datastructures/mesh/operations/swap.py | 2 +- .../datastructures/mesh/operations/weld.py | 7 +-- src/compas/datastructures/mesh/remesh.py | 6 +- src/compas/datastructures/mesh/slice.py | 2 +- src/compas/datastructures/mesh/smoothing.py | 2 +- src/compas/datastructures/mesh/subdivision.py | 15 ++--- src/compas/datastructures/tree/tree.py | 4 +- src/compas/datastructures/volmesh/volmesh.py | 36 ++++-------- src/compas/files/_xml/xml_cli.py | 2 - src/compas/files/_xml/xml_pre_38.py | 1 + src/compas/files/gltf/constants.py | 4 +- src/compas/files/gltf/data_classes.py | 13 ++--- src/compas/files/gltf/extensions.py | 2 +- src/compas/files/gltf/gltf.py | 4 +- src/compas/files/gltf/gltf_children.py | 4 +- src/compas/files/gltf/gltf_content.py | 4 +- src/compas/files/gltf/gltf_exporter.py | 30 +++------- src/compas/files/gltf/gltf_mesh.py | 8 +-- src/compas/files/gltf/gltf_node.py | 12 ++-- src/compas/files/gltf/gltf_parser.py | 30 +++------- src/compas/files/gltf/gltf_reader.py | 9 +-- src/compas/files/gltf/gltf_scene.py | 4 +- src/compas/files/gltf/helpers.py | 4 +- src/compas/files/off.py | 4 +- src/compas/files/ply.py | 4 +- src/compas/files/stl.py | 1 + src/compas/geometry/_core/_algebra.py | 25 ++++---- src/compas/geometry/_core/angles.py | 12 ++-- src/compas/geometry/_core/centroids.py | 10 ++-- src/compas/geometry/_core/distance.py | 20 +++---- src/compas/geometry/_core/normals.py | 7 +-- src/compas/geometry/_core/predicates_2.py | 10 ++-- src/compas/geometry/_core/predicates_3.py | 32 ++++------ src/compas/geometry/_core/quaternions.py | 1 + src/compas/geometry/_core/size.py | 10 ++-- src/compas/geometry/_core/tangent.py | 2 +- src/compas/geometry/_core/transformations.py | 29 +++++----- .../geometry/_core/transformations_numpy.py | 3 +- src/compas/geometry/bbox.py | 3 +- src/compas/geometry/bbox_numpy.py | 18 +++--- src/compas/geometry/bestfit.py | 6 +- src/compas/geometry/bestfit_numpy.py | 2 +- src/compas/geometry/booleans.py | 32 +++------- src/compas/geometry/booleans_shapely.py | 3 +- src/compas/geometry/brep/brep.py | 22 +++---- src/compas/geometry/brep/face.py | 1 - src/compas/geometry/contours.py | 2 +- src/compas/geometry/curves/arc.py | 20 +++---- src/compas/geometry/curves/bezier.py | 6 +- src/compas/geometry/curves/circle.py | 11 ++-- src/compas/geometry/curves/conic.py | 2 +- src/compas/geometry/curves/curve.py | 8 +-- src/compas/geometry/curves/ellipse.py | 10 +++- src/compas/geometry/curves/hyperbola.py | 9 ++- src/compas/geometry/curves/line.py | 7 ++- src/compas/geometry/curves/nurbs.py | 8 +-- src/compas/geometry/curves/parabola.py | 9 +-- src/compas/geometry/curves/polyline.py | 15 ++--- src/compas/geometry/frame.py | 15 ++--- src/compas/geometry/hull.py | 6 +- src/compas/geometry/icp_numpy.py | 10 ++-- .../geometry/interpolation_barycentric.py | 4 +- src/compas/geometry/interpolation_coons.py | 3 +- src/compas/geometry/interpolation_tweening.py | 6 +- src/compas/geometry/intersection.py | 2 +- src/compas/geometry/intersections.py | 43 +++++--------- src/compas/geometry/kdtree.py | 3 +- src/compas/geometry/offset.py | 18 +++--- src/compas/geometry/pca_numpy.py | 4 +- src/compas/geometry/plane.py | 8 +-- src/compas/geometry/pointcloud.py | 11 ++-- src/compas/geometry/polygon.py | 20 +++---- src/compas/geometry/polyhedron.py | 20 ++++--- src/compas/geometry/projection.py | 6 +- src/compas/geometry/quadmesh_planarize.py | 2 +- .../geometry/quadmesh_planarize_none.py | 13 ++--- src/compas/geometry/quaternion.py | 20 +++---- src/compas/geometry/reflection.py | 10 ++-- src/compas/geometry/rotation.py | 18 +++--- src/compas/geometry/scale.py | 8 +-- src/compas/geometry/shapes/box.py | 22 ++----- src/compas/geometry/shapes/capsule.py | 6 +- src/compas/geometry/shapes/cone.py | 8 +-- src/compas/geometry/shapes/cylinder.py | 4 +- src/compas/geometry/shapes/shape.py | 6 +- src/compas/geometry/shapes/sphere.py | 5 +- src/compas/geometry/shapes/torus.py | 8 +-- src/compas/geometry/shear.py | 8 +-- src/compas/geometry/surfaces/conical.py | 9 ++- src/compas/geometry/surfaces/cylindrical.py | 11 ++-- src/compas/geometry/surfaces/nurbs.py | 6 +- src/compas/geometry/surfaces/planar.py | 5 +- src/compas/geometry/surfaces/spherical.py | 11 ++-- src/compas/geometry/surfaces/surface.py | 8 +-- src/compas/geometry/surfaces/toroidal.py | 15 +++-- src/compas/geometry/transformation.py | 12 ++-- src/compas/geometry/translation.py | 4 +- src/compas/geometry/triangulation_earclip.py | 8 +-- src/compas/geometry/trimesh_curvature.py | 5 +- src/compas/geometry/trimesh_descent_numpy.py | 1 + src/compas/geometry/trimesh_geodistance.py | 2 +- src/compas/geometry/trimesh_gradient_numpy.py | 2 +- src/compas/geometry/trimesh_isolines.py | 2 +- src/compas/geometry/trimesh_matrices.py | 2 +- src/compas/geometry/trimesh_matrices_numpy.py | 6 +- .../geometry/trimesh_parametrisation.py | 2 +- .../geometry/trimesh_pull_points_numpy.py | 4 +- src/compas/geometry/trimesh_remeshing.py | 2 +- .../geometry/trimesh_samplepoints_numpy.py | 12 ++-- src/compas/geometry/trimesh_slicing.py | 2 +- src/compas/itertools.py | 6 +- src/compas/linalg.py | 6 +- src/compas/matrices.py | 1 - src/compas/plugins.py | 22 ++----- src/compas/rpc/__init__.py | 3 +- src/compas/rpc/dispatcher.py | 5 +- src/compas/rpc/errors.py | 2 +- src/compas/rpc/proxy.py | 8 +-- src/compas/rpc/server.py | 2 +- src/compas/rpc/services/default.py | 2 +- src/compas/scene/assemblyobject.py | 2 +- src/compas/scene/context.py | 8 +-- src/compas/scene/exceptions.py | 2 +- src/compas/scene/geometryobject.py | 4 +- src/compas/scene/graphobject.py | 5 +- src/compas/scene/meshobject.py | 5 +- src/compas/scene/scene.py | 10 +--- src/compas/scene/sceneobject.py | 24 ++++---- src/compas/scene/volmeshobject.py | 5 +- src/compas/tolerance.py | 9 +-- src/compas/topology/combinatorics.py | 3 +- src/compas/topology/connectivity.py | 2 +- src/compas/topology/orientation.py | 7 ++- src/compas/topology/traversal.py | 3 +- src/compas/utilities/datetime.py | 4 +- src/compas/utilities/decorators.py | 3 +- src/compas/utilities/maps.py | 2 +- src/compas/utilities/remote.py | 2 +- src/compas_blender/collections.py | 4 +- src/compas_blender/conversions/curves.py | 3 +- src/compas_blender/conversions/geometry.py | 9 +-- src/compas_blender/conversions/meshes.py | 4 +- src/compas_blender/conversions/surfaces.py | 2 +- .../conversions/transformations.py | 2 +- src/compas_blender/geometry/booleans.py | 3 +- src/compas_blender/install.py | 8 +-- src/compas_blender/objects.py | 6 +- src/compas_blender/print_python_path.py | 1 - src/compas_blender/scene/boxobject.py | 5 +- src/compas_blender/scene/capsuleobject.py | 5 +- src/compas_blender/scene/circleobject.py | 4 +- src/compas_blender/scene/coneobject.py | 5 +- src/compas_blender/scene/curveobject.py | 4 +- src/compas_blender/scene/cylinderobject.py | 5 +- src/compas_blender/scene/frameobject.py | 7 +-- src/compas_blender/scene/graphobject.py | 11 ++-- src/compas_blender/scene/lineobject.py | 5 +- src/compas_blender/scene/meshobject.py | 13 ++--- src/compas_blender/scene/planeobject.py | 11 ++-- src/compas_blender/scene/pointcloudobject.py | 7 +-- src/compas_blender/scene/pointobject.py | 4 +- src/compas_blender/scene/polygonobject.py | 5 +- src/compas_blender/scene/polyhedronobject.py | 12 ++-- src/compas_blender/scene/polylineobject.py | 7 +-- src/compas_blender/scene/sceneobject.py | 15 ++--- src/compas_blender/scene/sphereobject.py | 9 ++- src/compas_blender/scene/surfaceobject.py | 7 +-- src/compas_blender/scene/torusobject.py | 9 ++- src/compas_blender/scene/vectorobject.py | 9 ++- src/compas_blender/scene/volmeshobject.py | 26 ++++----- src/compas_blender/utilities/drawing.py | 8 +-- src/compas_ghpython/__init__.py | 4 +- src/compas_ghpython/scene/boxobject.py | 3 +- src/compas_ghpython/scene/brepobject.py | 1 + src/compas_ghpython/scene/capsuleobject.py | 3 +- src/compas_ghpython/scene/circleobject.py | 3 +- src/compas_ghpython/scene/coneobject.py | 3 +- src/compas_ghpython/scene/curveobject.py | 3 +- src/compas_ghpython/scene/cylinderobject.py | 3 +- src/compas_ghpython/scene/ellipseobject.py | 3 +- src/compas_ghpython/scene/frameobject.py | 3 +- src/compas_ghpython/scene/graphobject.py | 3 +- src/compas_ghpython/scene/lineobject.py | 3 +- src/compas_ghpython/scene/meshobject.py | 6 +- src/compas_ghpython/scene/planeobject.py | 9 ++- src/compas_ghpython/scene/pointobject.py | 3 +- src/compas_ghpython/scene/polygonobject.py | 6 +- src/compas_ghpython/scene/polyhedronobject.py | 6 +- src/compas_ghpython/scene/polylineobject.py | 3 +- src/compas_ghpython/scene/sceneobject.py | 2 +- src/compas_ghpython/scene/sphereobject.py | 3 +- src/compas_ghpython/scene/surfaceobject.py | 3 +- src/compas_ghpython/scene/torusobject.py | 3 +- src/compas_ghpython/scene/vectorobject.py | 1 + src/compas_ghpython/scene/volmeshobject.py | 3 +- src/compas_ghpython/sets.py | 2 +- src/compas_ghpython/utilities/drawing.py | 2 +- src/compas_rhino/conduits/base.py | 2 +- src/compas_rhino/conduits/faces.py | 6 +- src/compas_rhino/conduits/labels.py | 12 ++-- src/compas_rhino/conduits/lines.py | 6 +- src/compas_rhino/conduits/points.py | 8 +-- src/compas_rhino/conversions/breps.py | 2 - src/compas_rhino/conversions/curves.py | 19 +++--- src/compas_rhino/conversions/exceptions.py | 2 +- src/compas_rhino/conversions/extrusions.py | 5 +- src/compas_rhino/conversions/geometry.py | 9 ++- src/compas_rhino/conversions/meshes.py | 1 + src/compas_rhino/conversions/shapes.py | 27 ++++----- src/compas_rhino/conversions/surfaces.py | 13 ++--- src/compas_rhino/geometry/brep/brep.py | 19 +++--- src/compas_rhino/geometry/brep/edge.py | 17 +++--- src/compas_rhino/geometry/brep/face.py | 24 +++----- src/compas_rhino/geometry/brep/loop.py | 6 +- src/compas_rhino/geometry/brep/vertex.py | 2 +- src/compas_rhino/geometry/curves/curve.py | 13 ++--- src/compas_rhino/geometry/curves/nurbs.py | 9 ++- src/compas_rhino/geometry/surfaces/nurbs.py | 15 ++--- src/compas_rhino/geometry/surfaces/surface.py | 22 +++---- .../geometry/trimesh_curvature.py | 16 +++-- src/compas_rhino/install.py | 7 +-- src/compas_rhino/install_plugin.py | 4 +- src/compas_rhino/install_with_pip.py | 1 + src/compas_rhino/layers.py | 2 +- src/compas_rhino/objects.py | 14 ++--- src/compas_rhino/print_python_path.py | 1 - src/compas_rhino/scene/boxobject.py | 3 +- src/compas_rhino/scene/brepobject.py | 5 +- src/compas_rhino/scene/capsuleobject.py | 3 +- src/compas_rhino/scene/circleobject.py | 3 +- src/compas_rhino/scene/coneobject.py | 3 +- src/compas_rhino/scene/curveobject.py | 3 +- src/compas_rhino/scene/cylinderobject.py | 3 +- src/compas_rhino/scene/ellipseobject.py | 4 +- src/compas_rhino/scene/frameobject.py | 5 +- src/compas_rhino/scene/graphobject.py | 9 +-- src/compas_rhino/scene/helpers.py | 2 +- src/compas_rhino/scene/lineobject.py | 3 +- src/compas_rhino/scene/meshobject.py | 23 ++++---- src/compas_rhino/scene/planeobject.py | 7 ++- src/compas_rhino/scene/pointobject.py | 3 +- src/compas_rhino/scene/polygonobject.py | 5 +- src/compas_rhino/scene/polyhedronobject.py | 5 +- src/compas_rhino/scene/polylineobject.py | 3 +- src/compas_rhino/scene/sceneobject.py | 5 +- src/compas_rhino/scene/sphereobject.py | 3 +- src/compas_rhino/scene/surfaceobject.py | 3 +- src/compas_rhino/scene/torusobject.py | 3 +- src/compas_rhino/scene/vectorobject.py | 3 +- src/compas_rhino/scene/volmeshobject.py | 13 ++--- src/compas_rhino/ui.py | 3 +- src/compas_rhino/uninstall_plugin.py | 3 +- src/compas_rhino/utilities/constructors.py | 6 +- src/compas_rhino/utilities/drawing.py | 21 +++---- tests/compas/datastructures/test_mesh_subd.py | 16 ++--- tests/compas/donttest_api_stability.py | 8 +-- tests/compas/files/test_xml.py | 4 +- tests/compas/geometry/test_frame.py | 8 +-- tests/compas/test_iotools.py | 2 +- 285 files changed, 972 insertions(+), 1221 deletions(-) diff --git a/src/compas/_iotools.py b/src/compas/_iotools.py index 98e278f8e46..e4bcc1d602d 100644 --- a/src/compas/_iotools.py +++ b/src/compas/_iotools.py @@ -1,7 +1,7 @@ """For the time being, these functions are only for internal use.""" -from contextlib import contextmanager import io +from contextlib import contextmanager try: from urllib.request import urlopen diff --git a/src/compas/_os.py b/src/compas/_os.py index a904aa8deb9..003df5fd975 100644 --- a/src/compas/_os.py +++ b/src/compas/_os.py @@ -677,7 +677,8 @@ def _get_win_folder_from_registry(csidl_name): def _get_win_folder_with_pywin32(csidl_name): - from win32com.shell import shellcon, shell + from win32com.shell import shell + from win32com.shell import shellcon dir = shell.SHGetFolderPath(0, getattr(shellcon, csidl_name), 0, 0) # Try to make this a unicode path because SHGetFolderPath does diff --git a/src/compas/colors/colordict.py b/src/compas/colors/colordict.py index c86d427b4b0..5a86b8fa46a 100644 --- a/src/compas/colors/colordict.py +++ b/src/compas/colors/colordict.py @@ -1,8 +1,9 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.data import Data + from .color import Color diff --git a/src/compas/colors/colormap.py b/src/compas/colors/colormap.py index e61cb936ca9..fcdb9d3504d 100644 --- a/src/compas/colors/colormap.py +++ b/src/compas/colors/colormap.py @@ -7,8 +7,8 @@ from compas.itertools import linspace from .color import Color -from .mpl_colormap import _magma_data from .mpl_colormap import _inferno_data +from .mpl_colormap import _magma_data from .mpl_colormap import _plasma_data from .mpl_colormap import _viridis_data diff --git a/src/compas/data/coercion.py b/src/compas/data/coercion.py index f5e9680e0f8..25bba723d9a 100644 --- a/src/compas/data/coercion.py +++ b/src/compas/data/coercion.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from .validators import is_item_iterable diff --git a/src/compas/data/data.py b/src/compas/data/data.py index 7d22a29d151..d258287718e 100644 --- a/src/compas/data/data.py +++ b/src/compas/data/data.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function try: from typing import TypeVar # noqa: F401 @@ -10,13 +10,12 @@ pass import hashlib -from uuid import uuid4 -from uuid import UUID from copy import deepcopy +from uuid import UUID +from uuid import uuid4 import compas - # ============================================================================== # If you ever feel tempted to use ABCMeta in your code: don't, just DON'T. # Assigning __metaclass__ = ABCMeta to a class causes a severe memory leak/performance diff --git a/src/compas/data/encoders.py b/src/compas/data/encoders.py index 6e37f157c7e..04c93a8913b 100644 --- a/src/compas/data/encoders.py +++ b/src/compas/data/encoders.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function try: from typing import Type # noqa: F401 diff --git a/src/compas/data/schema.py b/src/compas/data/schema.py index a7a05965d87..dd051be09a4 100644 --- a/src/compas/data/schema.py +++ b/src/compas/data/schema.py @@ -2,8 +2,8 @@ from __future__ import division from __future__ import print_function -import os import json +import os def dataclass_dataschema(cls): # type: (...) -> dict @@ -119,10 +119,11 @@ def compas_dataclasses(): # type: (...) -> list """ from collections import deque - from compas.data import Data + import compas.colors # noqa: F401 import compas.datastructures # noqa: F401 import compas.geometry # noqa: F401 + from compas.data import Data tovisit = deque([Data]) dataclasses = [] diff --git a/src/compas/data/validators.py b/src/compas/data/validators.py index f7d37d5b9ea..716786acf30 100644 --- a/src/compas/data/validators.py +++ b/src/compas/data/validators.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function try: basestring # type: ignore diff --git a/src/compas/datastructures/assembly/assembly.py b/src/compas/datastructures/assembly/assembly.py index 0efed64080c..66a825cf5c9 100644 --- a/src/compas/datastructures/assembly/assembly.py +++ b/src/compas/datastructures/assembly/assembly.py @@ -1,9 +1,10 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.datastructures import Datastructure from compas.datastructures import Graph + from .exceptions import AssemblyError diff --git a/src/compas/datastructures/assembly/part.py b/src/compas/datastructures/assembly/part.py index 32d41736894..d16cf250dfb 100644 --- a/src/compas/datastructures/assembly/part.py +++ b/src/compas/datastructures/assembly/part.py @@ -1,12 +1,12 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function +from compas.data import Data +from compas.datastructures import Datastructure +from compas.geometry import Brep from compas.geometry import Frame from compas.geometry import Polyhedron -from compas.geometry import Brep -from compas.datastructures import Datastructure -from compas.data import Data class Feature(Data): diff --git a/src/compas/datastructures/cell_network/cell_network.py b/src/compas/datastructures/cell_network/cell_network.py index 4c5b7f068b8..e248440b576 100644 --- a/src/compas/datastructures/cell_network/cell_network.py +++ b/src/compas/datastructures/cell_network/cell_network.py @@ -4,21 +4,22 @@ from random import sample -from compas.datastructures import Mesh from compas.datastructures import Graph -from compas.datastructures.datastructure import Datastructure -from compas.datastructures.attributes import VertexAttributeView +from compas.datastructures import Mesh +from compas.datastructures.attributes import CellAttributeView from compas.datastructures.attributes import EdgeAttributeView from compas.datastructures.attributes import FaceAttributeView -from compas.datastructures.attributes import CellAttributeView - +from compas.datastructures.attributes import VertexAttributeView +from compas.datastructures.datastructure import Datastructure from compas.files import OBJ - from compas.geometry import Line from compas.geometry import Point from compas.geometry import Polygon from compas.geometry import Polyhedron from compas.geometry import Vector +from compas.geometry import add_vectors +from compas.geometry import bestfit_plane +from compas.geometry import bounding_box from compas.geometry import centroid_points from compas.geometry import centroid_polygon from compas.geometry import centroid_polyhedron @@ -26,16 +27,11 @@ from compas.geometry import length_vector from compas.geometry import normal_polygon from compas.geometry import normalize_vector -from compas.geometry import volume_polyhedron -from compas.geometry import add_vectors -from compas.geometry import bestfit_plane from compas.geometry import project_point_plane from compas.geometry import scale_vector from compas.geometry import subtract_vectors -from compas.geometry import bounding_box - +from compas.geometry import volume_polyhedron from compas.itertools import pairwise - from compas.tolerance import TOL @@ -227,15 +223,7 @@ def __from_data__(cls, data): return cell_network - def __init__( - self, - default_vertex_attributes=None, - default_edge_attributes=None, - default_face_attributes=None, - default_cell_attributes=None, - name=None, - **kwargs - ): + def __init__(self, default_vertex_attributes=None, default_edge_attributes=None, default_face_attributes=None, default_cell_attributes=None, name=None, **kwargs): super(CellNetwork, self).__init__(kwargs, name=name) self._max_vertex = -1 self._max_face = -1 diff --git a/src/compas/datastructures/graph/duality.py b/src/compas/datastructures/graph/duality.py index f81e359e2dc..89482267878 100644 --- a/src/compas/datastructures/graph/duality.py +++ b/src/compas/datastructures/graph/duality.py @@ -1,13 +1,12 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from math import pi -from compas.itertools import pairwise from compas.geometry import angle_vectors from compas.geometry import is_ccw_xy - +from compas.itertools import pairwise PI2 = 2.0 * pi diff --git a/src/compas/datastructures/graph/graph.py b/src/compas/datastructures/graph/graph.py index bdae03b4f6c..469ff508e56 100644 --- a/src/compas/datastructures/graph/graph.py +++ b/src/compas/datastructures/graph/graph.py @@ -1,10 +1,10 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from random import sample from ast import literal_eval from itertools import combinations +from random import sample import compas @@ -13,42 +13,40 @@ else: from collections.abc import Mapping -from compas.tolerance import TOL +from compas.datastructures.attributes import EdgeAttributeView +from compas.datastructures.attributes import NodeAttributeView +from compas.datastructures.datastructure import Datastructure from compas.files import OBJ +from compas.geometry import Box +from compas.geometry import Line from compas.geometry import Point from compas.geometry import Vector -from compas.geometry import Line -from compas.geometry import Box +from compas.geometry import add_vectors +from compas.geometry import bounding_box from compas.geometry import centroid_points -from compas.geometry import subtract_vectors from compas.geometry import distance_point_point from compas.geometry import midpoint_line from compas.geometry import normalize_vector -from compas.geometry import add_vectors +from compas.geometry import oriented_bounding_box from compas.geometry import scale_vector +from compas.geometry import subtract_vectors from compas.geometry import transform_points -from compas.geometry import bounding_box -from compas.geometry import oriented_bounding_box +from compas.tolerance import TOL from compas.topology import astar_shortest_path from compas.topology import breadth_first_traverse from compas.topology import connected_components -from compas.datastructures.datastructure import Datastructure -from compas.datastructures.attributes import NodeAttributeView -from compas.datastructures.attributes import EdgeAttributeView - -from .operations.split import graph_split_edge +from .duality import graph_find_cycles from .operations.join import graph_join_edges - +from .operations.split import graph_split_edge +from .planarity import graph_count_crossings +from .planarity import graph_embed_in_plane +from .planarity import graph_find_crossings from .planarity import graph_is_crossed from .planarity import graph_is_planar from .planarity import graph_is_planar_embedding from .planarity import graph_is_xy -from .planarity import graph_count_crossings -from .planarity import graph_find_crossings -from .planarity import graph_embed_in_plane from .smoothing import graph_smooth_centroid -from .duality import graph_find_cycles class Graph(Datastructure): diff --git a/src/compas/datastructures/graph/operations/join.py b/src/compas/datastructures/graph/operations/join.py index 191eacbe4c1..3c9d4517218 100644 --- a/src/compas/datastructures/graph/operations/join.py +++ b/src/compas/datastructures/graph/operations/join.py @@ -1,9 +1,9 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.tolerance import TOL from compas.itertools import pairwise +from compas.tolerance import TOL def graph_join_edges(graph, key): @@ -104,15 +104,9 @@ def graph_polylines(graph, splits=None): # get adjacent edges until the polyline is closed... while polyline[0] != polyline[-1]: # ... or until both end are non-two-valent vertices - if ( - len(graph.neighbors(polyline[-1])) != 2 - or TOL.geometric_key(graph.node_coordinates(polyline[-1])) in stop_geom_keys - ): + if len(graph.neighbors(polyline[-1])) != 2 or TOL.geometric_key(graph.node_coordinates(polyline[-1])) in stop_geom_keys: polyline = list(reversed(polyline)) - if ( - len(graph.neighbors(polyline[-1])) != 2 - or TOL.geometric_key(graph.node_coordinates(polyline[-1])) in stop_geom_keys - ): + if len(graph.neighbors(polyline[-1])) != 2 or TOL.geometric_key(graph.node_coordinates(polyline[-1])) in stop_geom_keys: break # add next edge diff --git a/src/compas/datastructures/graph/operations/split.py b/src/compas/datastructures/graph/operations/split.py index 6e1c64e858d..1ba03018f2c 100644 --- a/src/compas/datastructures/graph/operations/split.py +++ b/src/compas/datastructures/graph/operations/split.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function def graph_split_edge(graph, edge, t=0.5): diff --git a/src/compas/datastructures/graph/planarity.py b/src/compas/datastructures/graph/planarity.py index 35e0ae521ed..1e3802b1fc4 100644 --- a/src/compas/datastructures/graph/planarity.py +++ b/src/compas/datastructures/graph/planarity.py @@ -1,17 +1,15 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function +from itertools import product from math import cos -from math import sin from math import pi - -from itertools import product +from math import sin from compas.geometry import angle_vectors_xy from compas.geometry import is_ccw_xy from compas.geometry import subtract_vectors_xy - from compas.geometry._core.predicates_2 import is_intersection_segment_segment_xy diff --git a/src/compas/datastructures/graph/smoothing.py b/src/compas/datastructures/graph/smoothing.py index c91349bfb85..457048eb48a 100644 --- a/src/compas/datastructures/graph/smoothing.py +++ b/src/compas/datastructures/graph/smoothing.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.geometry import centroid_points diff --git a/src/compas/datastructures/mesh/conway.py b/src/compas/datastructures/mesh/conway.py index 8b87ddaaad6..09b56a0f853 100644 --- a/src/compas/datastructures/mesh/conway.py +++ b/src/compas/datastructures/mesh/conway.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function def mesh_conway_dual(mesh): @@ -185,11 +185,7 @@ def mesh_conway_kis(mesh): v = mesh.number_of_vertices() vkey_index = {vkey: i for i, vkey in enumerate(mesh.vertices())} fkey_index = {fkey: i + v for i, fkey in enumerate(mesh.faces())} - faces = [ - [vkey_index[u], vkey_index[v], fkey_index[mesh.halfedge[u][v]]] - for fkey in mesh.faces() - for u, v in mesh.face_halfedges(fkey) - ] + faces = [[vkey_index[u], vkey_index[v], fkey_index[mesh.halfedge[u][v]]] for fkey in mesh.faces() for u, v in mesh.face_halfedges(fkey)] return cls.from_vertices_and_faces(vertices, faces) @@ -427,9 +423,7 @@ def mesh_conway_gyro(mesh): F = mesh.number_of_faces() vkey_index = {vkey: i for i, vkey in enumerate(mesh.vertices())} fkey_index = {fkey: i + V for i, fkey in enumerate(mesh.faces())} - ekey_index = { - halfedge: i + V + F for i, halfedge in enumerate([(u, v) for u in mesh.vertices() for v in mesh.halfedge[u]]) - } + ekey_index = {halfedge: i + V + F for i, halfedge in enumerate([(u, v) for u in mesh.vertices() for v in mesh.halfedge[u]])} faces = [] for fkey in mesh.faces(): for u, v in mesh.face_halfedges(fkey): diff --git a/src/compas/datastructures/mesh/duality.py b/src/compas/datastructures/mesh/duality.py index c06bd172095..9c133a90cd2 100644 --- a/src/compas/datastructures/mesh/duality.py +++ b/src/compas/datastructures/mesh/duality.py @@ -1,10 +1,10 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from math import pi -from compas.utilities import flatten +from compas.utilities import flatten PI2 = 2.0 * pi diff --git a/src/compas/datastructures/mesh/mesh.py b/src/compas/datastructures/mesh/mesh.py index 7be50338ef7..ffae5979621 100644 --- a/src/compas/datastructures/mesh/mesh.py +++ b/src/compas/datastructures/mesh/mesh.py @@ -2,8 +2,8 @@ from __future__ import division from __future__ import print_function -from math import pi from itertools import product +from math import pi from random import sample import compas @@ -13,57 +13,53 @@ else: from collections.abc import Mapping -from compas.tolerance import TOL - +from compas.datastructures.attributes import EdgeAttributeView +from compas.datastructures.attributes import FaceAttributeView +from compas.datastructures.attributes import VertexAttributeView +from compas.datastructures.datastructure import Datastructure from compas.files import OBJ from compas.files import OFF from compas.files import PLY from compas.files import STL - -from compas.geometry import Point -from compas.geometry import Vector +from compas.geometry import Box +from compas.geometry import Circle +from compas.geometry import Frame from compas.geometry import Line from compas.geometry import Plane +from compas.geometry import Point from compas.geometry import Polygon -from compas.geometry import Circle -from compas.geometry import Frame from compas.geometry import Polyhedron -from compas.geometry import Box +from compas.geometry import Vector +from compas.geometry import add_vectors from compas.geometry import angle_points from compas.geometry import area_polygon from compas.geometry import bestfit_plane +from compas.geometry import bounding_box from compas.geometry import centroid_points from compas.geometry import centroid_polygon from compas.geometry import cross_vectors +from compas.geometry import distance_line_line from compas.geometry import distance_point_plane from compas.geometry import distance_point_point -from compas.geometry import distance_line_line from compas.geometry import length_vector +from compas.geometry import midpoint_line from compas.geometry import normal_polygon from compas.geometry import normalize_vector +from compas.geometry import oriented_bounding_box from compas.geometry import scale_vector -from compas.geometry import add_vectors from compas.geometry import subtract_vectors from compas.geometry import sum_vectors -from compas.geometry import midpoint_line -from compas.geometry import vector_average -from compas.geometry import bounding_box -from compas.geometry import oriented_bounding_box from compas.geometry import transform_points - +from compas.geometry import vector_average from compas.itertools import linspace from compas.itertools import pairwise -from compas.utilities import window - +from compas.tolerance import TOL from compas.topology import breadth_first_traverse from compas.topology import connected_components from compas.topology import unify_cycles +from compas.utilities import window -from compas.datastructures.datastructure import Datastructure -from compas.datastructures.attributes import VertexAttributeView -from compas.datastructures.attributes import EdgeAttributeView -from compas.datastructures.attributes import FaceAttributeView - +from .duality import mesh_dual from .operations.collapse import mesh_collapse_edge from .operations.merge import mesh_merge_faces from .operations.split import mesh_split_edge @@ -71,13 +67,10 @@ from .operations.split import mesh_split_strip from .operations.weld import mesh_unweld_edges from .operations.weld import mesh_unweld_vertices - -from .subdivision import mesh_subdivide -from .duality import mesh_dual from .slice import mesh_slice_plane - -from .smoothing import mesh_smooth_centroid from .smoothing import mesh_smooth_area +from .smoothing import mesh_smooth_centroid +from .subdivision import mesh_subdivide class Mesh(Datastructure): @@ -235,14 +228,7 @@ def __from_data__(cls, data): return mesh - def __init__( - self, - default_vertex_attributes=None, - default_edge_attributes=None, - default_face_attributes=None, - name=None, - **kwargs - ): + def __init__(self, default_vertex_attributes=None, default_edge_attributes=None, default_face_attributes=None, name=None, **kwargs): super(Mesh, self).__init__(kwargs, name=name) self._max_vertex = -1 self._max_face = -1 diff --git a/src/compas/datastructures/mesh/operations/collapse.py b/src/compas/datastructures/mesh/operations/collapse.py index d80a19f0913..8f5c688cb81 100644 --- a/src/compas/datastructures/mesh/operations/collapse.py +++ b/src/compas/datastructures/mesh/operations/collapse.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function def is_collapse_legal(mesh, edge, allow_boundary=False): diff --git a/src/compas/datastructures/mesh/operations/insert.py b/src/compas/datastructures/mesh/operations/insert.py index f1a49ca00a2..0d68bf9dce0 100644 --- a/src/compas/datastructures/mesh/operations/insert.py +++ b/src/compas/datastructures/mesh/operations/insert.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function def mesh_add_vertex_to_face_edge(mesh, key, fkey, v): diff --git a/src/compas/datastructures/mesh/operations/merge.py b/src/compas/datastructures/mesh/operations/merge.py index 9d8dbd636a4..dc873c7d2bd 100644 --- a/src/compas/datastructures/mesh/operations/merge.py +++ b/src/compas/datastructures/mesh/operations/merge.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function def mesh_merge_faces(mesh, faces): diff --git a/src/compas/datastructures/mesh/operations/split.py b/src/compas/datastructures/mesh/operations/split.py index f947d1575ea..08e5e376b05 100644 --- a/src/compas/datastructures/mesh/operations/split.py +++ b/src/compas/datastructures/mesh/operations/split.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.itertools import pairwise diff --git a/src/compas/datastructures/mesh/operations/substitute.py b/src/compas/datastructures/mesh/operations/substitute.py index 5c351f9fc3b..571618645f0 100644 --- a/src/compas/datastructures/mesh/operations/substitute.py +++ b/src/compas/datastructures/mesh/operations/substitute.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function def mesh_substitute_vertex_in_faces(mesh, old_vkey, new_vkey, fkeys=None): diff --git a/src/compas/datastructures/mesh/operations/swap.py b/src/compas/datastructures/mesh/operations/swap.py index adeac70e505..f36ef35ba5f 100644 --- a/src/compas/datastructures/mesh/operations/swap.py +++ b/src/compas/datastructures/mesh/operations/swap.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function def trimesh_swap_edge(mesh, edge, allow_boundary=True): diff --git a/src/compas/datastructures/mesh/operations/weld.py b/src/compas/datastructures/mesh/operations/weld.py index 54646726124..015a3c1cfab 100644 --- a/src/compas/datastructures/mesh/operations/weld.py +++ b/src/compas/datastructures/mesh/operations/weld.py @@ -1,11 +1,10 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division - -from compas.topology import vertex_adjacency_from_edges -from compas.topology import connected_components +from __future__ import print_function from compas.itertools import pairwise +from compas.topology import connected_components +from compas.topology import vertex_adjacency_from_edges from .substitute import mesh_substitute_vertex_in_faces diff --git a/src/compas/datastructures/mesh/remesh.py b/src/compas/datastructures/mesh/remesh.py index c3992978b70..e47bf46b269 100644 --- a/src/compas/datastructures/mesh/remesh.py +++ b/src/compas/datastructures/mesh/remesh.py @@ -1,11 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from .smoothing import mesh_smooth_area from .operations.collapse import trimesh_collapse_edge -from .operations.swap import trimesh_swap_edge from .operations.split import trimesh_split_edge +from .operations.swap import trimesh_swap_edge +from .smoothing import mesh_smooth_area def trimesh_remesh( diff --git a/src/compas/datastructures/mesh/slice.py b/src/compas/datastructures/mesh/slice.py index 0a98705d584..1059c5fdaa4 100644 --- a/src/compas/datastructures/mesh/slice.py +++ b/src/compas/datastructures/mesh/slice.py @@ -1,7 +1,7 @@ +from compas.geometry import dot_vectors from compas.geometry import intersection_segment_plane from compas.geometry import length_vector from compas.geometry import subtract_vectors -from compas.geometry import dot_vectors def mesh_slice_plane(mesh, plane): diff --git a/src/compas/datastructures/mesh/smoothing.py b/src/compas/datastructures/mesh/smoothing.py index 2a6925c05e7..ffe1f3151cb 100644 --- a/src/compas/datastructures/mesh/smoothing.py +++ b/src/compas/datastructures/mesh/smoothing.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.geometry import centroid_points from compas.geometry import centroid_polygon diff --git a/src/compas/datastructures/mesh/subdivision.py b/src/compas/datastructures/mesh/subdivision.py index 27fda25c806..67dd54399b5 100644 --- a/src/compas/datastructures/mesh/subdivision.py +++ b/src/compas/datastructures/mesh/subdivision.py @@ -1,16 +1,15 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function +from copy import deepcopy from math import cos from math import pi -from copy import deepcopy from compas.geometry import centroid_points from compas.geometry import offset_polygon - -from compas.utilities import iterable_like from compas.itertools import pairwise +from compas.utilities import iterable_like def subd_factory(cls): @@ -397,9 +396,7 @@ def mesh_subdivide_catmullclark(mesh, k=1, fixed=None): if C < 2: fnbrs = [mesh.face_centroid(fkey) for fkey in mesh.vertex_faces(key) if fkey is not None] - enbrs = [ - key_xyz[nbr] for nbr in subd.halfedge[key] - ] # this should be the location of the original neighbour + enbrs = [key_xyz[nbr] for nbr in subd.halfedge[key]] # this should be the location of the original neighbour n = len(enbrs) v = n - 3.0 F = centroid_points(fnbrs) @@ -673,9 +670,7 @@ def trimesh_subdivide_loop(mesh, k=1, fixed=None): for _ in range(k): key_xyz = {key: subd.vertex_coordinates(key) for key in subd.vertices()} fkey_vertices = {fkey: subd.face_vertices(fkey)[:] for fkey in subd.faces()} - uv_w = { - (u, v): subd.face_vertex_ancestor(fkey, u) for fkey in subd.faces() for u, v in subd.face_halfedges(fkey) - } + uv_w = {(u, v): subd.face_vertex_ancestor(fkey, u) for fkey in subd.faces() for u, v in subd.face_halfedges(fkey)} boundary = set(subd.vertices_on_boundary()) for key in subd.vertices(): diff --git a/src/compas/datastructures/tree/tree.py b/src/compas/datastructures/tree/tree.py index aaff66dcc23..32ecc1c2703 100644 --- a/src/compas/datastructures/tree/tree.py +++ b/src/compas/datastructures/tree/tree.py @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.datastructures import Datastructure from compas.data import Data +from compas.datastructures import Datastructure class TreeNode(Data): diff --git a/src/compas/datastructures/volmesh/volmesh.py b/src/compas/datastructures/volmesh/volmesh.py index 15e4b8c5405..548d7fa010f 100644 --- a/src/compas/datastructures/volmesh/volmesh.py +++ b/src/compas/datastructures/volmesh/volmesh.py @@ -5,23 +5,22 @@ from itertools import product from random import sample -from compas.datastructures.datastructure import Datastructure -from compas.datastructures.attributes import VertexAttributeView +from compas.datastructures import Mesh +from compas.datastructures.attributes import CellAttributeView from compas.datastructures.attributes import EdgeAttributeView from compas.datastructures.attributes import FaceAttributeView -from compas.datastructures.attributes import CellAttributeView -from compas.datastructures import Mesh - +from compas.datastructures.attributes import VertexAttributeView +from compas.datastructures.datastructure import Datastructure from compas.files import OBJ - -from compas.geometry import Point -from compas.geometry import Vector +from compas.geometry import Box from compas.geometry import Line +from compas.geometry import Point from compas.geometry import Polygon from compas.geometry import Polyhedron -from compas.geometry import Box +from compas.geometry import Vector from compas.geometry import add_vectors from compas.geometry import bestfit_plane +from compas.geometry import bounding_box from compas.geometry import centroid_points from compas.geometry import centroid_polygon from compas.geometry import centroid_polyhedron @@ -29,16 +28,13 @@ from compas.geometry import length_vector from compas.geometry import normal_polygon from compas.geometry import normalize_vector +from compas.geometry import oriented_bounding_box from compas.geometry import project_point_plane from compas.geometry import scale_vector from compas.geometry import subtract_vectors -from compas.geometry import bounding_box from compas.geometry import transform_points -from compas.geometry import oriented_bounding_box - from compas.itertools import linspace from compas.itertools import pairwise - from compas.tolerance import TOL @@ -202,15 +198,7 @@ def __from_data__(cls, data): return volmesh - def __init__( - self, - default_vertex_attributes=None, - default_edge_attributes=None, - default_face_attributes=None, - default_cell_attributes=None, - name=None, - **kwargs - ): + def __init__(self, default_vertex_attributes=None, default_edge_attributes=None, default_face_attributes=None, default_cell_attributes=None, name=None, **kwargs): super(VolMesh, self).__init__(kwargs, name=name) self._max_vertex = -1 self._max_face = -1 @@ -443,9 +431,7 @@ def to_vertices_and_cells(self): vertices = [self.vertex_coordinates(vertex) for vertex in self.vertices()] cells = [] for cell in self.cells(): - faces = [ - [vertex_index[vertex] for vertex in self.halfface_vertices(face)] for face in self.cell_faces(cell) - ] + faces = [[vertex_index[vertex] for vertex in self.halfface_vertices(face)] for face in self.cell_faces(cell)] cells.append(faces) return vertices, cells diff --git a/src/compas/files/_xml/xml_cli.py b/src/compas/files/_xml/xml_cli.py index c9094f58f6a..11c9898ae6f 100644 --- a/src/compas/files/_xml/xml_cli.py +++ b/src/compas/files/_xml/xml_cli.py @@ -41,11 +41,9 @@ from urllib import addinfourl import compas - from compas.files._xml.xml_shared import shared_xml_from_file from compas.files._xml.xml_shared import shared_xml_from_string - if compas.IPY: import clr diff --git a/src/compas/files/_xml/xml_pre_38.py b/src/compas/files/_xml/xml_pre_38.py index cd883fda75a..6771edef6b8 100644 --- a/src/compas/files/_xml/xml_pre_38.py +++ b/src/compas/files/_xml/xml_pre_38.py @@ -3,6 +3,7 @@ from __future__ import print_function import xml.etree.ElementTree as ET + from compas import _iotools from compas.files._xml.xml_cpython import prettify_string # noqa: F401 diff --git a/src/compas/files/gltf/constants.py b/src/compas/files/gltf/constants.py index 55d03c2590a..7ccefd4a3ad 100644 --- a/src/compas/files/gltf/constants.py +++ b/src/compas/files/gltf/constants.py @@ -1,6 +1,6 @@ -from __future__ import print_function -from __future__ import division from __future__ import absolute_import +from __future__ import division +from __future__ import print_function COMPONENT_TYPE_BYTE = 5120 COMPONENT_TYPE_UNSIGNED_BYTE = 5121 diff --git a/src/compas/files/gltf/data_classes.py b/src/compas/files/gltf/data_classes.py index 558fb6f644a..e7d4855a0db 100644 --- a/src/compas/files/gltf/data_classes.py +++ b/src/compas/files/gltf/data_classes.py @@ -1,6 +1,6 @@ -from __future__ import print_function -from __future__ import division from __future__ import absolute_import +from __future__ import division +from __future__ import print_function class AlphaMode(object): @@ -30,10 +30,7 @@ def add_extension(self, extension): def extensions_to_data(self, **kwargs): if not self.extensions: return None - return { - key: value.to_data(**kwargs) if hasattr(value, "to_data") else value - for key, value in self.extensions.items() - } + return {key: value.to_data(**kwargs) if hasattr(value, "to_data") else value for key, value in self.extensions.items()} @classmethod def extensions_from_data(cls, data): @@ -488,9 +485,7 @@ def __init__(self, channels, samplers_dict, name=None, extras=None, extensions=N self._sampler_index_by_key = None def to_data(self, samplers_list, node_index_by_key): - channels = [ - channel_data.to_data(node_index_by_key, self._sampler_index_by_key) for channel_data in self.channels - ] + channels = [channel_data.to_data(node_index_by_key, self._sampler_index_by_key) for channel_data in self.channels] animation_dict = { "channels": channels, "samplers": samplers_list, diff --git a/src/compas/files/gltf/extensions.py b/src/compas/files/gltf/extensions.py index 0064849f942..a53c25d6da1 100644 --- a/src/compas/files/gltf/extensions.py +++ b/src/compas/files/gltf/extensions.py @@ -1,6 +1,6 @@ from .data_classes import BaseGLTFDataClass -from .data_classes import TextureInfoData from .data_classes import NormalTextureInfoData +from .data_classes import TextureInfoData def create_if_data(cls, data, attr): diff --git a/src/compas/files/gltf/gltf.py b/src/compas/files/gltf/gltf.py index 4caec55fbec..5ca2c61331d 100644 --- a/src/compas/files/gltf/gltf.py +++ b/src/compas/files/gltf/gltf.py @@ -1,6 +1,6 @@ -from __future__ import print_function -from __future__ import division from __future__ import absolute_import +from __future__ import division +from __future__ import print_function from compas.files.gltf.gltf_exporter import GLTFExporter from compas.files.gltf.gltf_parser import GLTFParser diff --git a/src/compas/files/gltf/gltf_children.py b/src/compas/files/gltf/gltf_children.py index 90ffb63b2a9..32e3527a8a5 100644 --- a/src/compas/files/gltf/gltf_children.py +++ b/src/compas/files/gltf/gltf_children.py @@ -1,6 +1,6 @@ -from __future__ import print_function -from __future__ import division from __future__ import absolute_import +from __future__ import division +from __future__ import print_function class GLTFChildren(object): diff --git a/src/compas/files/gltf/gltf_content.py b/src/compas/files/gltf/gltf_content.py index 5da98eeab19..94b655b7acf 100644 --- a/src/compas/files/gltf/gltf_content.py +++ b/src/compas/files/gltf/gltf_content.py @@ -134,9 +134,7 @@ def visit_node(key): animation.channels.remove(channel) else: visited_sampler_keys.append(channel.sampler) - animation.samplers_dict = { - key: animation.samplers_dict[key] for key in animation.samplers_dict if key in visited_sampler_keys - } + animation.samplers_dict = {key: animation.samplers_dict[key] for key in animation.samplers_dict if key in visited_sampler_keys} if not animation.samplers_dict: del self.animations[animation_key] diff --git a/src/compas/files/gltf/gltf_exporter.py b/src/compas/files/gltf/gltf_exporter.py index 24b847f4256..ddf5c9f4997 100644 --- a/src/compas/files/gltf/gltf_exporter.py +++ b/src/compas/files/gltf/gltf_exporter.py @@ -1,13 +1,13 @@ -from __future__ import print_function -from __future__ import division from __future__ import absolute_import +from __future__ import division +from __future__ import print_function import array import base64 import json import os -import struct import shutil +import struct from compas.files.gltf.constants import COMPONENT_TYPE_ENUM from compas.files.gltf.constants import COMPONENT_TYPE_FLOAT @@ -21,7 +21,6 @@ from compas.files.gltf.constants import TYPE_VEC4 from compas.files.gltf.data_classes import BaseGLTFDataClass - # This fails on IronPython 2.7.8 (eg. Rhino 6 on Windows) # but works on IronPython 2.7.9 (Rhino 6 on Mac) try: @@ -179,9 +178,7 @@ def _add_extensions_recursively(self, item): self._add_extensions_recursively(getattr(item, a)) if item.extensions is not None: for ek, e in item.extensions.items(): - if ( - self._content.extensions_used is None - ): # attention: self._content.extension exists if we have general extensions. + if self._content.extensions_used is None: # attention: self._content.extension exists if we have general extensions. self._content.extensions_used = [] if ek not in self._content.extensions_used: self._content.extensions_used.append(ek) @@ -208,12 +205,7 @@ def _add_images(self): def _construct_image_data_uri(self, image_data): if image_data.data is None: return None - return ( - "data:" - + (image_data.mime_type if image_data.mime_type else "") - + ";base64," - + base64.b64encode(image_data.data).decode("ascii") - ) + return "data:" + (image_data.mime_type if image_data.mime_type else "") + ";base64," + base64.b64encode(image_data.data).decode("ascii") def _add_extensions(self): if not self._content.extensions_used: @@ -234,9 +226,7 @@ def _add_textures(self): return textures_list = [None] * len(self._content.textures) for key, texture_data in self._content.textures.items(): - textures_list[self._texture_index_by_key[key]] = texture_data.to_data( - self._sampler_index_by_key, self._image_index_by_key - ) + textures_list[self._texture_index_by_key[key]] = texture_data.to_data(self._sampler_index_by_key, self._image_index_by_key) self._add_extensions_recursively(texture_data) self._gltf_dict["textures"] = textures_list @@ -354,9 +344,7 @@ def _add_nodes(self): def _construct_primitives(self, mesh_data): primitives = [] for primitive_data in mesh_data.primitive_data_list: - indices_accessor = self._construct_accessor( - primitive_data.indices, COMPONENT_TYPE_UNSIGNED_SHORT, TYPE_SCALAR - ) + indices_accessor = self._construct_accessor(primitive_data.indices, COMPONENT_TYPE_UNSIGNED_SHORT, TYPE_SCALAR) attributes = {} for attr in primitive_data.attributes: @@ -366,9 +354,7 @@ def _construct_primitives(self, mesh_data): type_ = TYPE_VEC4 if len(primitive_data.attributes[attr][0]) == 2: type_ = TYPE_VEC2 - attributes[attr] = self._construct_accessor( - primitive_data.attributes[attr], component_type, type_, True - ) + attributes[attr] = self._construct_accessor(primitive_data.attributes[attr], component_type, type_, True) targets = [] for target in primitive_data.targets or []: diff --git a/src/compas/files/gltf/gltf_mesh.py b/src/compas/files/gltf/gltf_mesh.py index 1ec4619b0f2..9a1a2635d3b 100644 --- a/src/compas/files/gltf/gltf_mesh.py +++ b/src/compas/files/gltf/gltf_mesh.py @@ -1,14 +1,14 @@ -from __future__ import print_function -from __future__ import division from __future__ import absolute_import +from __future__ import division +from __future__ import print_function import itertools from compas.files.gltf.constants import VERTEX_COUNT_BY_MODE from compas.files.gltf.data_classes import PrimitiveData -from compas.files.gltf.helpers import get_weighted_mesh_vertices -from compas.files.gltf.helpers import get_unweighted_primitive_vertices from compas.files.gltf.helpers import get_mode +from compas.files.gltf.helpers import get_unweighted_primitive_vertices +from compas.files.gltf.helpers import get_weighted_mesh_vertices class GLTFMesh(object): diff --git a/src/compas/files/gltf/gltf_node.py b/src/compas/files/gltf/gltf_node.py index 13698f63990..78446abfbf7 100644 --- a/src/compas/files/gltf/gltf_node.py +++ b/src/compas/files/gltf/gltf_node.py @@ -1,6 +1,6 @@ -from __future__ import print_function -from __future__ import division from __future__ import absolute_import +from __future__ import division +from __future__ import print_function from math import fabs @@ -162,10 +162,7 @@ def rotation(self, value): if self._matrix: raise Exception("Cannot set rotation when matrix is set.") if not isinstance(value, list) or len(value) != 4 or fabs(sum([q**2 for q in value]) - 1) > 1e-03: - raise Exception( - "Invalid rotation. Rotations are expected to be given as " - "unit quaternions of the form [q1, q2, q3, q4]" - ) + raise Exception("Invalid rotation. Rotations are expected to be given as " "unit quaternions of the form [q1, q2, q3, q4]") self._rotation = value @property @@ -202,8 +199,7 @@ def matrix(self, value): raise Exception("Invalid matrix. A 4x4 matrix is expected.") if value[3] != [0, 0, 0, 1]: raise Exception( - "Invalid matrix. A matrix without shear or skew is expected. It must be of " - "the form TRS, where T is a translation, R is a rotation and S is a scaling." + "Invalid matrix. A matrix without shear or skew is expected. It must be of " "the form TRS, where T is a translation, R is a rotation and S is a scaling." ) self._matrix = value diff --git a/src/compas/files/gltf/gltf_parser.py b/src/compas/files/gltf/gltf_parser.py index e1b7fcde995..bb5881f148d 100644 --- a/src/compas/files/gltf/gltf_parser.py +++ b/src/compas/files/gltf/gltf_parser.py @@ -1,6 +1,6 @@ -from __future__ import print_function -from __future__ import division from __future__ import absolute_import +from __future__ import division +from __future__ import print_function from compas.files.gltf.data_classes import AnimationData from compas.files.gltf.data_classes import AnimationSamplerData @@ -42,26 +42,12 @@ def parse(self): self.content.extensions = self._get_extensions() self.content.images = {key: image_data for key, image_data in enumerate(self.reader.image_data)} - self.content.samplers = { - key: SamplerData.from_data(sampler) for key, sampler in enumerate(self.reader.json.get("samplers", [])) - } - self.content.textures = { - key: TextureData.from_data(texture) for key, texture in enumerate(self.reader.json.get("textures", [])) - } - self.content.materials = { - key: MaterialData.from_data(material) for key, material in enumerate(self.reader.json.get("materials", [])) - } - self.content.cameras = { - key: CameraData.from_data(camera) for key, camera in enumerate(self.reader.json.get("cameras", [])) - } - self.content.skins = { - key: SkinData.from_data(skin, self.reader.data[skin["inverseBindMatrices"]]) - for key, skin in enumerate(self.reader.json.get("skins", [])) - } - self.content.animations = { - key: self._get_animation_data(animation) - for key, animation in enumerate(self.reader.json.get("animations", [])) - } + self.content.samplers = {key: SamplerData.from_data(sampler) for key, sampler in enumerate(self.reader.json.get("samplers", []))} + self.content.textures = {key: TextureData.from_data(texture) for key, texture in enumerate(self.reader.json.get("textures", []))} + self.content.materials = {key: MaterialData.from_data(material) for key, material in enumerate(self.reader.json.get("materials", []))} + self.content.cameras = {key: CameraData.from_data(camera) for key, camera in enumerate(self.reader.json.get("cameras", []))} + self.content.skins = {key: SkinData.from_data(skin, self.reader.data[skin["inverseBindMatrices"]]) for key, skin in enumerate(self.reader.json.get("skins", []))} + self.content.animations = {key: self._get_animation_data(animation) for key, animation in enumerate(self.reader.json.get("animations", []))} for mesh in self.reader.json.get("meshes", []): self._add_gltf_mesh(mesh) diff --git a/src/compas/files/gltf/gltf_reader.py b/src/compas/files/gltf/gltf_reader.py index c05ecb833e5..6dd4a4a6ee2 100644 --- a/src/compas/files/gltf/gltf_reader.py +++ b/src/compas/files/gltf/gltf_reader.py @@ -1,6 +1,6 @@ -from __future__ import print_function -from __future__ import division from __future__ import absolute_import +from __future__ import division +from __future__ import print_function import base64 import json @@ -238,10 +238,7 @@ def _read_from_buffer_view(self, buffer_view_index, count, component_type, acces buffer_index = buffer_view["buffer"] buffer = self._get_buffer(buffer_index) - data = [ - unpack_from(buffer[i : i + byte_stride].tobytes()) - for i in range(offset, offset + count * byte_stride, byte_stride) - ] # noqa E203 + data = [unpack_from(buffer[i : i + byte_stride].tobytes()) for i in range(offset, offset + count * byte_stride, byte_stride)] # noqa E203 if num_components == 1: data = [item[0] for item in data] # unwrap scalars from tuple diff --git a/src/compas/files/gltf/gltf_scene.py b/src/compas/files/gltf/gltf_scene.py index 215baed5476..cd1556d8908 100644 --- a/src/compas/files/gltf/gltf_scene.py +++ b/src/compas/files/gltf/gltf_scene.py @@ -1,6 +1,6 @@ -from __future__ import print_function -from __future__ import division from __future__ import absolute_import +from __future__ import division +from __future__ import print_function from compas.files.gltf.gltf_children import GLTFChildren diff --git a/src/compas/files/gltf/helpers.py b/src/compas/files/gltf/helpers.py index 5acbb644fbe..399e923b838 100644 --- a/src/compas/files/gltf/helpers.py +++ b/src/compas/files/gltf/helpers.py @@ -1,6 +1,6 @@ -from __future__ import print_function -from __future__ import division from __future__ import absolute_import +from __future__ import division +from __future__ import print_function import itertools import math diff --git a/src/compas/files/off.py b/src/compas/files/off.py index 65a7e279010..96b457a433c 100644 --- a/src/compas/files/off.py +++ b/src/compas/files/off.py @@ -254,9 +254,7 @@ def __init__(self, filepath, mesh, author=None, email=None, date=None, precision self.email = email self.date = date self.precision = precision or compas.PRECISION - self.vertex_tpl = ( - "{0:." + self.precision + "}" + " {1:." + self.precision + "}" + " {2:." + self.precision + "}\n" - ) + self.vertex_tpl = "{0:." + self.precision + "}" + " {1:." + self.precision + "}" + " {2:." + self.precision + "}\n" self.v = mesh.number_of_vertices() self.f = mesh.number_of_faces() self.e = mesh.number_of_edges() diff --git a/src/compas/files/ply.py b/src/compas/files/ply.py index cc6a155eaf2..286d77d4135 100644 --- a/src/compas/files/ply.py +++ b/src/compas/files/ply.py @@ -648,9 +648,7 @@ def __init__(self, filepath, mesh, author=None, email=None, date=None, precision self.email = email self.date = date self.precision = precision or compas.PRECISION - self.vertex_tpl = ( - "{0:." + self.precision + "}" + " {1:." + self.precision + "}" + " {2:." + self.precision + "}\n" - ) + self.vertex_tpl = "{0:." + self.precision + "}" + " {1:." + self.precision + "}" + " {2:." + self.precision + "}\n" self.v = mesh.number_of_vertices() self.f = mesh.number_of_faces() self.e = mesh.number_of_edges() diff --git a/src/compas/files/stl.py b/src/compas/files/stl.py index 3f4d9658a6e..eaf2a4b88ee 100644 --- a/src/compas/files/stl.py +++ b/src/compas/files/stl.py @@ -3,6 +3,7 @@ from __future__ import print_function import struct + from compas import _iotools from compas.geometry import Translation from compas.tolerance import TOL diff --git a/src/compas/geometry/_core/_algebra.py b/src/compas/geometry/_core/_algebra.py index cf040bf6124..e017b832c7e 100644 --- a/src/compas/geometry/_core/_algebra.py +++ b/src/compas/geometry/_core/_algebra.py @@ -1,11 +1,19 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from copy import deepcopy -from math import acos, atan2, asin, cos, fabs, pi, sin, sqrt, tan -from compas.tolerance import TOL +from math import acos +from math import asin +from math import atan2 +from math import cos +from math import fabs +from math import pi +from math import sin +from math import sqrt +from math import tan +from compas.tolerance import TOL _SPEC2TUPLE = { "sxyz": (0, 0, 0, 0), @@ -2033,10 +2041,7 @@ def axis_and_angle_from_matrix(M): eps2 = 0.1 # margin to distinguish between 0 and 180 degrees if all(fabs(M[i][j] - M[j][i]) < eps for i, j in [(0, 1), (0, 2), (1, 2)]): - if ( - all(fabs(M[i][j] - M[j][i]) < eps2 for i, j in [(0, 1), (0, 2), (1, 2)]) - and fabs(M[0][0] + M[1][1] + M[2][2] - 3) < eps2 - ): + if all(fabs(M[i][j] - M[j][i]) < eps2 for i, j in [(0, 1), (0, 2), (1, 2)]) and fabs(M[0][0] + M[1][1] + M[2][2] - 3) < eps2: return [0, 0, 0], 0 angle = pi @@ -2068,11 +2073,7 @@ def axis_and_angle_from_matrix(M): return axis, angle - s = sqrt( - (M[2][1] - M[1][2]) * (M[2][1] - M[1][2]) - + (M[0][2] - M[2][0]) * (M[0][2] - M[2][0]) - + (M[1][0] - M[0][1]) * (M[1][0] - M[0][1]) - ) + s = sqrt((M[2][1] - M[1][2]) * (M[2][1] - M[1][2]) + (M[0][2] - M[2][0]) * (M[0][2] - M[2][0]) + (M[1][0] - M[0][1]) * (M[1][0] - M[0][1])) # should this also be an eps? if fabs(s) < 0.001: diff --git a/src/compas/geometry/_core/angles.py b/src/compas/geometry/_core/angles.py index 8479390634d..572403652ec 100644 --- a/src/compas/geometry/_core/angles.py +++ b/src/compas/geometry/_core/angles.py @@ -1,20 +1,20 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from math import pi -from math import degrees from math import acos +from math import degrees +from math import pi from compas.tolerance import TOL -from ._algebra import subtract_vectors -from ._algebra import subtract_vectors_xy +from ._algebra import cross_vectors from ._algebra import dot_vectors from ._algebra import dot_vectors_xy from ._algebra import length_vector from ._algebra import length_vector_xy -from ._algebra import cross_vectors +from ._algebra import subtract_vectors +from ._algebra import subtract_vectors_xy def angle_vectors(u, v, deg=False, tol=None): diff --git a/src/compas/geometry/_core/centroids.py b/src/compas/geometry/_core/centroids.py index fee4229b2cb..41cf250ce20 100644 --- a/src/compas/geometry/_core/centroids.py +++ b/src/compas/geometry/_core/centroids.py @@ -7,14 +7,14 @@ from compas.itertools import pairwise from ._algebra import add_vectors -from ._algebra import subtract_vectors -from ._algebra import subtract_vectors_xy -from ._algebra import length_vector -from ._algebra import length_vector_xy -from ._algebra import dot_vectors from ._algebra import cross_vectors from ._algebra import cross_vectors_xy +from ._algebra import dot_vectors +from ._algebra import length_vector +from ._algebra import length_vector_xy from ._algebra import scale_vector +from ._algebra import subtract_vectors +from ._algebra import subtract_vectors_xy from ._algebra import sum_vectors diff --git a/src/compas/geometry/_core/distance.py b/src/compas/geometry/_core/distance.py index ac5fc5fab2e..84173513cb5 100644 --- a/src/compas/geometry/_core/distance.py +++ b/src/compas/geometry/_core/distance.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from math import fabs from math import sqrt @@ -10,17 +10,17 @@ from ._algebra import add_vectors from ._algebra import add_vectors_xy -from ._algebra import subtract_vectors -from ._algebra import subtract_vectors_xy -from ._algebra import scale_vector -from ._algebra import normalize_vector -from ._algebra import length_vector -from ._algebra import length_vector_xy -from ._algebra import length_vector_sqrd -from ._algebra import length_vector_sqrd_xy from ._algebra import cross_vectors from ._algebra import cross_vectors_xy from ._algebra import dot_vectors +from ._algebra import length_vector +from ._algebra import length_vector_sqrd +from ._algebra import length_vector_sqrd_xy +from ._algebra import length_vector_xy +from ._algebra import normalize_vector +from ._algebra import scale_vector +from ._algebra import subtract_vectors +from ._algebra import subtract_vectors_xy from ._algebra import vector_component from ._algebra import vector_component_xy @@ -592,9 +592,9 @@ def closest_points_in_cloud_numpy(points, cloud, threshold=10**7, distances=True True """ - from numpy import asarray from numpy import argmin from numpy import argpartition + from numpy import asarray from scipy.spatial import distance_matrix points = asarray(points).reshape((-1, 3)) diff --git a/src/compas/geometry/_core/normals.py b/src/compas/geometry/_core/normals.py index 961c0190b30..6c62f9d7894 100644 --- a/src/compas/geometry/_core/normals.py +++ b/src/compas/geometry/_core/normals.py @@ -1,14 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from ._algebra import subtract_vectors -from ._algebra import subtract_vectors_xy from ._algebra import cross_vectors from ._algebra import cross_vectors_xy from ._algebra import length_vector from ._algebra import normalize_vector - +from ._algebra import subtract_vectors +from ._algebra import subtract_vectors_xy from .centroids import centroid_points diff --git a/src/compas/geometry/_core/predicates_2.py b/src/compas/geometry/_core/predicates_2.py index 7cb346573f3..b5d11b9bc24 100644 --- a/src/compas/geometry/_core/predicates_2.py +++ b/src/compas/geometry/_core/predicates_2.py @@ -1,13 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.tolerance import TOL - -from compas.geometry import distance_point_point_xy -from compas.geometry import distance_point_line_xy from compas.geometry import closest_point_on_segment_xy - +from compas.geometry import distance_point_line_xy +from compas.geometry import distance_point_point_xy +from compas.tolerance import TOL # ============================================================================= # ============================================================================= diff --git a/src/compas/geometry/_core/predicates_3.py b/src/compas/geometry/_core/predicates_3.py index e7dcabc5a53..eedb2d6ae84 100644 --- a/src/compas/geometry/_core/predicates_3.py +++ b/src/compas/geometry/_core/predicates_3.py @@ -1,24 +1,20 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.tolerance import TOL - -from compas.utilities import window - -from compas.geometry import subtract_vectors +from compas.geometry import area_triangle +from compas.geometry import centroid_points +from compas.geometry import closest_point_on_segment from compas.geometry import cross_vectors +from compas.geometry import distance_point_line +from compas.geometry import distance_point_plane +from compas.geometry import distance_point_point from compas.geometry import dot_vectors -from compas.geometry import centroid_points -from compas.geometry import normal_polygon -from compas.geometry import area_triangle from compas.geometry import length_vector - -from compas.geometry import distance_point_point -from compas.geometry import distance_point_plane -from compas.geometry import distance_point_line -from compas.geometry import closest_point_on_segment - +from compas.geometry import normal_polygon +from compas.geometry import subtract_vectors +from compas.tolerance import TOL +from compas.utilities import window # ============================================================================= # ============================================================================= @@ -724,11 +720,7 @@ def is_on_same_side(p1, p2, segment): a, b, c = triangle if is_point_on_plane(point, (a, normal_polygon(triangle)), tol=tol): - if ( - is_on_same_side(point, a, (b, c)) - and is_on_same_side(point, b, (a, c)) - and is_on_same_side(point, c, (a, b)) - ): + if is_on_same_side(point, a, (b, c)) and is_on_same_side(point, b, (a, c)) and is_on_same_side(point, c, (a, b)): return True return False diff --git a/src/compas/geometry/_core/quaternions.py b/src/compas/geometry/_core/quaternions.py index 53e899f4a6c..8283bbac952 100644 --- a/src/compas/geometry/_core/quaternions.py +++ b/src/compas/geometry/_core/quaternions.py @@ -1,4 +1,5 @@ import math + from compas.tolerance import TOL diff --git a/src/compas/geometry/_core/size.py b/src/compas/geometry/_core/size.py index cd910c30d57..b7370590383 100644 --- a/src/compas/geometry/_core/size.py +++ b/src/compas/geometry/_core/size.py @@ -1,21 +1,19 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from math import fabs from compas.itertools import pairwise -from ._algebra import subtract_vectors -from ._algebra import subtract_vectors_xy -from ._algebra import length_vector from ._algebra import cross_vectors from ._algebra import cross_vectors_xy from ._algebra import dot_vectors - +from ._algebra import length_vector +from ._algebra import subtract_vectors +from ._algebra import subtract_vectors_xy from .centroids import centroid_points from .centroids import centroid_points_xy - from .normals import normal_triangle from .normals import normal_triangle_xy diff --git a/src/compas/geometry/_core/tangent.py b/src/compas/geometry/_core/tangent.py index 6db30a2cd3c..2bbeb9a284a 100644 --- a/src/compas/geometry/_core/tangent.py +++ b/src/compas/geometry/_core/tangent.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from math import sqrt diff --git a/src/compas/geometry/_core/transformations.py b/src/compas/geometry/_core/transformations.py index 3c3308300ca..adeaf2193f3 100644 --- a/src/compas/geometry/_core/transformations.py +++ b/src/compas/geometry/_core/transformations.py @@ -1,32 +1,31 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import math -from ._algebra import scale_vector -from ._algebra import scale_vector_xy -from ._algebra import normalize_vector from ._algebra import add_vectors from ._algebra import add_vectors_xy +from ._algebra import cross_vectors +from ._algebra import dot_vectors +from ._algebra import matrix_from_axis_and_angle +from ._algebra import matrix_from_change_of_basis +from ._algebra import matrix_from_scale_factors +from ._algebra import multiply_matrices +from ._algebra import multiply_matrix_vector +from ._algebra import norm_vector +from ._algebra import normalize_vector +from ._algebra import scale_vector +from ._algebra import scale_vector_xy from ._algebra import subtract_vectors from ._algebra import subtract_vectors_xy -from ._algebra import dot_vectors -from ._algebra import cross_vectors +from ._algebra import transpose_matrix from ._algebra import vector_component from ._algebra import vector_component_xy -from ._algebra import multiply_matrix_vector -from ._algebra import multiply_matrices -from ._algebra import transpose_matrix -from ._algebra import norm_vector -from ._algebra import matrix_from_axis_and_angle -from ._algebra import matrix_from_scale_factors -from ._algebra import matrix_from_change_of_basis - from .angles import angle_vectors -from .distance import closest_point_on_plane from .distance import closest_point_on_line from .distance import closest_point_on_line_xy +from .distance import closest_point_on_plane # this function will not always work diff --git a/src/compas/geometry/_core/transformations_numpy.py b/src/compas/geometry/_core/transformations_numpy.py index 972fd892d41..05dfed4e559 100644 --- a/src/compas/geometry/_core/transformations_numpy.py +++ b/src/compas/geometry/_core/transformations_numpy.py @@ -1,9 +1,8 @@ from numpy import asarray from numpy import hstack from numpy import ones -from numpy import vectorize from numpy import tile - +from numpy import vectorize from scipy.linalg import solve # type: ignore from ._algebra import cross_vectors diff --git a/src/compas/geometry/bbox.py b/src/compas/geometry/bbox.py index b1ccc98813f..232f821176e 100644 --- a/src/compas/geometry/bbox.py +++ b/src/compas/geometry/bbox.py @@ -1,8 +1,9 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from itertools import islice + from compas.plugins import pluggable diff --git a/src/compas/geometry/bbox_numpy.py b/src/compas/geometry/bbox_numpy.py index 7c45141d240..e95ed93e375 100644 --- a/src/compas/geometry/bbox_numpy.py +++ b/src/compas/geometry/bbox_numpy.py @@ -1,22 +1,20 @@ -from numpy import array -from numpy import asarray -from numpy import argmax -from numpy import argmin from numpy import amax from numpy import amin +from numpy import argmax +from numpy import argmin +from numpy import array +from numpy import asarray from numpy import dot from numpy import sum -from numpy import zeros from numpy import vstack - +from numpy import zeros from scipy.spatial import ConvexHull -from compas.tolerance import TOL - -from compas.geometry import pca_numpy from compas.geometry import local_axes -from compas.geometry import world_to_local_coordinates_numpy from compas.geometry import local_to_world_coordinates_numpy +from compas.geometry import pca_numpy +from compas.geometry import world_to_local_coordinates_numpy +from compas.tolerance import TOL from .bbox import bounding_box diff --git a/src/compas/geometry/bestfit.py b/src/compas/geometry/bestfit.py index 84e92a7e0a9..ba4a02c538c 100644 --- a/src/compas/geometry/bestfit.py +++ b/src/compas/geometry/bestfit.py @@ -1,10 +1,10 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.geometry import subtract_vectors -from compas.geometry import normalize_vector from compas.geometry import centroid_points +from compas.geometry import normalize_vector +from compas.geometry import subtract_vectors def bestfit_plane(points): diff --git a/src/compas/geometry/bestfit_numpy.py b/src/compas/geometry/bestfit_numpy.py index cb68064e84a..1317e4ccf4e 100644 --- a/src/compas/geometry/bestfit_numpy.py +++ b/src/compas/geometry/bestfit_numpy.py @@ -4,9 +4,9 @@ from numpy.linalg import lstsq from scipy.optimize import leastsq +from compas.geometry import local_to_world_coordinates_numpy from compas.geometry import pca_numpy from compas.geometry import world_to_local_coordinates_numpy -from compas.geometry import local_to_world_coordinates_numpy def bestfit_line_numpy(points): diff --git a/src/compas/geometry/booleans.py b/src/compas/geometry/booleans.py index 518a012d50d..0a220ddd7ec 100644 --- a/src/compas/geometry/booleans.py +++ b/src/compas/geometry/booleans.py @@ -1,9 +1,9 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.plugins import pluggable from compas.plugins import PluginNotInstalledError +from compas.plugins import pluggable @pluggable(category="booleans") @@ -57,9 +57,7 @@ def boolean_union_mesh_mesh(A, B): >>> union = Mesh.from_vertices_and_faces(V, F) # doctest: +SKIP """ - raise PluginNotInstalledError( - "No plugin was found for the boolean_union_mesh_mesh pluggable. A plugin is available in compas_cgal..." - ) + raise PluginNotInstalledError("No plugin was found for the boolean_union_mesh_mesh pluggable. A plugin is available in compas_cgal...") boolean_union_mesh_mesh.__pluggable__ = True @@ -94,9 +92,7 @@ def boolean_difference_mesh_mesh(A, B): One such plugin is available in ``compas_cgal``. """ - raise PluginNotInstalledError( - "No plugin was found for the boolean_difference_mesh_mesh pluggable. A plugin is available in compas_cgal..." - ) + raise PluginNotInstalledError("No plugin was found for the boolean_difference_mesh_mesh pluggable. A plugin is available in compas_cgal...") boolean_difference_mesh_mesh.__pluggable__ = True @@ -131,9 +127,7 @@ def boolean_intersection_mesh_mesh(A, B): One such plugin is available in ``compas_cgal``. """ - raise PluginNotInstalledError( - "No plugin was found for the boolean_intersection_mesh_mesh pluggable. A plugin is available in compas_cgal..." - ) + raise PluginNotInstalledError("No plugin was found for the boolean_intersection_mesh_mesh pluggable. A plugin is available in compas_cgal...") boolean_intersection_mesh_mesh.__pluggable__ = True @@ -174,9 +168,7 @@ def boolean_union_polygon_polygon(A, B): One such plugin is available through ``shapely``. """ - raise PluginNotInstalledError( - "No plugin was found for the boolean_union_polygon_polygon pluggable. Installing Shapely should solve the problem." - ) + raise PluginNotInstalledError("No plugin was found for the boolean_union_polygon_polygon pluggable. Installing Shapely should solve the problem.") boolean_union_polygon_polygon.__pluggable__ = True @@ -217,9 +209,7 @@ def boolean_difference_polygon_polygon(A, B): One such plugin is available through ``shapely``. """ - raise PluginNotInstalledError( - "No plugin was found for the boolean_difference_polygon_polygon pluggable. Installing Shapely should solve the problem." - ) + raise PluginNotInstalledError("No plugin was found for the boolean_difference_polygon_polygon pluggable. Installing Shapely should solve the problem.") boolean_difference_polygon_polygon.__pluggable__ = True @@ -260,9 +250,7 @@ def boolean_symmetric_difference_polygon_polygon(A, B): One such plugin is available through ``shapely``. """ - raise PluginNotInstalledError( - "No plugin was found for the boolean_symmetric_difference_polygon_polygon pluggable. Installing Shapely should solve the problem." - ) + raise PluginNotInstalledError("No plugin was found for the boolean_symmetric_difference_polygon_polygon pluggable. Installing Shapely should solve the problem.") boolean_symmetric_difference_polygon_polygon.__pluggable__ = True @@ -303,9 +291,7 @@ def boolean_intersection_polygon_polygon(A, B): One such plugin is available through ``shapely``. """ - raise PluginNotInstalledError( - "No plugin was found for the boolean_intersection_polygon_polygon pluggable. Installing Shapely should solve the problem." - ) + raise PluginNotInstalledError("No plugin was found for the boolean_intersection_polygon_polygon pluggable. Installing Shapely should solve the problem.") boolean_intersection_polygon_polygon.__pluggable__ = True diff --git a/src/compas/geometry/booleans_shapely.py b/src/compas/geometry/booleans_shapely.py index dbcd130a086..44d46619c6b 100644 --- a/src/compas/geometry/booleans_shapely.py +++ b/src/compas/geometry/booleans_shapely.py @@ -1,6 +1,7 @@ -from compas.plugins import plugin from shapely.geometry import Polygon +from compas.plugins import plugin + @plugin(category="booleans", requires=["shapely"]) def boolean_union_polygon_polygon(A, B): diff --git a/src/compas/geometry/brep/brep.py b/src/compas/geometry/brep/brep.py index 3952eae5f95..78028ef1236 100644 --- a/src/compas/geometry/brep/brep.py +++ b/src/compas/geometry/brep/brep.py @@ -1,27 +1,27 @@ from compas.geometry import Geometry -from . import new_brep -from . import from_brepfaces +from . import from_boolean_difference +from . import from_boolean_intersection +from . import from_boolean_union from . import from_box -from . import from_cylinder -from . import from_sphere -from . import from_mesh +from . import from_brepfaces from . import from_cone -from . import from_torus +from . import from_curves +from . import from_cylinder from . import from_extrusion from . import from_iges from . import from_loft -from . import from_boolean_difference -from . import from_boolean_intersection -from . import from_boolean_union -from . import from_curves +from . import from_mesh +from . import from_native from . import from_pipe from . import from_plane from . import from_planes from . import from_polygons +from . import from_sphere from . import from_step from . import from_sweep -from . import from_native +from . import from_torus +from . import new_brep class BrepType(object): diff --git a/src/compas/geometry/brep/face.py b/src/compas/geometry/brep/face.py index b313fcb0219..ff9376eec86 100644 --- a/src/compas/geometry/brep/face.py +++ b/src/compas/geometry/brep/face.py @@ -1,5 +1,4 @@ from compas.data import Data - from compas.geometry import Polygon diff --git a/src/compas/geometry/contours.py b/src/compas/geometry/contours.py index 9ed3b1a8cec..2e272d3248c 100644 --- a/src/compas/geometry/contours.py +++ b/src/compas/geometry/contours.py @@ -1,5 +1,5 @@ -from compas.plugins import pluggable from compas.plugins import PluginNotInstalledError +from compas.plugins import pluggable @pluggable(category="contours") diff --git a/src/compas/geometry/curves/arc.py b/src/compas/geometry/curves/arc.py index c044bd324bd..8c41de7a88d 100644 --- a/src/compas/geometry/curves/arc.py +++ b/src/compas/geometry/curves/arc.py @@ -1,14 +1,17 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from math import pi, cos, sin +from math import cos +from math import pi +from math import sin -from compas.geometry import close +from compas.geometry import Circle +from compas.geometry import Frame from compas.geometry import Point from compas.geometry import Vector -from compas.geometry import Frame -from compas.geometry import Circle +from compas.geometry import close + from .curve import Curve PI2 = 2.0 * pi @@ -171,12 +174,7 @@ def __repr__(self): def __eq__(self, other): try: - return ( - self.radius == other.radius - and self.start_angle == other.start - and self.end_angle == other.end - and self.frame == other.frame - ) + return self.radius == other.radius and self.start_angle == other.start and self.end_angle == other.end and self.frame == other.frame except Exception: return False diff --git a/src/compas/geometry/curves/bezier.py b/src/compas/geometry/curves/bezier.py index c06f1608cef..bf3d2e4f67f 100644 --- a/src/compas/geometry/curves/bezier.py +++ b/src/compas/geometry/curves/bezier.py @@ -1,12 +1,12 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from math import factorial -from compas.geometry import Vector -from compas.geometry import Point from compas.geometry import Frame +from compas.geometry import Point +from compas.geometry import Vector from .curve import Curve diff --git a/src/compas/geometry/curves/circle.py b/src/compas/geometry/curves/circle.py index f6f8b61af7b..6e24392386b 100644 --- a/src/compas/geometry/curves/circle.py +++ b/src/compas/geometry/curves/circle.py @@ -1,13 +1,16 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from math import pi, cos, sin +from math import cos +from math import pi +from math import sin -from compas.geometry import Point -from compas.geometry import Vector from compas.geometry import Frame from compas.geometry import Plane +from compas.geometry import Point +from compas.geometry import Vector + from .conic import Conic PI2 = 2 * pi diff --git a/src/compas/geometry/curves/conic.py b/src/compas/geometry/curves/conic.py index 0240e5bcd03..037cf28a2c8 100644 --- a/src/compas/geometry/curves/conic.py +++ b/src/compas/geometry/curves/conic.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from .curve import Curve diff --git a/src/compas/geometry/curves/curve.py b/src/compas/geometry/curves/curve.py index 3afcec270aa..f952a1bd8b8 100644 --- a/src/compas/geometry/curves/curve.py +++ b/src/compas/geometry/curves/curve.py @@ -1,13 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.plugins import pluggable +from compas.geometry import Frame from compas.geometry import Geometry -from compas.geometry import Transformation from compas.geometry import Plane -from compas.geometry import Frame +from compas.geometry import Transformation from compas.itertools import linspace +from compas.plugins import pluggable @pluggable(category="factories") diff --git a/src/compas/geometry/curves/ellipse.py b/src/compas/geometry/curves/ellipse.py index 6939def940b..554321940b0 100644 --- a/src/compas/geometry/curves/ellipse.py +++ b/src/compas/geometry/curves/ellipse.py @@ -1,12 +1,16 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from math import sqrt, pi, cos, sin +from math import cos +from math import pi +from math import sin +from math import sqrt +from compas.geometry import Frame from compas.geometry import Point from compas.geometry import Vector -from compas.geometry import Frame + from .conic import Conic from .line import Line diff --git a/src/compas/geometry/curves/hyperbola.py b/src/compas/geometry/curves/hyperbola.py index 7d908f447d2..54f6120f918 100644 --- a/src/compas/geometry/curves/hyperbola.py +++ b/src/compas/geometry/curves/hyperbola.py @@ -1,12 +1,15 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from math import cos, sin, sqrt +from math import cos from math import pi +from math import sin +from math import sqrt -from compas.geometry import Point from compas.geometry import Frame +from compas.geometry import Point + from .conic import Conic PI2 = 2 * pi diff --git a/src/compas/geometry/curves/line.py b/src/compas/geometry/curves/line.py index ce1d0875ea9..e0aa9dba02c 100644 --- a/src/compas/geometry/curves/line.py +++ b/src/compas/geometry/curves/line.py @@ -1,11 +1,12 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.geometry import add_vectors +from compas.geometry import Frame from compas.geometry import Point from compas.geometry import Vector -from compas.geometry import Frame +from compas.geometry import add_vectors + from .curve import Curve diff --git a/src/compas/geometry/curves/nurbs.py b/src/compas/geometry/curves/nurbs.py index 1c0214d238b..ca4e741629c 100644 --- a/src/compas/geometry/curves/nurbs.py +++ b/src/compas/geometry/curves/nurbs.py @@ -1,13 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from math import sqrt -from compas.plugins import pluggable -from compas.plugins import PluginNotInstalledError -from compas.geometry import Point from compas.geometry import Frame +from compas.geometry import Point +from compas.plugins import PluginNotInstalledError +from compas.plugins import pluggable from .curve import Curve diff --git a/src/compas/geometry/curves/parabola.py b/src/compas/geometry/curves/parabola.py index 026a8ef4d44..d032e71dfed 100644 --- a/src/compas/geometry/curves/parabola.py +++ b/src/compas/geometry/curves/parabola.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.geometry import Vector -from compas.geometry import Point from compas.geometry import Frame -from .line import Line +from compas.geometry import Point +from compas.geometry import Vector + from .conic import Conic +from .line import Line class Parabola(Conic): diff --git a/src/compas/geometry/curves/polyline.py b/src/compas/geometry/curves/polyline.py index 0bec8e6ee78..cc7a107b9da 100644 --- a/src/compas/geometry/curves/polyline.py +++ b/src/compas/geometry/curves/polyline.py @@ -1,15 +1,16 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.itertools import pairwise - +from compas.geometry import Frame +from compas.geometry import Line +from compas.geometry import Point from compas.geometry import allclose +from compas.geometry import is_point_on_line +from compas.geometry import is_point_on_polyline from compas.geometry import transform_points -from compas.geometry import is_point_on_line, is_point_on_polyline -from compas.geometry import Point -from compas.geometry import Line -from compas.geometry import Frame +from compas.itertools import pairwise + from .curve import Curve diff --git a/src/compas/geometry/frame.py b/src/compas/geometry/frame.py index 3023bbb0c9e..bc0b4034313 100644 --- a/src/compas/geometry/frame.py +++ b/src/compas/geometry/frame.py @@ -1,9 +1,9 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.tolerance import TOL - +from compas.geometry import Geometry +from compas.geometry import Transformation from compas.geometry import argmax from compas.geometry import axis_angle_vector_from_matrix from compas.geometry import basis_vectors_from_matrix @@ -16,15 +16,12 @@ from compas.geometry import matrix_from_quaternion from compas.geometry import quaternion_from_matrix from compas.geometry import subtract_vectors +from compas.itertools import linspace +from compas.tolerance import TOL -from compas.geometry import Geometry -from compas.geometry import Transformation - -from .vector import Vector from .point import Point from .quaternion import Quaternion - -from compas.itertools import linspace +from .vector import Vector class Frame(Geometry): diff --git a/src/compas/geometry/hull.py b/src/compas/geometry/hull.py index 28b22384431..37932239f4f 100644 --- a/src/compas/geometry/hull.py +++ b/src/compas/geometry/hull.py @@ -1,11 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.geometry import cross_vectors -from compas.geometry import subtract_vectors -from compas.geometry import dot_vectors from compas.geometry import cross_vectors_xy +from compas.geometry import dot_vectors +from compas.geometry import subtract_vectors def convex_hull(points): diff --git a/src/compas/geometry/icp_numpy.py b/src/compas/geometry/icp_numpy.py index b3b79a49264..559b02f739a 100644 --- a/src/compas/geometry/icp_numpy.py +++ b/src/compas/geometry/icp_numpy.py @@ -1,15 +1,15 @@ import numpy as np -from numpy import asarray from numpy import argmin +from numpy import asarray from numpy.linalg import det -from scipy.spatial.distance import cdist -from scipy.linalg import svd from scipy.linalg import norm +from scipy.linalg import svd +from scipy.spatial.distance import cdist -from compas.tolerance import TOL from compas.geometry import pca_numpy from compas.geometry import transform_points_numpy from compas.linalg import normrow +from compas.tolerance import TOL def bestfit_transform(A, B): @@ -73,8 +73,8 @@ def icp_numpy(source, target, tol=None): The algorithm terminates when the alignment error is below a specified tolerance. """ - from compas.geometry import Transformation from compas.geometry import Frame + from compas.geometry import Transformation tol = tol or TOL.approximation diff --git a/src/compas/geometry/interpolation_barycentric.py b/src/compas/geometry/interpolation_barycentric.py index 229fa1afb6a..c6a2c64d8de 100644 --- a/src/compas/geometry/interpolation_barycentric.py +++ b/src/compas/geometry/interpolation_barycentric.py @@ -1,9 +1,9 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.geometry import subtract_vectors from compas.geometry import dot_vectors +from compas.geometry import subtract_vectors def barycentric_coordinates(point, triangle): diff --git a/src/compas/geometry/interpolation_coons.py b/src/compas/geometry/interpolation_coons.py index 6147781fc7a..537d1665155 100644 --- a/src/compas/geometry/interpolation_coons.py +++ b/src/compas/geometry/interpolation_coons.py @@ -1,12 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.geometry import add_vectors from compas.geometry import scale_vector from compas.geometry import subtract_vectors from compas.geometry import sum_vectors - from compas.utilities import normalize_values diff --git a/src/compas/geometry/interpolation_tweening.py b/src/compas/geometry/interpolation_tweening.py index 0b05de764c6..47fbf3de076 100644 --- a/src/compas/geometry/interpolation_tweening.py +++ b/src/compas/geometry/interpolation_tweening.py @@ -1,11 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.geometry import add_vectors -from compas.geometry import subtract_vectors -from compas.geometry import scale_vector from compas.geometry import distance_point_point +from compas.geometry import scale_vector +from compas.geometry import subtract_vectors def tween_points(points1, points2, num): diff --git a/src/compas/geometry/intersection.py b/src/compas/geometry/intersection.py index 3c54c5d618a..06aba837a4f 100644 --- a/src/compas/geometry/intersection.py +++ b/src/compas/geometry/intersection.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function # from compas.precision import Precision from compas.geometry import distance_point_point diff --git a/src/compas/geometry/intersections.py b/src/compas/geometry/intersections.py index de8528cbf15..7045fa78cae 100644 --- a/src/compas/geometry/intersections.py +++ b/src/compas/geometry/intersections.py @@ -1,28 +1,26 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from math import fabs from math import sqrt -from compas.tolerance import TOL - -from compas.itertools import pairwise -from compas.plugins import pluggable -from compas.plugins import PluginNotInstalledError - from compas.geometry import add_vectors -from compas.geometry import subtract_vectors -from compas.geometry import scale_vector from compas.geometry import cross_vectors -from compas.geometry import dot_vectors -from compas.geometry import length_vector_xy -from compas.geometry import subtract_vectors_xy -from compas.geometry import normalize_vector from compas.geometry import distance_point_point +from compas.geometry import dot_vectors +from compas.geometry import is_point_in_triangle from compas.geometry import is_point_on_segment from compas.geometry import is_point_on_segment_xy -from compas.geometry import is_point_in_triangle +from compas.geometry import length_vector_xy +from compas.geometry import normalize_vector +from compas.geometry import scale_vector +from compas.geometry import subtract_vectors +from compas.geometry import subtract_vectors_xy +from compas.itertools import pairwise +from compas.plugins import PluginNotInstalledError +from compas.plugins import pluggable +from compas.tolerance import TOL def intersection_line_line(l1, l2, tol=None): @@ -627,20 +625,9 @@ def intersection_sphere_line(sphere, line): sp, radius = sphere a = (l2[0] - l1[0]) ** 2 + (l2[1] - l1[1]) ** 2 + (l2[2] - l1[2]) ** 2 - b = 2.0 * ( - (l2[0] - l1[0]) * (l1[0] - sp[0]) + (l2[1] - l1[1]) * (l1[1] - sp[1]) + (l2[2] - l1[2]) * (l1[2] - sp[2]) - ) - - c = ( - sp[0] ** 2 - + sp[1] ** 2 - + sp[2] ** 2 - + l1[0] ** 2 - + l1[1] ** 2 - + l1[2] ** 2 - - 2.0 * (sp[0] * l1[0] + sp[1] * l1[1] + sp[2] * l1[2]) - - radius**2 - ) + b = 2.0 * ((l2[0] - l1[0]) * (l1[0] - sp[0]) + (l2[1] - l1[1]) * (l1[1] - sp[1]) + (l2[2] - l1[2]) * (l1[2] - sp[2])) + + c = sp[0] ** 2 + sp[1] ** 2 + sp[2] ** 2 + l1[0] ** 2 + l1[1] ** 2 + l1[2] ** 2 - 2.0 * (sp[0] * l1[0] + sp[1] * l1[1] + sp[2] * l1[2]) - radius**2 i = b * b - 4.0 * a * c diff --git a/src/compas/geometry/kdtree.py b/src/compas/geometry/kdtree.py index e73761358a4..10457ba7804 100644 --- a/src/compas/geometry/kdtree.py +++ b/src/compas/geometry/kdtree.py @@ -1,12 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import collections from ._core.distance import distance_point_point_sqrd - Node = collections.namedtuple("Node", "point axis label left right") diff --git a/src/compas/geometry/offset.py b/src/compas/geometry/offset.py index d2cf4e80bde..bd8c5ba4fb0 100644 --- a/src/compas/geometry/offset.py +++ b/src/compas/geometry/offset.py @@ -1,21 +1,19 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.geometry import scale_vector -from compas.geometry import normalize_vector +from compas.data.validators import is_item_iterable from compas.geometry import add_vectors -from compas.geometry import subtract_vectors -from compas.geometry import cross_vectors from compas.geometry import centroid_points +from compas.geometry import cross_vectors from compas.geometry import intersection_line_line -from compas.geometry import normal_polygon from compas.geometry import is_colinear - -from compas.data.validators import is_item_iterable - -from compas.utilities import iterable_like +from compas.geometry import normal_polygon +from compas.geometry import normalize_vector +from compas.geometry import scale_vector +from compas.geometry import subtract_vectors from compas.itertools import pairwise +from compas.utilities import iterable_like def intersect_lines(l1, l2, tol): diff --git a/src/compas/geometry/pca_numpy.py b/src/compas/geometry/pca_numpy.py index ad5c6f53dd5..9e2fcf13d3f 100644 --- a/src/compas/geometry/pca_numpy.py +++ b/src/compas/geometry/pca_numpy.py @@ -41,9 +41,7 @@ def pca_numpy(data): n, dim = X.shape if not n >= dim: - raise ValueError( - "The number of observations (n) should be higher than the number of measured variables (dimensions)." - ) + raise ValueError("The number of observations (n) should be higher than the number of measured variables (dimensions).") # the average of the observations for each of the variables # for example, if the data are 2D point coordinates, diff --git a/src/compas/geometry/plane.py b/src/compas/geometry/plane.py index b2cbe5cea15..2cebbafb943 100644 --- a/src/compas/geometry/plane.py +++ b/src/compas/geometry/plane.py @@ -4,13 +4,13 @@ from math import sqrt +from compas.geometry import Geometry +from compas.geometry import bestfit_plane +from compas.geometry import cross_vectors from compas.tolerance import TOL -from compas.geometry import cross_vectors -from compas.geometry import bestfit_plane -from compas.geometry import Geometry -from .vector import Vector from .point import Point +from .vector import Vector class Plane(Geometry): diff --git a/src/compas/geometry/pointcloud.py b/src/compas/geometry/pointcloud.py index cf26a73a84b..ed1a25c2f55 100644 --- a/src/compas/geometry/pointcloud.py +++ b/src/compas/geometry/pointcloud.py @@ -1,18 +1,17 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from random import uniform -from compas.tolerance import TOL - -from compas.geometry import KDTree from compas.geometry import Geometry +from compas.geometry import KDTree from compas.geometry import Point -from compas.geometry import transform_points -from compas.geometry import centroid_points from compas.geometry import bounding_box +from compas.geometry import centroid_points from compas.geometry import closest_point_in_cloud +from compas.geometry import transform_points +from compas.tolerance import TOL class Pointcloud(Geometry): diff --git a/src/compas/geometry/polygon.py b/src/compas/geometry/polygon.py index 2a38bdb2f22..8102129ef7d 100644 --- a/src/compas/geometry/polygon.py +++ b/src/compas/geometry/polygon.py @@ -1,24 +1,24 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import math -from compas.itertools import pairwise +from compas.geometry import Frame +from compas.geometry import Geometry +from compas.geometry import Line +from compas.geometry import Plane +from compas.geometry import Point +from compas.geometry import Transformation from compas.geometry import allclose from compas.geometry import area_polygon +from compas.geometry import bounding_box from compas.geometry import centroid_polygon +from compas.geometry import earclip_polygon from compas.geometry import is_coplanar from compas.geometry import is_polygon_convex from compas.geometry import transform_points -from compas.geometry import earclip_polygon -from compas.geometry import bounding_box -from compas.geometry import Geometry -from compas.geometry import Transformation -from compas.geometry import Point -from compas.geometry import Plane -from compas.geometry import Frame -from compas.geometry import Line +from compas.itertools import pairwise class Polygon(Geometry): diff --git a/src/compas/geometry/polyhedron.py b/src/compas/geometry/polyhedron.py index 39495041b5a..908bc65eea2 100644 --- a/src/compas/geometry/polyhedron.py +++ b/src/compas/geometry/polyhedron.py @@ -1,14 +1,15 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from math import sqrt -from compas.itertools import pairwise -from compas.geometry import transform_points -from compas.geometry import Polygon -from compas.geometry import Point from compas.geometry import Line +from compas.geometry import Point +from compas.geometry import Polygon +from compas.geometry import transform_points +from compas.itertools import pairwise + from .geometry import Geometry @@ -414,10 +415,15 @@ def from_halfspaces(cls, halfspaces, interior_point): """ from itertools import combinations + from numpy import asarray - from scipy.spatial import HalfspaceIntersection, ConvexHull # type: ignore + from scipy.spatial import ConvexHull # type: ignore + from scipy.spatial import HalfspaceIntersection # type: ignore + from compas.datastructures import Mesh - from compas.geometry import length_vector, dot_vectors, cross_vectors + from compas.geometry import cross_vectors + from compas.geometry import dot_vectors + from compas.geometry import length_vector halfspaces = asarray(halfspaces, dtype=float) interior_point = asarray(interior_point, dtype=float) diff --git a/src/compas/geometry/projection.py b/src/compas/geometry/projection.py index c32f9189e88..2a50911eeff 100644 --- a/src/compas/geometry/projection.py +++ b/src/compas/geometry/projection.py @@ -11,14 +11,14 @@ Ippoliti for providing code and documentation. """ -from compas.utilities import flatten +from compas.geometry import Transformation from compas.geometry import allclose from compas.geometry import decompose_matrix from compas.geometry import matrix_from_orthogonal_projection from compas.geometry import matrix_from_parallel_projection -from compas.geometry import matrix_from_perspective_projection from compas.geometry import matrix_from_perspective_entries -from compas.geometry import Transformation +from compas.geometry import matrix_from_perspective_projection +from compas.utilities import flatten class Projection(Transformation): diff --git a/src/compas/geometry/quadmesh_planarize.py b/src/compas/geometry/quadmesh_planarize.py index 5d1466816e3..5d2084762bc 100644 --- a/src/compas/geometry/quadmesh_planarize.py +++ b/src/compas/geometry/quadmesh_planarize.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.plugins import pluggable diff --git a/src/compas/geometry/quadmesh_planarize_none.py b/src/compas/geometry/quadmesh_planarize_none.py index 946f1eb6728..a1e9e893e47 100644 --- a/src/compas/geometry/quadmesh_planarize_none.py +++ b/src/compas/geometry/quadmesh_planarize_none.py @@ -1,16 +1,15 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.geometry import project_points_plane +from compas.geometry import bestfit_plane from compas.geometry import centroid_points -from compas.geometry import midpoint_point_point -from compas.geometry import distance_point_point from compas.geometry import distance_line_line -from compas.geometry import bestfit_plane - -from compas.utilities import window +from compas.geometry import distance_point_point +from compas.geometry import midpoint_point_point +from compas.geometry import project_points_plane from compas.itertools import pairwise +from compas.utilities import window def mesh_flatness(mesh, maxdev=1.0): diff --git a/src/compas/geometry/quaternion.py b/src/compas/geometry/quaternion.py index cb3a8073ae6..57987b0eb24 100644 --- a/src/compas/geometry/quaternion.py +++ b/src/compas/geometry/quaternion.py @@ -1,20 +1,20 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import math +from sys import float_info -from compas.tolerance import TOL - -from compas.geometry import quaternion_multiply, Rotation -from compas.geometry import quaternion_conjugate -from compas.geometry import quaternion_unitize +from compas.geometry import Geometry +from compas.geometry import Rotation from compas.geometry import quaternion_canonize -from compas.geometry import quaternion_norm -from compas.geometry import quaternion_is_unit +from compas.geometry import quaternion_conjugate from compas.geometry import quaternion_from_matrix -from compas.geometry import Geometry -from sys import float_info +from compas.geometry import quaternion_is_unit +from compas.geometry import quaternion_multiply +from compas.geometry import quaternion_norm +from compas.geometry import quaternion_unitize +from compas.tolerance import TOL class Quaternion(Geometry): diff --git a/src/compas/geometry/reflection.py b/src/compas/geometry/reflection.py index cd6674db039..211d32aef73 100644 --- a/src/compas/geometry/reflection.py +++ b/src/compas/geometry/reflection.py @@ -11,15 +11,15 @@ Ippoliti for providing code and documentation. """ -from compas.utilities import flatten +from compas.geometry import Transformation from compas.geometry import allclose -from compas.geometry import dot_vectors from compas.geometry import cross_vectors -from compas.geometry import normalize_vector from compas.geometry import decompose_matrix -from compas.geometry import matrix_from_perspective_entries +from compas.geometry import dot_vectors from compas.geometry import identity_matrix -from compas.geometry import Transformation +from compas.geometry import matrix_from_perspective_entries +from compas.geometry import normalize_vector +from compas.utilities import flatten class Reflection(Transformation): diff --git a/src/compas/geometry/rotation.py b/src/compas/geometry/rotation.py index 2f2c29e6a37..a4460277757 100644 --- a/src/compas/geometry/rotation.py +++ b/src/compas/geometry/rotation.py @@ -11,20 +11,20 @@ Ippoliti for providing code and documentation. """ -from compas.utilities import flatten -from compas.geometry import normalize_vector -from compas.geometry import cross_vectors -from compas.geometry import length_vector +from compas.geometry import Transformation from compas.geometry import allclose +from compas.geometry import axis_and_angle_from_matrix +from compas.geometry import basis_vectors_from_matrix +from compas.geometry import cross_vectors from compas.geometry import decompose_matrix -from compas.geometry import matrix_from_euler_angles from compas.geometry import euler_angles_from_matrix +from compas.geometry import length_vector from compas.geometry import matrix_from_axis_and_angle -from compas.geometry import axis_and_angle_from_matrix -from compas.geometry import matrix_from_quaternion +from compas.geometry import matrix_from_euler_angles from compas.geometry import matrix_from_frame -from compas.geometry import basis_vectors_from_matrix -from compas.geometry import Transformation +from compas.geometry import matrix_from_quaternion +from compas.geometry import normalize_vector +from compas.utilities import flatten class Rotation(Transformation): diff --git a/src/compas/geometry/scale.py b/src/compas/geometry/scale.py index 15f9ac3ee02..9e22ef91793 100644 --- a/src/compas/geometry/scale.py +++ b/src/compas/geometry/scale.py @@ -11,14 +11,14 @@ Ippoliti for providing code and documentation. """ -from compas.utilities import flatten +from compas.geometry import Transformation from compas.geometry import allclose -from compas.geometry import multiply_matrices from compas.geometry import decompose_matrix -from compas.geometry import matrix_from_scale_factors from compas.geometry import matrix_from_frame +from compas.geometry import matrix_from_scale_factors from compas.geometry import matrix_inverse -from compas.geometry import Transformation +from compas.geometry import multiply_matrices +from compas.utilities import flatten class Scale(Transformation): diff --git a/src/compas/geometry/shapes/box.py b/src/compas/geometry/shapes/box.py index 199d18cfe23..9dff2bf4809 100644 --- a/src/compas/geometry/shapes/box.py +++ b/src/compas/geometry/shapes/box.py @@ -2,12 +2,12 @@ from __future__ import division from __future__ import print_function -from compas.geometry import centroid_points -from compas.geometry import transform_points -from compas.geometry import Transformation from compas.geometry import Frame -from compas.geometry import Vector from compas.geometry import Line +from compas.geometry import Transformation +from compas.geometry import Vector +from compas.geometry import centroid_points +from compas.geometry import transform_points from .shape import Shape @@ -259,18 +259,8 @@ def height(self): @property def diagonal(self): - a = ( - self.frame.point - + self.frame.xaxis * -0.5 * self.xsize - + self.frame.yaxis * -0.5 * self.ysize - + self.frame.zaxis * -0.5 * self.zsize - ) - b = ( - self.frame.point - + self.frame.xaxis * 0.5 * self.xsize - + self.frame.yaxis * 0.5 * self.ysize - + self.frame.zaxis * 0.5 * self.zsize - ) + a = self.frame.point + self.frame.xaxis * -0.5 * self.xsize + self.frame.yaxis * -0.5 * self.ysize + self.frame.zaxis * -0.5 * self.zsize + b = self.frame.point + self.frame.xaxis * 0.5 * self.xsize + self.frame.yaxis * 0.5 * self.ysize + self.frame.zaxis * 0.5 * self.zsize return Line(a, b) @property diff --git a/src/compas/geometry/shapes/capsule.py b/src/compas/geometry/shapes/capsule.py index c576eaf4f69..4d97816b6ee 100644 --- a/src/compas/geometry/shapes/capsule.py +++ b/src/compas/geometry/shapes/capsule.py @@ -6,12 +6,12 @@ from math import pi from math import sin -from compas.geometry import transform_points +from compas.geometry import Circle from compas.geometry import Frame -from compas.geometry import Plane from compas.geometry import Line -from compas.geometry import Circle +from compas.geometry import Plane from compas.geometry import Transformation +from compas.geometry import transform_points from .shape import Shape diff --git a/src/compas/geometry/shapes/cone.py b/src/compas/geometry/shapes/cone.py index 2365a642d88..cc5b9d49925 100644 --- a/src/compas/geometry/shapes/cone.py +++ b/src/compas/geometry/shapes/cone.py @@ -7,12 +7,12 @@ from math import sin from math import sqrt -from compas.itertools import pairwise -from compas.geometry import transform_points from compas.geometry import Circle -from compas.geometry import Plane -from compas.geometry import Line from compas.geometry import Frame +from compas.geometry import Line +from compas.geometry import Plane +from compas.geometry import transform_points +from compas.itertools import pairwise from .shape import Shape diff --git a/src/compas/geometry/shapes/cylinder.py b/src/compas/geometry/shapes/cylinder.py index b1de3d8ab1b..cf1d8631b4c 100644 --- a/src/compas/geometry/shapes/cylinder.py +++ b/src/compas/geometry/shapes/cylinder.py @@ -6,11 +6,11 @@ from math import pi from math import sin -from compas.geometry import transform_points from compas.geometry import Circle -from compas.geometry import Plane from compas.geometry import Frame from compas.geometry import Line +from compas.geometry import Plane +from compas.geometry import transform_points from .shape import Shape diff --git a/src/compas/geometry/shapes/shape.py b/src/compas/geometry/shapes/shape.py index bee52da8c44..1969885b94f 100644 --- a/src/compas/geometry/shapes/shape.py +++ b/src/compas/geometry/shapes/shape.py @@ -1,11 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.geometry import Geometry from compas.geometry import Frame -from compas.geometry import Transformation +from compas.geometry import Geometry from compas.geometry import Rotation +from compas.geometry import Transformation class Shape(Geometry): diff --git a/src/compas/geometry/shapes/sphere.py b/src/compas/geometry/shapes/sphere.py index 6a8db8e890a..b0046f02362 100644 --- a/src/compas/geometry/shapes/sphere.py +++ b/src/compas/geometry/shapes/sphere.py @@ -6,10 +6,11 @@ from math import pi from math import sin -from compas.geometry import transform_points +from compas.geometry import Circle from compas.geometry import Frame from compas.geometry import Line -from compas.geometry import Circle +from compas.geometry import transform_points + from .shape import Shape diff --git a/src/compas/geometry/shapes/torus.py b/src/compas/geometry/shapes/torus.py index 3a7b8707f3e..ac7aed9aed2 100644 --- a/src/compas/geometry/shapes/torus.py +++ b/src/compas/geometry/shapes/torus.py @@ -6,10 +6,10 @@ from math import pi from math import sin -from compas.geometry import matrix_from_frame -from compas.geometry import transform_points from compas.geometry import Frame from compas.geometry import Plane +from compas.geometry import matrix_from_frame +from compas.geometry import transform_points from .shape import Shape @@ -147,9 +147,7 @@ def volume(self): # ========================================================================== def __repr__(self): - return "Torus(frame={0!r}, radius_axis={1!r}, radius_pipe={2!r})".format( - self.frame, self.radius_axis, self.radius_pipe - ) + return "Torus(frame={0!r}, radius_axis={1!r}, radius_pipe={2!r})".format(self.frame, self.radius_axis, self.radius_pipe) def __len__(self): return 3 diff --git a/src/compas/geometry/shear.py b/src/compas/geometry/shear.py index 5d9b8ed3316..654a53f658d 100644 --- a/src/compas/geometry/shear.py +++ b/src/compas/geometry/shear.py @@ -11,12 +11,12 @@ Ippoliti for providing code and documentation. """ -from compas.utilities import flatten +from compas.geometry import Transformation from compas.geometry import allclose -from compas.geometry import matrix_from_shear_entries -from compas.geometry import matrix_from_shear from compas.geometry import decompose_matrix -from compas.geometry import Transformation +from compas.geometry import matrix_from_shear +from compas.geometry import matrix_from_shear_entries +from compas.utilities import flatten class Shear(Transformation): diff --git a/src/compas/geometry/surfaces/conical.py b/src/compas/geometry/surfaces/conical.py index bb51b5b8ac2..d4c4ce41457 100644 --- a/src/compas/geometry/surfaces/conical.py +++ b/src/compas/geometry/surfaces/conical.py @@ -1,11 +1,14 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from math import pi, cos, sin +from math import cos +from math import pi +from math import sin -from compas.geometry import Point from compas.geometry import Frame +from compas.geometry import Point + from .surface import Surface PI2 = 2 * pi diff --git a/src/compas/geometry/surfaces/cylindrical.py b/src/compas/geometry/surfaces/cylindrical.py index 9f146ff5082..0ed358a58c3 100644 --- a/src/compas/geometry/surfaces/cylindrical.py +++ b/src/compas/geometry/surfaces/cylindrical.py @@ -1,13 +1,16 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from math import pi, cos, sin +from math import cos +from math import pi +from math import sin +from compas.geometry import Circle +from compas.geometry import Frame from compas.geometry import Point from compas.geometry import Vector -from compas.geometry import Frame -from compas.geometry import Circle + from .surface import Surface PI2 = 2 * pi diff --git a/src/compas/geometry/surfaces/nurbs.py b/src/compas/geometry/surfaces/nurbs.py index 862a0b034e3..601d220c54a 100644 --- a/src/compas/geometry/surfaces/nurbs.py +++ b/src/compas/geometry/surfaces/nurbs.py @@ -1,11 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.plugins import pluggable -from compas.plugins import PluginNotInstalledError from compas.geometry import Point from compas.itertools import linspace +from compas.plugins import PluginNotInstalledError +from compas.plugins import pluggable from compas.utilities import meshgrid from .surface import Surface diff --git a/src/compas/geometry/surfaces/planar.py b/src/compas/geometry/surfaces/planar.py index dde96172d76..66f636f1904 100644 --- a/src/compas/geometry/surfaces/planar.py +++ b/src/compas/geometry/surfaces/planar.py @@ -2,10 +2,11 @@ from __future__ import division from __future__ import print_function -from compas.geometry import Point -from compas.geometry import Vector from compas.geometry import Frame from compas.geometry import Plane +from compas.geometry import Point +from compas.geometry import Vector + from .surface import Surface diff --git a/src/compas/geometry/surfaces/spherical.py b/src/compas/geometry/surfaces/spherical.py index 16606c5ab24..555ee51031f 100644 --- a/src/compas/geometry/surfaces/spherical.py +++ b/src/compas/geometry/surfaces/spherical.py @@ -1,13 +1,16 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from math import cos, sin, pi +from math import cos +from math import pi +from math import sin +from compas.geometry import Circle +from compas.geometry import Frame from compas.geometry import Point from compas.geometry import Vector -from compas.geometry import Frame -from compas.geometry import Circle + from .surface import Surface PI2 = 2 * pi diff --git a/src/compas/geometry/surfaces/surface.py b/src/compas/geometry/surfaces/surface.py index 4ddc9f828b6..4777705279b 100644 --- a/src/compas/geometry/surfaces/surface.py +++ b/src/compas/geometry/surfaces/surface.py @@ -1,15 +1,15 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from itertools import product -from compas.geometry import Geometry from compas.geometry import Frame -from compas.geometry import Transformation +from compas.geometry import Geometry from compas.geometry import Point -from compas.plugins import pluggable +from compas.geometry import Transformation from compas.itertools import linspace +from compas.plugins import pluggable @pluggable(category="factories") diff --git a/src/compas/geometry/surfaces/toroidal.py b/src/compas/geometry/surfaces/toroidal.py index e236cd7a59f..f955c33b78a 100644 --- a/src/compas/geometry/surfaces/toroidal.py +++ b/src/compas/geometry/surfaces/toroidal.py @@ -1,11 +1,14 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from math import cos, sin, pi +from math import cos +from math import pi +from math import sin -from compas.geometry import Point from compas.geometry import Frame +from compas.geometry import Point + from .surface import Surface PI2 = 2 * pi @@ -87,11 +90,7 @@ def __eq__(self, other): other_radius_pipe = other.radius_pipe except Exception: return False - return ( - self.radius_axis == other_radius_axis - and self.radius_pipe == other_radius_pipe - and self.frame == other_frame - ) + return self.radius_axis == other_radius_axis and self.radius_pipe == other_radius_pipe and self.frame == other_frame # ============================================================================= # Properties diff --git a/src/compas/geometry/transformation.py b/src/compas/geometry/transformation.py index 30731c21d09..dd57474b05e 100644 --- a/src/compas/geometry/transformation.py +++ b/src/compas/geometry/transformation.py @@ -12,11 +12,6 @@ """ from compas.data import Data - -from compas.tolerance import TOL - -from compas.geometry import multiply_matrices -from compas.geometry import transpose_matrix from compas.geometry import basis_vectors_from_matrix from compas.geometry import decompose_matrix from compas.geometry import identity_matrix @@ -25,7 +20,10 @@ from compas.geometry import matrix_from_frame from compas.geometry import matrix_from_translation from compas.geometry import matrix_inverse +from compas.geometry import multiply_matrices from compas.geometry import translation_from_matrix +from compas.geometry import transpose_matrix +from compas.tolerance import TOL class Transformation(Data): @@ -498,11 +496,11 @@ def decomposed(self): True """ + from compas.geometry import Projection + from compas.geometry import Rotation # noqa: F811 from compas.geometry import Scale # noqa: F811 from compas.geometry import Shear - from compas.geometry import Rotation # noqa: F811 from compas.geometry import Translation # noqa: F811 - from compas.geometry import Projection s, h, a, t, p = decompose_matrix(self.matrix) S = Scale.from_factors(s) diff --git a/src/compas/geometry/translation.py b/src/compas/geometry/translation.py index dd9fe6a637a..4cf76f00cbc 100644 --- a/src/compas/geometry/translation.py +++ b/src/compas/geometry/translation.py @@ -11,11 +11,11 @@ Ippoliti for providing code and documentation. """ -from compas.utilities import flatten +from compas.geometry import Transformation from compas.geometry import allclose from compas.geometry import matrix_from_translation from compas.geometry import translation_from_matrix -from compas.geometry import Transformation +from compas.utilities import flatten class Translation(Transformation): diff --git a/src/compas/geometry/triangulation_earclip.py b/src/compas/geometry/triangulation_earclip.py index 5e58e4d984c..efc5788c527 100644 --- a/src/compas/geometry/triangulation_earclip.py +++ b/src/compas/geometry/triangulation_earclip.py @@ -84,9 +84,7 @@ def validate(self, points, indexes, ears): """ - not_ear_points = [ - points[i] for i in indexes if points[i] != self.coords and points[i] not in self.neighbour_coords - ] + not_ear_points = [points[i] for i in indexes if points[i] != self.coords and points[i] not in self.neighbour_coords] insides = [self.is_inside(p) for p in not_ear_points] if self.is_convex() and True not in insides: for e in ears: @@ -274,7 +272,9 @@ def earclip_polygon(polygon): """ # Orient the copy of polygon points to XY plane. - from compas.geometry import Plane, Frame, Transformation # Avoid circular import. + from compas.geometry import Frame # Avoid circular import. + from compas.geometry import Plane # Avoid circular import. + from compas.geometry import Transformation # Avoid circular import. frame = Frame.from_plane(Plane(polygon.points[0], polygon.normal)) xform = Transformation.from_frame_to_frame(frame, Frame.worldXY()) diff --git a/src/compas/geometry/trimesh_curvature.py b/src/compas/geometry/trimesh_curvature.py index 7d9347a23da..f5b2ed5b3cb 100644 --- a/src/compas/geometry/trimesh_curvature.py +++ b/src/compas/geometry/trimesh_curvature.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from math import pi -from compas.plugins import pluggable + from compas.geometry import angle_points +from compas.plugins import pluggable from compas.utilities import window diff --git a/src/compas/geometry/trimesh_descent_numpy.py b/src/compas/geometry/trimesh_descent_numpy.py index 16a1bf9e35f..7c219efa44e 100644 --- a/src/compas/geometry/trimesh_descent_numpy.py +++ b/src/compas/geometry/trimesh_descent_numpy.py @@ -1,4 +1,5 @@ from numpy import asarray + from .trimesh_gradient_numpy import trimesh_gradient_numpy diff --git a/src/compas/geometry/trimesh_geodistance.py b/src/compas/geometry/trimesh_geodistance.py index d835f00648d..bfa58e44c90 100644 --- a/src/compas/geometry/trimesh_geodistance.py +++ b/src/compas/geometry/trimesh_geodistance.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.plugins import pluggable diff --git a/src/compas/geometry/trimesh_gradient_numpy.py b/src/compas/geometry/trimesh_gradient_numpy.py index d98ad783c80..7987686fa4e 100644 --- a/src/compas/geometry/trimesh_gradient_numpy.py +++ b/src/compas/geometry/trimesh_gradient_numpy.py @@ -1,8 +1,8 @@ import numpy as np from scipy.sparse import coo_matrix # type: ignore -from compas.linalg import normrow from compas.linalg import normalizerow +from compas.linalg import normrow from compas.linalg import rot90 diff --git a/src/compas/geometry/trimesh_isolines.py b/src/compas/geometry/trimesh_isolines.py index 96d315c53c9..0c8151e7001 100644 --- a/src/compas/geometry/trimesh_isolines.py +++ b/src/compas/geometry/trimesh_isolines.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.plugins import pluggable diff --git a/src/compas/geometry/trimesh_matrices.py b/src/compas/geometry/trimesh_matrices.py index 0e85b11734f..49413a1a388 100644 --- a/src/compas/geometry/trimesh_matrices.py +++ b/src/compas/geometry/trimesh_matrices.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.plugins import pluggable diff --git a/src/compas/geometry/trimesh_matrices_numpy.py b/src/compas/geometry/trimesh_matrices_numpy.py index 063ca58be31..d3a1f2186c5 100644 --- a/src/compas/geometry/trimesh_matrices_numpy.py +++ b/src/compas/geometry/trimesh_matrices_numpy.py @@ -1,13 +1,13 @@ from numpy import asarray -from numpy import zeros -from numpy import cross from numpy import bincount +from numpy import cross +from numpy import zeros from scipy.sparse import coo_matrix from scipy.sparse import spdiags +from compas.geometry import cross_vectors from compas.geometry import dot_vectors from compas.geometry import length_vector -from compas.geometry import cross_vectors from compas.linalg import normrow diff --git a/src/compas/geometry/trimesh_parametrisation.py b/src/compas/geometry/trimesh_parametrisation.py index 812c89d5a3b..336b5b622b6 100644 --- a/src/compas/geometry/trimesh_parametrisation.py +++ b/src/compas/geometry/trimesh_parametrisation.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.plugins import pluggable diff --git a/src/compas/geometry/trimesh_pull_points_numpy.py b/src/compas/geometry/trimesh_pull_points_numpy.py index 91f656a55e3..0b686339bab 100644 --- a/src/compas/geometry/trimesh_pull_points_numpy.py +++ b/src/compas/geometry/trimesh_pull_points_numpy.py @@ -61,9 +61,7 @@ def trimesh_pull_points_numpy(M, points): def _is_point_in_edgezone(p, p0, p1): n = cross_vectors(p1 - p0, [0, 0, 1.0]) - return ( - is_ccw_xy(p0 - p0, n, p - p0) and not is_ccw_xy(p0 - p0, p1 - p0, p - p0) and not is_ccw_xy(p1 - p1, n, p - p1) - ) + return is_ccw_xy(p0 - p0, n, p - p0) and not is_ccw_xy(p0 - p0, p1 - p0, p - p0) and not is_ccw_xy(p1 - p1, n, p - p1) def _compute_point_on_segment(p, p0, p1): diff --git a/src/compas/geometry/trimesh_remeshing.py b/src/compas/geometry/trimesh_remeshing.py index 78db7807f0c..ab24279066b 100644 --- a/src/compas/geometry/trimesh_remeshing.py +++ b/src/compas/geometry/trimesh_remeshing.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.plugins import pluggable diff --git a/src/compas/geometry/trimesh_samplepoints_numpy.py b/src/compas/geometry/trimesh_samplepoints_numpy.py index ec2ffb69e0e..cfb92c8c6e0 100644 --- a/src/compas/geometry/trimesh_samplepoints_numpy.py +++ b/src/compas/geometry/trimesh_samplepoints_numpy.py @@ -1,12 +1,12 @@ from numpy import array -from numpy.random import choice -from numpy.random import rand -from numpy import sqrt -from numpy import float64 -from numpy import cross -from numpy.linalg import norm from numpy import clip +from numpy import cross from numpy import finfo +from numpy import float64 +from numpy import sqrt +from numpy.linalg import norm +from numpy.random import choice +from numpy.random import rand def trimesh_samplepoints_numpy(M, num_points=1000, return_normals=False): diff --git a/src/compas/geometry/trimesh_slicing.py b/src/compas/geometry/trimesh_slicing.py index 65ce832f04a..f1e9b114370 100644 --- a/src/compas/geometry/trimesh_slicing.py +++ b/src/compas/geometry/trimesh_slicing.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.plugins import pluggable diff --git a/src/compas/itertools.py b/src/compas/itertools.py index abed217d78c..17464c4fb57 100644 --- a/src/compas/itertools.py +++ b/src/compas/itertools.py @@ -1,14 +1,14 @@ # recipes with itertools # see: https://docs.python.org/3.6/library/itertools.html -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from itertools import islice +from functools import reduce from itertools import chain +from itertools import islice from itertools import repeat from itertools import tee -from functools import reduce from operator import mul try: diff --git a/src/compas/linalg.py b/src/compas/linalg.py index 40cd9b33032..0b9f8967617 100644 --- a/src/compas/linalg.py +++ b/src/compas/linalg.py @@ -1,13 +1,14 @@ import sys from functools import wraps + +from numpy import absolute from numpy import array from numpy import asarray from numpy import atleast_2d +from numpy import cross from numpy import nan_to_num from numpy import nonzero from numpy import sum -from numpy import absolute -from numpy import cross from numpy.linalg import cond from scipy.linalg import cho_factor # type: ignore from scipy.linalg import cho_solve # type: ignore @@ -17,7 +18,6 @@ from scipy.sparse.linalg import factorized # type: ignore from scipy.sparse.linalg import spsolve # type: ignore - # ============================================================================== # Fundamentals # ============================================================================== diff --git a/src/compas/matrices.py b/src/compas/matrices.py index 9c957b675c2..1fe48bd6abd 100644 --- a/src/compas/matrices.py +++ b/src/compas/matrices.py @@ -2,7 +2,6 @@ from numpy import array from numpy import asarray from numpy import tile - from scipy.sparse import coo_matrix # type: ignore from scipy.sparse import csr_matrix # type: ignore from scipy.sparse import diags # type: ignore diff --git a/src/compas/plugins.py b/src/compas/plugins.py index d75050a2cf0..c33b7bd45d8 100644 --- a/src/compas/plugins.py +++ b/src/compas/plugins.py @@ -150,11 +150,7 @@ def load_plugins(self): with self._discovery_lock: count = 0 - modules = [ - module_name - for _importer, module_name, is_pkg in pkgutil.iter_modules() - if is_pkg and module_name.startswith("compas") - ] + modules = [module_name for _importer, module_name, is_pkg in pkgutil.iter_modules() if is_pkg and module_name.startswith("compas")] modules_to_inspect = dict() @@ -213,11 +209,7 @@ def register_module(self, plugin_module): plugins_list.sort(key=lambda p: p.key) if self.DEBUG: - print( - 'Registered plugin with ID "{}" for extension point: {}'.format( - plugin_impl.id, plugin_opts["extension_point_url"] - ) - ) + print('Registered plugin with ID "{}" for extension point: {}'.format(plugin_impl.id, plugin_opts["extension_point_url"])) count += 1 return count @@ -286,16 +278,10 @@ def wrapper(*args, **kwargs): try: return func(*args, **kwargs) except NotImplementedError: - raise PluginNotInstalledError( - "Plugin not found and no default implementation for extension point URL: {}".format( - extension_point_url - ) - ) + raise PluginNotInstalledError("Plugin not found and no default implementation for extension point URL: {}".format(extension_point_url)) except ImportError: raise PluginDefaultNotAvailableError( - "Plugin not found and the default implementation is not available in your environment for extension point URL: {}".format( - extension_point_url - ) + "Plugin not found and the default implementation is not available in your environment for extension point URL: {}".format(extension_point_url) ) # Invoke plugin diff --git a/src/compas/rpc/__init__.py b/src/compas/rpc/__init__.py index 5fb7058af67..645f92cbbbe 100644 --- a/src/compas/rpc/__init__.py +++ b/src/compas/rpc/__init__.py @@ -2,7 +2,8 @@ COMPAS runs in many different environments, but in some environments the availablity of libraries is limited. For example, when running COMPAS in an IronPython-based environment like Rhino/Grasshopper, plenty of CPython libraries such as `numpy` and `scipy` are not available. -To workaround this limitation, COMPAS provides a mechanisms to access the functionality of a CPython environment seemlessly from any other Python environment through a "Remote Procedure Call" or RPC. +To workaround this limitation, COMPAS provides a mechanisms to access the functionality of a CPython environment seemlessly +from any other Python environment through a "Remote Procedure Call" or RPC. Through RPC, COMPAS can be used as a server for remote clients, and as a client for remote servers. A typical use case is to run algorithms that require packages like ``numpy`` or ``scipy`` on a remote server, when working in Rhino. Or to use COMPAS in a browser application. diff --git a/src/compas/rpc/dispatcher.py b/src/compas/rpc/dispatcher.py index 85fd48bbcb7..82ec6bc8040 100644 --- a/src/compas/rpc/dispatcher.py +++ b/src/compas/rpc/dispatcher.py @@ -122,10 +122,7 @@ def _dispatch(self, name, args): try: idict = json.loads(args[0], cls=DataDecoder) except (IndexError, TypeError): - odict["error"] = ( - "API methods require a single JSON encoded dictionary as input.\n" - "For example: input = json.dumps({'param_1': 1, 'param_2': [2, 3]})" - ) + odict["error"] = "API methods require a single JSON encoded dictionary as input.\n" "For example: input = json.dumps({'param_1': 1, 'param_2': [2, 3]})" else: self._call(function, idict, odict) diff --git a/src/compas/rpc/errors.py b/src/compas/rpc/errors.py index 764fbb72fc6..89d37f6881b 100644 --- a/src/compas/rpc/errors.py +++ b/src/compas/rpc/errors.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function class RPCServerError(Exception): diff --git a/src/compas/rpc/proxy.py b/src/compas/rpc/proxy.py index 77fffa555bc..650c9f9efbf 100644 --- a/src/compas/rpc/proxy.py +++ b/src/compas/rpc/proxy.py @@ -7,9 +7,9 @@ import compas import compas._os -from compas.rpc import RPCServerError from compas.data import DataDecoder from compas.data import DataEncoder +from compas.rpc import RPCServerError try: from xmlrpclib import ServerProxy @@ -17,8 +17,8 @@ from xmlrpc.client import ServerProxy try: - from subprocess import Popen from subprocess import PIPE + from subprocess import Popen except ImportError: from System.Diagnostics import Process @@ -284,9 +284,7 @@ def start_server(self): self._process.StartInfo.RedirectStandardOutput = self.capture_output self._process.StartInfo.RedirectStandardError = self.capture_output self._process.StartInfo.FileName = self.python - self._process.StartInfo.Arguments = "-m {0} --port {1} --{2}autoreload".format( - self.service, self._port, "" if self.autoreload else "no-" - ) + self._process.StartInfo.Arguments = "-m {0} --port {1} --{2}autoreload".format(self.service, self._port, "" if self.autoreload else "no-") self._process.Start() else: args = [ diff --git a/src/compas/rpc/server.py b/src/compas/rpc/server.py index 92952a00279..c33a4665bcb 100644 --- a/src/compas/rpc/server.py +++ b/src/compas/rpc/server.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import threading diff --git a/src/compas/rpc/services/default.py b/src/compas/rpc/services/default.py index 3d1147071c6..33ef2dd751e 100644 --- a/src/compas/rpc/services/default.py +++ b/src/compas/rpc/services/default.py @@ -5,8 +5,8 @@ """ -from compas.rpc import Server from compas.rpc import Dispatcher +from compas.rpc import Server from .watcher import FileWatcherService diff --git a/src/compas/scene/assemblyobject.py b/src/compas/scene/assemblyobject.py index c8879b4b7c8..878841c1840 100644 --- a/src/compas/scene/assemblyobject.py +++ b/src/compas/scene/assemblyobject.py @@ -1,3 +1,3 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function diff --git a/src/compas/scene/context.py b/src/compas/scene/context.py index 872177dcb1d..d083023fa0f 100644 --- a/src/compas/scene/context.py +++ b/src/compas/scene/context.py @@ -137,9 +137,7 @@ def _get_sceneobject_cls(data, **kwargs): break if cls is None: - raise SceneObjectNotRegisteredError( - "No scene object is registered for this data type: {} in this context: {}".format(dtype, context_name) - ) + raise SceneObjectNotRegisteredError("No scene object is registered for this data type: {} in this context: {}".format(dtype, context_name)) return cls @@ -149,9 +147,7 @@ def get_sceneobject_cls(item, **kwargs): register_scene_objects() if item is None: - raise ValueError( - "Cannot create a scene object for None. Please ensure you pass a instance of a supported class." - ) + raise ValueError("Cannot create a scene object for None. Please ensure you pass a instance of a supported class.") cls = _get_sceneobject_cls(item, **kwargs) PluginValidator.ensure_implementations(cls) diff --git a/src/compas/scene/exceptions.py b/src/compas/scene/exceptions.py index 215f269a750..6b9882e324e 100644 --- a/src/compas/scene/exceptions.py +++ b/src/compas/scene/exceptions.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function class SceneObjectNotRegisteredError(Exception): diff --git a/src/compas/scene/geometryobject.py b/src/compas/scene/geometryobject.py index f1a060525aa..45ffbd8336e 100644 --- a/src/compas/scene/geometryobject.py +++ b/src/compas/scene/geometryobject.py @@ -1,9 +1,9 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from .sceneobject import SceneObject from .descriptors.color import ColorAttribute +from .sceneobject import SceneObject class GeometryObject(SceneObject): diff --git a/src/compas/scene/graphobject.py b/src/compas/scene/graphobject.py index f3c4736b054..bc1651dfc3d 100644 --- a/src/compas/scene/graphobject.py +++ b/src/compas/scene/graphobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.geometry import transform_points -from .sceneobject import SceneObject + from .descriptors.colordict import ColorDictAttribute +from .sceneobject import SceneObject class GraphObject(SceneObject): diff --git a/src/compas/scene/meshobject.py b/src/compas/scene/meshobject.py index 1d665568b15..715e24477f8 100644 --- a/src/compas/scene/meshobject.py +++ b/src/compas/scene/meshobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.geometry import transform_points -from .sceneobject import SceneObject + from .descriptors.colordict import ColorDictAttribute +from .sceneobject import SceneObject class MeshObject(SceneObject): diff --git a/src/compas/scene/scene.py b/src/compas/scene/scene.py index 93e2551e15c..b181691740d 100644 --- a/src/compas/scene/scene.py +++ b/src/compas/scene/scene.py @@ -3,9 +3,9 @@ from compas.datastructures import Tree from compas.datastructures import TreeNode -from .context import clear -from .context import before_draw from .context import after_draw +from .context import before_draw +from .context import clear from .context import detect_current_context from .sceneobject import SceneObject @@ -104,11 +104,7 @@ def add(self, item, parent=None, **kwargs): else: if "context" in kwargs: if kwargs["context"] != self.context: - raise Exception( - "Object context should be the same as scene context: {} != {}".format( - kwargs["context"], self.context - ) - ) + raise Exception("Object context should be the same as scene context: {} != {}".format(kwargs["context"], self.context)) del kwargs["context"] # otherwist the SceneObject receives "context" twice, which results in an error sceneobject = SceneObject(item, context=self.context, **kwargs) # type: ignore super(Scene, self).add(sceneobject, parent=parent) diff --git a/src/compas/scene/sceneobject.py b/src/compas/scene/sceneobject.py index 3c8607e36da..28798162a23 100644 --- a/src/compas/scene/sceneobject.py +++ b/src/compas/scene/sceneobject.py @@ -3,20 +3,20 @@ from __future__ import print_function from abc import abstractmethod -from .descriptors.protocol import DescriptorProtocol -from .descriptors.color import ColorAttribute -from .context import clear -from .context import get_sceneobject_cls +from functools import reduce +from operator import mul import compas.colors # noqa: F401 import compas.datastructures # noqa: F401 import compas.geometry # noqa: F401 - -from compas.datastructures import TreeNode from compas.colors import Color +from compas.datastructures import TreeNode from compas.geometry import Transformation -from functools import reduce -from operator import mul + +from .context import clear +from .context import get_sceneobject_cls +from .descriptors.color import ColorAttribute +from .descriptors.protocol import DescriptorProtocol class SceneObject(TreeNode): @@ -94,7 +94,7 @@ def __init__( frame=None, # type: compas.geometry.Frame | None transformation=None, # type: compas.geometry.Transformation | None context=None, # type: str | None - **kwargs # type: dict + **kwargs, # type: dict ): # type: (...) -> None name = name or item.name super(SceneObject, self).__init__(name=name, **kwargs) @@ -238,11 +238,7 @@ def add(self, item, **kwargs): else: if "context" in kwargs: if kwargs["context"] != self.context: - raise Exception( - "Child context should be the same as parent context: {} != {}".format( - kwargs["context"], self.context - ) - ) + raise Exception("Child context should be the same as parent context: {} != {}".format(kwargs["context"], self.context)) del kwargs["context"] # otherwist the SceneObject receives "context" twice, which results in an error sceneobject = SceneObject(item, context=self.context, **kwargs) # type: ignore diff --git a/src/compas/scene/volmeshobject.py b/src/compas/scene/volmeshobject.py index 6c1b3761719..6ca1135b651 100644 --- a/src/compas/scene/volmeshobject.py +++ b/src/compas/scene/volmeshobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.geometry import transform_points -from .sceneobject import SceneObject + from .descriptors.colordict import ColorDictAttribute +from .sceneobject import SceneObject class VolMeshObject(SceneObject): diff --git a/src/compas/tolerance.py b/src/compas/tolerance.py index 4a0b619cdd0..e8ff6c2d3f7 100644 --- a/src/compas/tolerance.py +++ b/src/compas/tolerance.py @@ -2,14 +2,14 @@ The tolerance module provides functionality to deal with tolerances consistently across all other COMPAS packages. """ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from compas.data import Data from decimal import Decimal import compas +from compas.data import Data __all__ = ["Tolerance", "TOL"] @@ -537,10 +537,7 @@ def is_allclose(self, A, B, rtol=None, atol=None): """ rtol = rtol or self.relative atol = atol or self.absolute - return all( - self.is_allclose(a, b, rtol, atol) if hasattr(a, "__iter__") else self.compare(a, b, rtol, atol) - for a, b in zip(A, B) - ) + return all(self.is_allclose(a, b, rtol, atol) if hasattr(a, "__iter__") else self.compare(a, b, rtol, atol) for a, b in zip(A, B)) def is_angle_zero(self, a, tol=None): """Check if an angle is close enough to zero to be considered zero. diff --git a/src/compas/topology/combinatorics.py b/src/compas/topology/combinatorics.py index a5d5e1d802b..30923d9a696 100644 --- a/src/compas/topology/combinatorics.py +++ b/src/compas/topology/combinatorics.py @@ -1,8 +1,9 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from collections import deque + from compas.topology.traversal import breadth_first_traverse diff --git a/src/compas/topology/connectivity.py b/src/compas/topology/connectivity.py index 27c7c4ebee2..f271290c714 100644 --- a/src/compas/topology/connectivity.py +++ b/src/compas/topology/connectivity.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.itertools import pairwise diff --git a/src/compas/topology/orientation.py b/src/compas/topology/orientation.py index 20a1f3c8712..695e4750026 100644 --- a/src/compas/topology/orientation.py +++ b/src/compas/topology/orientation.py @@ -1,11 +1,12 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import random -from compas.topology import breadth_first_traverse + from compas.geometry import centroid_points from compas.itertools import pairwise +from compas.topology import breadth_first_traverse def _closest_faces(vertices, faces, nmax=10, radius=10.0): @@ -24,9 +25,9 @@ def _closest_faces(vertices, faces, nmax=10, radius=10.0): except Exception: try: + from Rhino.Geometry import Point3d # type: ignore from Rhino.Geometry import RTree # type: ignore from Rhino.Geometry import Sphere # type: ignore - from Rhino.Geometry import Point3d # type: ignore except Exception: from compas.geometry import KDTree diff --git a/src/compas/topology/traversal.py b/src/compas/topology/traversal.py index b577cd014d6..d185d430130 100644 --- a/src/compas/topology/traversal.py +++ b/src/compas/topology/traversal.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function try: from queue import PriorityQueue @@ -11,7 +11,6 @@ from compas.geometry import distance_point_point - # ============================================================================== # DFS # ============================================================================== diff --git a/src/compas/utilities/datetime.py b/src/compas/utilities/datetime.py index 6fd18ca91dd..b5d5611f670 100644 --- a/src/compas/utilities/datetime.py +++ b/src/compas/utilities/datetime.py @@ -1,9 +1,9 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -import time import datetime +import time def timestamp(): diff --git a/src/compas/utilities/decorators.py b/src/compas/utilities/decorators.py index c9ce27c0886..b39bf31df55 100644 --- a/src/compas/utilities/decorators.py +++ b/src/compas/utilities/decorators.py @@ -1,10 +1,9 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import functools import pstats - from functools import wraps try: diff --git a/src/compas/utilities/maps.py b/src/compas/utilities/maps.py index c60e1607d91..bd555f8c98a 100644 --- a/src/compas/utilities/maps.py +++ b/src/compas/utilities/maps.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import compas diff --git a/src/compas/utilities/remote.py b/src/compas/utilities/remote.py index 464880169d4..6da13c40bd4 100644 --- a/src/compas/utilities/remote.py +++ b/src/compas/utilities/remote.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import os diff --git a/src/compas_blender/collections.py b/src/compas_blender/collections.py index dbe4558764d..98a590917e4 100644 --- a/src/compas_blender/collections.py +++ b/src/compas_blender/collections.py @@ -1,5 +1,7 @@ +from typing import List +from typing import Text + import bpy # type: ignore -from typing import List, Text from compas_blender.objects import delete_objects diff --git a/src/compas_blender/conversions/curves.py b/src/compas_blender/conversions/curves.py index b39b3d8298b..9d850feb036 100644 --- a/src/compas_blender/conversions/curves.py +++ b/src/compas_blender/conversions/curves.py @@ -4,9 +4,8 @@ from compas.geometry import Circle from compas.geometry import Line -from compas.geometry import Polyline from compas.geometry import NurbsCurve - +from compas.geometry import Polyline # ============================================================================= # To Blender diff --git a/src/compas_blender/conversions/geometry.py b/src/compas_blender/conversions/geometry.py index 25f2ff87c82..430e8af9898 100644 --- a/src/compas_blender/conversions/geometry.py +++ b/src/compas_blender/conversions/geometry.py @@ -2,14 +2,13 @@ import bpy # type: ignore +from compas.geometry import Cylinder + # import bmesh # type: ignore # import mathutils # type: ignore - from compas.geometry import Point from compas.geometry import Pointcloud from compas.geometry import Sphere -from compas.geometry import Cylinder - # ============================================================================= # To Blender @@ -33,9 +32,7 @@ def point_to_blender_sphere(point: Point) -> bpy.types.Object: raise NotImplementedError -def pointcloud_to_blender( - pointcloud: Pointcloud, radius: float = 0.05, u: int = 16, v: int = 16, name: Optional[str] = None -) -> bpy.types.Object: +def pointcloud_to_blender(pointcloud: Pointcloud, radius: float = 0.05, u: int = 16, v: int = 16, name: Optional[str] = None) -> bpy.types.Object: """Convert a COMPAS pointcloud to a Blender pointcloud. Parameters diff --git a/src/compas_blender/conversions/meshes.py b/src/compas_blender/conversions/meshes.py index a92483cb162..e81800e717b 100644 --- a/src/compas_blender/conversions/meshes.py +++ b/src/compas_blender/conversions/meshes.py @@ -1,10 +1,10 @@ from typing import Optional -import bpy # type: ignore import bmesh # type: ignore +import bpy # type: ignore -from compas.geometry import Translation from compas.datastructures import Mesh +from compas.geometry import Translation # To Do # ----- diff --git a/src/compas_blender/conversions/surfaces.py b/src/compas_blender/conversions/surfaces.py index ead438fbf3a..53343e5c796 100644 --- a/src/compas_blender/conversions/surfaces.py +++ b/src/compas_blender/conversions/surfaces.py @@ -1,6 +1,6 @@ import bpy # type: ignore -from compas.geometry import NurbsSurface +from compas.geometry import NurbsSurface # ============================================================================= # To Blender diff --git a/src/compas_blender/conversions/transformations.py b/src/compas_blender/conversions/transformations.py index 993452414db..20242080847 100644 --- a/src/compas_blender/conversions/transformations.py +++ b/src/compas_blender/conversions/transformations.py @@ -1,6 +1,6 @@ import mathutils # type: ignore -from compas.geometry import Transformation +from compas.geometry import Transformation # ============================================================================= # To Blender diff --git a/src/compas_blender/geometry/booleans.py b/src/compas_blender/geometry/booleans.py index b60c0f5b543..76d80b94603 100644 --- a/src/compas_blender/geometry/booleans.py +++ b/src/compas_blender/geometry/booleans.py @@ -1,4 +1,5 @@ import bpy # type: ignore + from compas.plugins import plugin @@ -78,9 +79,9 @@ def boolean_intersection_mesh_mesh(A, B, remesh=False): def _boolean_operation(A, B, method): - from compas_blender.utilities import draw_mesh from compas_blender.utilities import delete_object from compas_blender.utilities import delete_unused_data + from compas_blender.utilities import draw_mesh A = draw_mesh(*A) B = draw_mesh(*B) diff --git a/src/compas_blender/install.py b/src/compas_blender/install.py index 43e4c7480be..2a198c5e272 100644 --- a/src/compas_blender/install.py +++ b/src/compas_blender/install.py @@ -3,11 +3,9 @@ import os import sys -import compas_blender - import compas._os import compas.plugins - +import compas_blender INSTALLED_VERSION = None @@ -213,9 +211,7 @@ def _run_post_execution_steps(steps_generator): all_steps_succeeded = False print(" {} {}: {}".format(package.ljust(20), status, message)) except ValueError: - post_execution_errors.append( - ValueError("Step ran without errors but result is wrongly formatted: {}".format(str(item))) - ) + post_execution_errors.append(ValueError("Step ran without errors but result is wrongly formatted: {}".format(str(item)))) if post_execution_errors: print("\nOne or more errors occurred:\n") diff --git a/src/compas_blender/objects.py b/src/compas_blender/objects.py index b5e41a39c2c..0233f7b7129 100644 --- a/src/compas_blender/objects.py +++ b/src/compas_blender/objects.py @@ -1,9 +1,11 @@ +from typing import Iterable +from typing import List +from typing import Text + import bpy # type: ignore -from typing import List, Iterable, Text from compas_blender.data import delete_unused_data - # ============================================================================== # Delete # ============================================================================== diff --git a/src/compas_blender/print_python_path.py b/src/compas_blender/print_python_path.py index 57d20b01f0e..eee9622e009 100644 --- a/src/compas_blender/print_python_path.py +++ b/src/compas_blender/print_python_path.py @@ -1,6 +1,5 @@ import compas_blender - if __name__ == "__main__": import argparse diff --git a/src/compas_blender/scene/boxobject.py b/src/compas_blender/scene/boxobject.py index 43955336ec1..05f0da9b9fd 100644 --- a/src/compas_blender/scene/boxobject.py +++ b/src/compas_blender/scene/boxobject.py @@ -4,12 +4,11 @@ import bpy # type: ignore -from compas.geometry import Box from compas.colors import Color - +from compas.geometry import Box +from compas.scene import GeometryObject from compas_blender import conversions -from compas.scene import GeometryObject from .sceneobject import BlenderSceneObject diff --git a/src/compas_blender/scene/capsuleobject.py b/src/compas_blender/scene/capsuleobject.py index 131c3948865..340c6d8cfef 100644 --- a/src/compas_blender/scene/capsuleobject.py +++ b/src/compas_blender/scene/capsuleobject.py @@ -3,12 +3,11 @@ import bpy # type: ignore -from compas.geometry import Capsule from compas.colors import Color - +from compas.geometry import Capsule +from compas.scene import GeometryObject from compas_blender import conversions -from compas.scene import GeometryObject from .sceneobject import BlenderSceneObject diff --git a/src/compas_blender/scene/circleobject.py b/src/compas_blender/scene/circleobject.py index 5443966c5b8..3a5a15b18a0 100644 --- a/src/compas_blender/scene/circleobject.py +++ b/src/compas_blender/scene/circleobject.py @@ -3,10 +3,10 @@ import bpy # type: ignore -from compas.geometry import Circle from compas.colors import Color - +from compas.geometry import Circle from compas.scene import GeometryObject + from .sceneobject import BlenderSceneObject diff --git a/src/compas_blender/scene/coneobject.py b/src/compas_blender/scene/coneobject.py index 23edebdafe5..b7b6ea7aeca 100644 --- a/src/compas_blender/scene/coneobject.py +++ b/src/compas_blender/scene/coneobject.py @@ -3,12 +3,11 @@ import bpy # type: ignore -from compas.geometry import Cone from compas.colors import Color - +from compas.geometry import Cone +from compas.scene import GeometryObject from compas_blender import conversions -from compas.scene import GeometryObject from .sceneobject import BlenderSceneObject diff --git a/src/compas_blender/scene/curveobject.py b/src/compas_blender/scene/curveobject.py index 779f7cdaac4..39244369711 100644 --- a/src/compas_blender/scene/curveobject.py +++ b/src/compas_blender/scene/curveobject.py @@ -3,11 +3,11 @@ import bpy # type: ignore -from compas.geometry import Curve from compas.colors import Color +from compas.geometry import Curve +from compas.scene import GeometryObject from compas_blender import conversions -from compas.scene import GeometryObject from .sceneobject import BlenderSceneObject diff --git a/src/compas_blender/scene/cylinderobject.py b/src/compas_blender/scene/cylinderobject.py index 86cff3c060a..ae7e198d3a9 100644 --- a/src/compas_blender/scene/cylinderobject.py +++ b/src/compas_blender/scene/cylinderobject.py @@ -3,12 +3,11 @@ import bpy # type: ignore -from compas.geometry import Cylinder from compas.colors import Color - +from compas.geometry import Cylinder +from compas.scene import GeometryObject from compas_blender import conversions -from compas.scene import GeometryObject from .sceneobject import BlenderSceneObject diff --git a/src/compas_blender/scene/frameobject.py b/src/compas_blender/scene/frameobject.py index c7152a8c571..8c58e5d1fbb 100644 --- a/src/compas_blender/scene/frameobject.py +++ b/src/compas_blender/scene/frameobject.py @@ -3,15 +3,14 @@ import bpy # type: ignore +from compas.colors import Color from compas.geometry import Frame from compas.geometry import Line -from compas.colors import Color - from compas.scene import GeometryObject -from .sceneobject import BlenderSceneObject - from compas_blender import conversions +from .sceneobject import BlenderSceneObject + class FrameObject(BlenderSceneObject, GeometryObject): """Scene object for drawing frames in Blender. diff --git a/src/compas_blender/scene/graphobject.py b/src/compas_blender/scene/graphobject.py index 4e8e8e1e031..f33a4145ab5 100644 --- a/src/compas_blender/scene/graphobject.py +++ b/src/compas_blender/scene/graphobject.py @@ -8,15 +8,14 @@ import bpy # type: ignore import compas_blender -from compas.datastructures import Graph from compas.colors import Color +from compas.datastructures import Graph from compas.geometry import Line - from compas.scene import GraphObject as BaseSceneObject -from .sceneobject import BlenderSceneObject - from compas_blender import conversions +from .sceneobject import BlenderSceneObject + class GraphObject(BlenderSceneObject, BaseSceneObject): """Scene object for drawing graph data structures in Blender. @@ -186,9 +185,7 @@ def draw_edges( for u, v in edges or self.graph.edges(): # type: ignore name = f"{self.graph.name}.edge.{u}-{v}" # type: ignore color = self.edgecolor[u, v] # type: ignore - curve = conversions.line_to_blender_curve( - Line(self.graph.nodes_attributes("xyz")[u], self.graph.nodes_attributes("xyz")[v]) - ) + curve = conversions.line_to_blender_curve(Line(self.graph.nodes_attributes("xyz")[u], self.graph.nodes_attributes("xyz")[v])) obj = self.create_object(curve, name=name) self.update_object(obj, color=color, collection=collection) diff --git a/src/compas_blender/scene/lineobject.py b/src/compas_blender/scene/lineobject.py index 98d49fa6f40..88cd3c96b9f 100644 --- a/src/compas_blender/scene/lineobject.py +++ b/src/compas_blender/scene/lineobject.py @@ -3,12 +3,11 @@ import bpy # type: ignore -from compas.geometry import Line from compas.colors import Color - +from compas.geometry import Line +from compas.scene import GeometryObject from compas_blender import conversions -from compas.scene import GeometryObject from .sceneobject import BlenderSceneObject diff --git a/src/compas_blender/scene/meshobject.py b/src/compas_blender/scene/meshobject.py index ea809e503a0..22ba36beebd 100644 --- a/src/compas_blender/scene/meshobject.py +++ b/src/compas_blender/scene/meshobject.py @@ -8,20 +8,19 @@ import bpy # type: ignore import compas_blender +from compas.colors import Color from compas.datastructures import Mesh +from compas.geometry import Cylinder from compas.geometry import Line from compas.geometry import Sphere -from compas.geometry import Cylinder from compas.geometry import add_vectors from compas.geometry import centroid_points from compas.geometry import scale_vector -from compas.colors import Color - from compas.scene import MeshObject as BaseMeshObject -from .sceneobject import BlenderSceneObject - from compas_blender import conversions +from .sceneobject import BlenderSceneObject + class MeshObject(BlenderSceneObject, BaseMeshObject): """Scene object for drawing mesh data structures in Blender. @@ -80,9 +79,7 @@ def clear_faces(self): # draw # ========================================================================== - def draw( - self, color: Optional[Color] = None, collection: Optional[str] = None, show_wire: bool = True - ) -> list[bpy.types.Object]: + def draw(self, color: Optional[Color] = None, collection: Optional[str] = None, show_wire: bool = True) -> list[bpy.types.Object]: """Draw the mesh. Parameters diff --git a/src/compas_blender/scene/planeobject.py b/src/compas_blender/scene/planeobject.py index 57ba280e5f6..320692d2f90 100644 --- a/src/compas_blender/scene/planeobject.py +++ b/src/compas_blender/scene/planeobject.py @@ -3,16 +3,15 @@ import bpy # type: ignore -from compas.geometry import Plane -from compas.geometry import Line -from compas.geometry import Frame from compas.colors import Color - +from compas.geometry import Frame +from compas.geometry import Line +from compas.geometry import Plane from compas.scene import GeometryObject -from .sceneobject import BlenderSceneObject - from compas_blender import conversions +from .sceneobject import BlenderSceneObject + class PlaneObject(BlenderSceneObject, GeometryObject): """Scene object for drawing planes in Blender. diff --git a/src/compas_blender/scene/pointcloudobject.py b/src/compas_blender/scene/pointcloudobject.py index 50eff35e243..26093a3e9bb 100644 --- a/src/compas_blender/scene/pointcloudobject.py +++ b/src/compas_blender/scene/pointcloudobject.py @@ -3,14 +3,13 @@ import bpy # type: ignore -from compas.geometry import Point from compas.colors import Color - +from compas.geometry import Point from compas.scene import GeometryObject -from .sceneobject import BlenderSceneObject - from compas_blender import conversions +from .sceneobject import BlenderSceneObject + class PointcloudObject(BlenderSceneObject, GeometryObject): """Scene object for drawing pointclouds in Blender. diff --git a/src/compas_blender/scene/pointobject.py b/src/compas_blender/scene/pointobject.py index 997078cbfe8..3da3c63d083 100644 --- a/src/compas_blender/scene/pointobject.py +++ b/src/compas_blender/scene/pointobject.py @@ -3,10 +3,10 @@ import bpy # type: ignore -from compas.geometry import Point from compas.colors import Color - +from compas.geometry import Point from compas.scene import GeometryObject + from .sceneobject import BlenderSceneObject diff --git a/src/compas_blender/scene/polygonobject.py b/src/compas_blender/scene/polygonobject.py index 8feabb6890d..2bbef35640d 100644 --- a/src/compas_blender/scene/polygonobject.py +++ b/src/compas_blender/scene/polygonobject.py @@ -3,12 +3,11 @@ import bpy # type: ignore -from compas.geometry import Polygon from compas.colors import Color - +from compas.geometry import Polygon +from compas.scene import GeometryObject from compas_blender import conversions -from compas.scene import GeometryObject from .sceneobject import BlenderSceneObject diff --git a/src/compas_blender/scene/polyhedronobject.py b/src/compas_blender/scene/polyhedronobject.py index d53868a6b1c..8e0384087cc 100644 --- a/src/compas_blender/scene/polyhedronobject.py +++ b/src/compas_blender/scene/polyhedronobject.py @@ -2,14 +2,14 @@ from typing import Optional import bpy # type: ignore -from compas.geometry import Polyhedron -from compas.colors import Color +from compas.colors import Color +from compas.geometry import Polyhedron from compas.scene import GeometryObject -from .sceneobject import BlenderSceneObject - from compas_blender import conversions +from .sceneobject import BlenderSceneObject + class PolyhedronObject(BlenderSceneObject, GeometryObject): """Scene object for drawing polyhedron shapes in Blender. @@ -26,9 +26,7 @@ class PolyhedronObject(BlenderSceneObject, GeometryObject): def __init__(self, polyhedron: Polyhedron, **kwargs: Any): super().__init__(geometry=polyhedron, **kwargs) - def draw( - self, color: Optional[Color] = None, collection: Optional[str] = None, show_wire: bool = True - ) -> list[bpy.types.Object]: + def draw(self, color: Optional[Color] = None, collection: Optional[str] = None, show_wire: bool = True) -> list[bpy.types.Object]: """Draw the polyhedron associated with the scene object. Parameters diff --git a/src/compas_blender/scene/polylineobject.py b/src/compas_blender/scene/polylineobject.py index 61218cce996..51ec93c40d1 100644 --- a/src/compas_blender/scene/polylineobject.py +++ b/src/compas_blender/scene/polylineobject.py @@ -3,14 +3,13 @@ import bpy # type: ignore -from compas.geometry import Polyline from compas.colors import Color - +from compas.geometry import Polyline from compas.scene import GeometryObject -from .sceneobject import BlenderSceneObject - from compas_blender import conversions +from .sceneobject import BlenderSceneObject + class PolylineObject(BlenderSceneObject, GeometryObject): """Scene object for drawing polylines in Blender. diff --git a/src/compas_blender/scene/sceneobject.py b/src/compas_blender/scene/sceneobject.py index 255d0b28999..6edf60dfe64 100644 --- a/src/compas_blender/scene/sceneobject.py +++ b/src/compas_blender/scene/sceneobject.py @@ -1,14 +1,13 @@ from typing import Any -from typing import Union from typing import Optional +from typing import Union import bpy # type: ignore -import compas_blender +import compas_blender from compas.colors import Color -from compas.scene import SceneObject from compas.geometry import Transformation - +from compas.scene import SceneObject from compas_blender import conversions @@ -40,9 +39,7 @@ def __init__(self, **kwargs: Any): # Objects # ============================================================================= - def create_object( - self, geometry: Union[bpy.types.Mesh, bpy.types.Curve], name: Optional[str] = None - ) -> bpy.types.Object: + def create_object(self, geometry: Union[bpy.types.Mesh, bpy.types.Curve], name: Optional[str] = None) -> bpy.types.Object: """Add an object to the Blender scene. Parameters @@ -105,9 +102,7 @@ def update_object( self.set_object_tranformation(obj, transformation) self.add_object_to_collection(obj, collection) - def add_object_to_collection( - self, obj: bpy.types.Object, name: Optional[str] = None, do_unlink: Optional[bool] = True - ) -> bpy.types.Collection: + def add_object_to_collection(self, obj: bpy.types.Object, name: Optional[str] = None, do_unlink: Optional[bool] = True) -> bpy.types.Collection: """Add an object to a collection. Parameters diff --git a/src/compas_blender/scene/sphereobject.py b/src/compas_blender/scene/sphereobject.py index dfe2eb43154..23faba0974f 100644 --- a/src/compas_blender/scene/sphereobject.py +++ b/src/compas_blender/scene/sphereobject.py @@ -1,16 +1,15 @@ -from typing import Optional from typing import Any +from typing import Optional import bpy # type: ignore -from compas.geometry import Sphere from compas.colors import Color - +from compas.geometry import Sphere from compas.scene import GeometryObject -from .sceneobject import BlenderSceneObject - from compas_blender import conversions +from .sceneobject import BlenderSceneObject + class SphereObject(BlenderSceneObject, GeometryObject): """Scene object for drawing sphere shapes in Blender. diff --git a/src/compas_blender/scene/surfaceobject.py b/src/compas_blender/scene/surfaceobject.py index ce0c87602eb..94160250b9e 100644 --- a/src/compas_blender/scene/surfaceobject.py +++ b/src/compas_blender/scene/surfaceobject.py @@ -3,14 +3,13 @@ import bpy # type: ignore -from compas.geometry import Surface from compas.colors import Color - +from compas.geometry import Surface from compas.scene import GeometryObject -from .sceneobject import BlenderSceneObject - from compas_blender import conversions +from .sceneobject import BlenderSceneObject + class SurfaceObject(BlenderSceneObject, GeometryObject): """Scene object for drawing surfaces in Blender. diff --git a/src/compas_blender/scene/torusobject.py b/src/compas_blender/scene/torusobject.py index 1fec886ef85..afffad83505 100644 --- a/src/compas_blender/scene/torusobject.py +++ b/src/compas_blender/scene/torusobject.py @@ -1,16 +1,15 @@ -from typing import Optional from typing import Any +from typing import Optional import bpy # type: ignore -from compas.geometry import Torus from compas.colors import Color - +from compas.geometry import Torus from compas.scene import GeometryObject -from .sceneobject import BlenderSceneObject - from compas_blender import conversions +from .sceneobject import BlenderSceneObject + class TorusObject(BlenderSceneObject, GeometryObject): """Scene object for drawing torus shapes in Blender. diff --git a/src/compas_blender/scene/vectorobject.py b/src/compas_blender/scene/vectorobject.py index e16325855ca..599434f3d0a 100644 --- a/src/compas_blender/scene/vectorobject.py +++ b/src/compas_blender/scene/vectorobject.py @@ -3,16 +3,15 @@ import bpy # type: ignore +from compas.colors import Color +from compas.geometry import Line from compas.geometry import Point from compas.geometry import Vector -from compas.geometry import Line -from compas.colors import Color - from compas.scene import GeometryObject -from .sceneobject import BlenderSceneObject - from compas_blender import conversions +from .sceneobject import BlenderSceneObject + class VectorObject(BlenderSceneObject, GeometryObject): """Scene object for drawing vectors in Blender. diff --git a/src/compas_blender/scene/volmeshobject.py b/src/compas_blender/scene/volmeshobject.py index eab52c10b47..545a253c132 100644 --- a/src/compas_blender/scene/volmeshobject.py +++ b/src/compas_blender/scene/volmeshobject.py @@ -1,25 +1,23 @@ -from typing import Optional -from typing import Union from typing import Any -from typing import List from typing import Dict +from typing import List +from typing import Optional from typing import Tuple +from typing import Union import bpy # type: ignore import compas_blender - +from compas.colors import Color +from compas.geometry import Line from compas.geometry import add_vectors -from compas.geometry import scale_vector from compas.geometry import centroid_points -from compas.geometry import Line -from compas.colors import Color - +from compas.geometry import scale_vector from compas.scene import VolMeshObject as BaseVolMeshObject -from .sceneobject import BlenderSceneObject - from compas_blender import conversions +from .sceneobject import BlenderSceneObject + class VolMeshObject(BlenderSceneObject, BaseVolMeshObject): """A scene object for drawing volumetric mesh data structures in Blender. @@ -91,9 +89,7 @@ def clear_cells(self): # draw # ========================================================================== - def draw( - self, cells: Optional[List[int]] = None, color: Optional[Color] = None, collection: Optional[str] = None - ) -> list[bpy.types.Object]: + def draw(self, cells: Optional[List[int]] = None, color: Optional[Color] = None, collection: Optional[str] = None) -> list[bpy.types.Object]: """Draw a selection of cells. Parameters @@ -196,9 +192,7 @@ def draw_edges( for u, v in edges or self.volmesh.edges(): # type: ignore name = f"{self.volmesh.name}.edge.{u}-{v}" # type: ignore color = self.edgecolor[u, v] # type: ignore - curve = conversions.line_to_blender_curve( - Line(self.volmesh.vertices_attributes("xyz")[u], self.volmesh.vertices_attributes("xyz")[v]) - ) + curve = conversions.line_to_blender_curve(Line(self.volmesh.vertices_attributes("xyz")[u], self.volmesh.vertices_attributes("xyz")[v])) obj = self.create_object(curve, name=name) self.update_object(obj, color=color, collection=collection) # type: ignore diff --git a/src/compas_blender/utilities/drawing.py b/src/compas_blender/utilities/drawing.py index 3c893fe2929..4b88f823e2a 100644 --- a/src/compas_blender/utilities/drawing.py +++ b/src/compas_blender/utilities/drawing.py @@ -1,17 +1,15 @@ from typing import Dict from typing import List -from typing import Union -from typing import Tuple from typing import Text +from typing import Tuple +from typing import Union import bpy # type: ignore -from compas_blender.collections import create_collection - from compas.geometry import centroid_points from compas.geometry import distance_point_point from compas.geometry import subtract_vectors - +from compas_blender.collections import create_collection RGBColor = Union[Tuple[int, int, int], Tuple[float, float, float]] diff --git a/src/compas_ghpython/__init__.py b/src/compas_ghpython/__init__.py index b22a705d2df..9ba75898e75 100644 --- a/src/compas_ghpython/__init__.py +++ b/src/compas_ghpython/__init__.py @@ -78,9 +78,7 @@ def get_grasshopper_managedplugin_path(version): raise NotImplementedError if not os.path.exists(gh_managedplugin_path): - raise Exception( - "The Grasshopper (managed) Plug-in folder does not exist in this location: {}".format(gh_managedplugin_path) - ) + raise Exception("The Grasshopper (managed) Plug-in folder does not exist in this location: {}".format(gh_managedplugin_path)) return gh_managedplugin_path diff --git a/src/compas_ghpython/scene/boxobject.py b/src/compas_ghpython/scene/boxobject.py index 9b3938dc08b..4634e5a5b83 100644 --- a/src/compas_ghpython/scene/boxobject.py +++ b/src/compas_ghpython/scene/boxobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/brepobject.py b/src/compas_ghpython/scene/brepobject.py index c3b83dad4fb..c1110b73ff3 100644 --- a/src/compas_ghpython/scene/brepobject.py +++ b/src/compas_ghpython/scene/brepobject.py @@ -5,6 +5,7 @@ from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/capsuleobject.py b/src/compas_ghpython/scene/capsuleobject.py index 12b37b5d347..463a74114a8 100644 --- a/src/compas_ghpython/scene/capsuleobject.py +++ b/src/compas_ghpython/scene/capsuleobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/circleobject.py b/src/compas_ghpython/scene/circleobject.py index 36e5363a57c..9eabb4dbff0 100644 --- a/src/compas_ghpython/scene/circleobject.py +++ b/src/compas_ghpython/scene/circleobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/coneobject.py b/src/compas_ghpython/scene/coneobject.py index bf66677ddd5..cdea618e874 100644 --- a/src/compas_ghpython/scene/coneobject.py +++ b/src/compas_ghpython/scene/coneobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/curveobject.py b/src/compas_ghpython/scene/curveobject.py index 48ff6b33681..03bf1251068 100644 --- a/src/compas_ghpython/scene/curveobject.py +++ b/src/compas_ghpython/scene/curveobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/cylinderobject.py b/src/compas_ghpython/scene/cylinderobject.py index ef859695392..57ac7491bd3 100644 --- a/src/compas_ghpython/scene/cylinderobject.py +++ b/src/compas_ghpython/scene/cylinderobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/ellipseobject.py b/src/compas_ghpython/scene/ellipseobject.py index eb19f36c353..23844812481 100644 --- a/src/compas_ghpython/scene/ellipseobject.py +++ b/src/compas_ghpython/scene/ellipseobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/frameobject.py b/src/compas_ghpython/scene/frameobject.py index 7e89f84ec6e..f8ae54a0cbc 100644 --- a/src/compas_ghpython/scene/frameobject.py +++ b/src/compas_ghpython/scene/frameobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/graphobject.py b/src/compas_ghpython/scene/graphobject.py index 9329b69204a..83827400437 100644 --- a/src/compas_ghpython/scene/graphobject.py +++ b/src/compas_ghpython/scene/graphobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GraphObject as BaseGraphObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/lineobject.py b/src/compas_ghpython/scene/lineobject.py index 58d539b76ce..cc1f6cf10d1 100644 --- a/src/compas_ghpython/scene/lineobject.py +++ b/src/compas_ghpython/scene/lineobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/meshobject.py b/src/compas_ghpython/scene/meshobject.py index 04c219996be..4124225a560 100644 --- a/src/compas_ghpython/scene/meshobject.py +++ b/src/compas_ghpython/scene/meshobject.py @@ -2,10 +2,12 @@ from __future__ import division from __future__ import print_function -from compas.scene import MeshObject as BaseMeshObject -from compas.colors import Color from compas_rhino import conversions from compas_rhino.scene.helpers import ngon + +from compas.colors import Color +from compas.scene import MeshObject as BaseMeshObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/planeobject.py b/src/compas_ghpython/scene/planeobject.py index 123d0a7ee23..3f63200cfd7 100644 --- a/src/compas_ghpython/scene/planeobject.py +++ b/src/compas_ghpython/scene/planeobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions +from compas.geometry import Frame from compas.scene import GeometryObject + from .sceneobject import GHSceneObject -from compas.geometry import Frame class PlaneObject(GHSceneObject, GeometryObject): @@ -42,9 +43,7 @@ def draw(self): List of created Rhino geometries. """ frame = Frame.from_plane(self._item) - normal = conversions.line_to_rhino( - [frame.to_world_coordinates([0, 0, 0]), frame.to_world_coordinates([0, 0, self.scale])] - ) + normal = conversions.line_to_rhino([frame.to_world_coordinates([0, 0, 0]), frame.to_world_coordinates([0, 0, self.scale])]) vertices = [ frame.to_world_coordinates([-self.scale, -self.scale, 0]), diff --git a/src/compas_ghpython/scene/pointobject.py b/src/compas_ghpython/scene/pointobject.py index 832274c1f0b..ab31db907ae 100644 --- a/src/compas_ghpython/scene/pointobject.py +++ b/src/compas_ghpython/scene/pointobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/polygonobject.py b/src/compas_ghpython/scene/polygonobject.py index 4429c9be9b2..3f222131918 100644 --- a/src/compas_ghpython/scene/polygonobject.py +++ b/src/compas_ghpython/scene/polygonobject.py @@ -1,12 +1,12 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division - -from compas.colors import Color +from __future__ import print_function from compas_rhino import conversions +from compas.colors import Color from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/polyhedronobject.py b/src/compas_ghpython/scene/polyhedronobject.py index f70a75a4622..c7e340c6f8f 100644 --- a/src/compas_ghpython/scene/polyhedronobject.py +++ b/src/compas_ghpython/scene/polyhedronobject.py @@ -1,12 +1,12 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division - -from compas.colors import Color +from __future__ import print_function from compas_rhino import conversions +from compas.colors import Color from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/polylineobject.py b/src/compas_ghpython/scene/polylineobject.py index 6d15b7fb0ba..4f935901498 100644 --- a/src/compas_ghpython/scene/polylineobject.py +++ b/src/compas_ghpython/scene/polylineobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/sceneobject.py b/src/compas_ghpython/scene/sceneobject.py index ef1b67a26e8..1fde7497460 100644 --- a/src/compas_ghpython/scene/sceneobject.py +++ b/src/compas_ghpython/scene/sceneobject.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.scene import SceneObject diff --git a/src/compas_ghpython/scene/sphereobject.py b/src/compas_ghpython/scene/sphereobject.py index ec5f099222c..dd272433f46 100644 --- a/src/compas_ghpython/scene/sphereobject.py +++ b/src/compas_ghpython/scene/sphereobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/surfaceobject.py b/src/compas_ghpython/scene/surfaceobject.py index c751376aea8..2f56d41207e 100644 --- a/src/compas_ghpython/scene/surfaceobject.py +++ b/src/compas_ghpython/scene/surfaceobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/torusobject.py b/src/compas_ghpython/scene/torusobject.py index fb5101847dc..69955e0eaa6 100644 --- a/src/compas_ghpython/scene/torusobject.py +++ b/src/compas_ghpython/scene/torusobject.py @@ -1,10 +1,11 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/vectorobject.py b/src/compas_ghpython/scene/vectorobject.py index d5a242e2c88..66b71e1d672 100644 --- a/src/compas_ghpython/scene/vectorobject.py +++ b/src/compas_ghpython/scene/vectorobject.py @@ -6,6 +6,7 @@ from compas.geometry import Point from compas.scene import GeometryObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/scene/volmeshobject.py b/src/compas_ghpython/scene/volmeshobject.py index af7c1b739fa..be8be7d18a2 100644 --- a/src/compas_ghpython/scene/volmeshobject.py +++ b/src/compas_ghpython/scene/volmeshobject.py @@ -1,11 +1,12 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas_rhino import conversions from compas_rhino.scene.helpers import ngon from compas.scene import VolMeshObject as BaseVolMeshObject + from .sceneobject import GHSceneObject diff --git a/src/compas_ghpython/sets.py b/src/compas_ghpython/sets.py index 2b295edeff4..e0df9740b87 100644 --- a/src/compas_ghpython/sets.py +++ b/src/compas_ghpython/sets.py @@ -2,8 +2,8 @@ from __future__ import division from __future__ import print_function -import System # type: ignore import Grasshopper # type: ignore +import System # type: ignore def list_to_ghtree(items, none_and_holes=False, base_path=[0]): diff --git a/src/compas_ghpython/utilities/drawing.py b/src/compas_ghpython/utilities/drawing.py index a367d1573f6..3190d8b32be 100644 --- a/src/compas_ghpython/utilities/drawing.py +++ b/src/compas_ghpython/utilities/drawing.py @@ -4,6 +4,7 @@ import rhinoscriptsyntax as rs import scriptcontext as sc +from compas_rhino.utilities.drawing import _face_to_max_quad from Rhino.Geometry import Brep from Rhino.Geometry import Circle from Rhino.Geometry import Curve @@ -24,7 +25,6 @@ from compas.geometry import centroid_points from compas.itertools import pairwise -from compas_rhino.utilities.drawing import _face_to_max_quad try: from Rhino.Geometry import MeshNgon diff --git a/src/compas_rhino/conduits/base.py b/src/compas_rhino/conduits/base.py index d667eeaba89..e8a389f35a4 100644 --- a/src/compas_rhino/conduits/base.py +++ b/src/compas_rhino/conduits/base.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import time from contextlib import contextmanager diff --git a/src/compas_rhino/conduits/faces.py b/src/compas_rhino/conduits/faces.py index da5ee140876..8937a8bfe48 100644 --- a/src/compas_rhino/conduits/faces.py +++ b/src/compas_rhino/conduits/faces.py @@ -1,12 +1,12 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from System.Drawing.Color import FromArgb from Rhino.Geometry import Point3d +from System.Drawing.Color import FromArgb -from compas.utilities import iterable_like from compas.utilities import is_sequence_of_iterable +from compas.utilities import iterable_like from .base import BaseConduit diff --git a/src/compas_rhino/conduits/labels.py b/src/compas_rhino/conduits/labels.py index c9fac7264e8..2a1b8e74a88 100644 --- a/src/compas_rhino/conduits/labels.py +++ b/src/compas_rhino/conduits/labels.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from System.Drawing.Color import FromArgb from Rhino.Geometry import Point3d +from System.Drawing.Color import FromArgb -from compas.utilities import iterable_like from compas.utilities import is_sequence_of_iterable +from compas.utilities import iterable_like + from .base import BaseConduit @@ -78,10 +79,7 @@ def color(self, color): # the first item in the list should be a tuple of colors # if not, wrap the tuple color = [color] - color = [ - (FromArgb(*bg), FromArgb(*text)) - for bg, text in iterable_like(self.labels, color, (self.default_color, self.default_textcolor)) - ] + color = [(FromArgb(*bg), FromArgb(*text)) for bg, text in iterable_like(self.labels, color, (self.default_color, self.default_textcolor))] self._color = color def DrawForeground(self, e): diff --git a/src/compas_rhino/conduits/lines.py b/src/compas_rhino/conduits/lines.py index 16f9a0fa4ab..7a9917324b0 100644 --- a/src/compas_rhino/conduits/lines.py +++ b/src/compas_rhino/conduits/lines.py @@ -1,13 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division - -from System.Drawing.Color import FromArgb +from __future__ import print_function from Rhino.Geometry import Point3d +from System.Drawing.Color import FromArgb from compas.utilities import is_sequence_of_iterable from compas.utilities import iterable_like + from .base import BaseConduit diff --git a/src/compas_rhino/conduits/points.py b/src/compas_rhino/conduits/points.py index 7d677af9783..3aa2da97121 100644 --- a/src/compas_rhino/conduits/points.py +++ b/src/compas_rhino/conduits/points.py @@ -1,15 +1,15 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from System.Drawing.Color import FromArgb - -from Rhino.Geometry import Point3d from Rhino.Display.PointStyle import Simple +from Rhino.Geometry import Point3d +from System.Drawing.Color import FromArgb from compas.utilities import color_to_rgb from compas.utilities import iterable_like from compas.utilities.coercing import is_sequence_of_iterable + from .base import BaseConduit diff --git a/src/compas_rhino/conversions/breps.py b/src/compas_rhino/conversions/breps.py index 9b42590edae..8d4c32affe7 100644 --- a/src/compas_rhino/conversions/breps.py +++ b/src/compas_rhino/conversions/breps.py @@ -5,12 +5,10 @@ import scriptcontext as sc # type: ignore from .exceptions import ConversionError - from .shapes import cone_to_compas from .shapes import cylinder_to_compas from .shapes import sphere_to_compas - # ============================================================================= # To Rhino # ============================================================================= diff --git a/src/compas_rhino/conversions/curves.py b/src/compas_rhino/conversions/curves.py index 3af65c86327..fc1335f5899 100644 --- a/src/compas_rhino/conversions/curves.py +++ b/src/compas_rhino/conversions/curves.py @@ -1,27 +1,24 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -import scriptcontext as sc # type: ignore import Rhino # type: ignore +import scriptcontext as sc # type: ignore -from compas.geometry import Line +from compas.geometry import Arc from compas.geometry import Circle from compas.geometry import Ellipse -from compas.geometry import Polyline -from compas.geometry import Arc +from compas.geometry import Line from compas.geometry import NurbsCurve +from compas.geometry import Polyline from .exceptions import ConversionError - -from .geometry import point_to_rhino -from .geometry import plane_to_rhino from .geometry import frame_to_rhino_plane - -from .geometry import point_to_compas from .geometry import plane_to_compas from .geometry import plane_to_compas_frame - +from .geometry import plane_to_rhino +from .geometry import point_to_compas +from .geometry import point_to_rhino # ============================================================================= # To Rhino diff --git a/src/compas_rhino/conversions/exceptions.py b/src/compas_rhino/conversions/exceptions.py index 0c468546caf..00fe6125e09 100644 --- a/src/compas_rhino/conversions/exceptions.py +++ b/src/compas_rhino/conversions/exceptions.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function class ConversionError(Exception): diff --git a/src/compas_rhino/conversions/extrusions.py b/src/compas_rhino/conversions/extrusions.py index ba8b1003571..caf71dfb448 100644 --- a/src/compas_rhino/conversions/extrusions.py +++ b/src/compas_rhino/conversions/extrusions.py @@ -1,15 +1,14 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -import scriptcontext as sc # type: ignore import Rhino # type: ignore +import scriptcontext as sc # type: ignore from .shapes import box_to_compas from .shapes import cylinder_to_compas from .shapes import torus_to_compas - # ============================================================================= # To Rhino # ============================================================================= diff --git a/src/compas_rhino/conversions/geometry.py b/src/compas_rhino/conversions/geometry.py index 700c8368f91..118e4302e84 100644 --- a/src/compas_rhino/conversions/geometry.py +++ b/src/compas_rhino/conversions/geometry.py @@ -1,15 +1,14 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import Rhino # type: ignore -from compas.geometry import Point -from compas.geometry import Vector -from compas.geometry import Plane from compas.geometry import Frame +from compas.geometry import Plane +from compas.geometry import Point from compas.geometry import Polygon - +from compas.geometry import Vector # ============================================================================= # To Rhino diff --git a/src/compas_rhino/conversions/meshes.py b/src/compas_rhino/conversions/meshes.py index cce023c3b43..bd9370cca57 100644 --- a/src/compas_rhino/conversions/meshes.py +++ b/src/compas_rhino/conversions/meshes.py @@ -14,6 +14,7 @@ from compas.datastructures import Mesh from compas.geometry import centroid_polygon from compas.itertools import pairwise + from .geometry import vector_to_compas diff --git a/src/compas_rhino/conversions/shapes.py b/src/compas_rhino/conversions/shapes.py index bcb088bf22a..955568fbf6c 100644 --- a/src/compas_rhino/conversions/shapes.py +++ b/src/compas_rhino/conversions/shapes.py @@ -1,30 +1,29 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -import scriptcontext as sc # type: ignore import Rhino # type: ignore +import scriptcontext as sc # type: ignore -from compas.geometry import Plane -from compas.geometry import Circle from compas.geometry import Box -from compas.geometry import Sphere +from compas.geometry import Circle from compas.geometry import Cone from compas.geometry import Cylinder -from compas.geometry import Torus from compas.geometry import Frame +from compas.geometry import Plane +from compas.geometry import Sphere +from compas.geometry import Torus + +from .curves import circle_to_rhino +from .curves import line_to_rhino_curve # from .geometry import plane_to_rhino from .geometry import frame_to_rhino -from .geometry import point_to_rhino -from .geometry import plane_to_compas_frame from .geometry import plane_to_compas +from .geometry import plane_to_compas_frame from .geometry import point_to_compas +from .geometry import point_to_rhino from .geometry import vector_to_compas -from .curves import line_to_rhino_curve - -from .curves import circle_to_rhino - # ============================================================================= # To Rhino @@ -167,9 +166,7 @@ def capsule_to_rhino_brep(capsule): line = capsule.axis curve = line_to_rhino_curve(line) - return Rhino.Geometry.Brep.CreatePipe( - curve, radius, False, Rhino.Geometry.PipeCapMode.Round, False, abs_tol, ang_tol - ) + return Rhino.Geometry.Brep.CreatePipe(curve, radius, False, Rhino.Geometry.PipeCapMode.Round, False, abs_tol, ang_tol) def torus_to_rhino(torus): diff --git a/src/compas_rhino/conversions/surfaces.py b/src/compas_rhino/conversions/surfaces.py index 7e4cb282c2e..5843e3ab27f 100644 --- a/src/compas_rhino/conversions/surfaces.py +++ b/src/compas_rhino/conversions/surfaces.py @@ -1,21 +1,18 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import Rhino # type: ignore -from compas.tolerance import TOL - -from compas.geometry import Point -from compas.geometry import NurbsSurface from compas.datastructures import Mesh +from compas.geometry import NurbsSurface +from compas.geometry import Point +from compas.tolerance import TOL from compas.utilities import memoize from .exceptions import ConversionError - -from .geometry import point_to_rhino from .geometry import point_to_compas - +from .geometry import point_to_rhino # ============================================================================= # To Rhino diff --git a/src/compas_rhino/geometry/brep/brep.py b/src/compas_rhino/geometry/brep/brep.py index 3250b0aab83..e619f0cc8d2 100644 --- a/src/compas_rhino/geometry/brep/brep.py +++ b/src/compas_rhino/geometry/brep/brep.py @@ -4,30 +4,29 @@ import Rhino # type: ignore -from compas.geometry import Frame from compas.geometry import Brep -from compas.geometry import BrepTrimmingError from compas.geometry import BrepError +from compas.geometry import BrepTrimmingError +from compas.geometry import Frame from compas.geometry import Plane from compas.geometry import Point - from compas_rhino.conversions import box_to_rhino -from compas_rhino.conversions import transformation_to_rhino -from compas_rhino.conversions import plane_to_rhino +from compas_rhino.conversions import curve_to_compas +from compas_rhino.conversions import curve_to_rhino from compas_rhino.conversions import cylinder_to_rhino -from compas_rhino.conversions import sphere_to_rhino from compas_rhino.conversions import mesh_to_compas from compas_rhino.conversions import mesh_to_rhino +from compas_rhino.conversions import plane_to_rhino from compas_rhino.conversions import point_to_rhino -from compas_rhino.conversions import curve_to_compas -from compas_rhino.conversions import curve_to_rhino +from compas_rhino.conversions import sphere_to_rhino +from compas_rhino.conversions import transformation_to_rhino from compas_rhino.conversions import vector_to_rhino from .builder import _RhinoBrepBuilder -from .face import RhinoBrepFace from .edge import RhinoBrepEdge -from .vertex import RhinoBrepVertex +from .face import RhinoBrepFace from .loop import RhinoBrepLoop +from .vertex import RhinoBrepVertex TOLERANCE = 1e-6 diff --git a/src/compas_rhino/geometry/brep/edge.py b/src/compas_rhino/geometry/brep/edge.py index d2f86101971..0e096b1437c 100644 --- a/src/compas_rhino/geometry/brep/edge.py +++ b/src/compas_rhino/geometry/brep/edge.py @@ -4,25 +4,24 @@ import Rhino # type: ignore +from compas.geometry import Arc from compas.geometry import BrepEdge -from compas.geometry import Line from compas.geometry import Circle from compas.geometry import Ellipse from compas.geometry import Frame -from compas.geometry import Arc - -from compas_rhino.geometry import RhinoNurbsCurve -from compas_rhino.conversions import curve_to_compas_line -from compas_rhino.conversions import plane_to_compas_frame +from compas.geometry import Line +from compas_rhino.conversions import arc_to_compas +from compas_rhino.conversions import arc_to_rhino from compas_rhino.conversions import circle_to_compas +from compas_rhino.conversions import circle_to_rhino +from compas_rhino.conversions import curve_to_compas_line from compas_rhino.conversions import ellipse_to_compas from compas_rhino.conversions import ellipse_to_rhino -from compas_rhino.conversions import circle_to_rhino from compas_rhino.conversions import frame_to_rhino_plane from compas_rhino.conversions import line_to_rhino -from compas_rhino.conversions import arc_to_compas -from compas_rhino.conversions import arc_to_rhino +from compas_rhino.conversions import plane_to_compas_frame from compas_rhino.conversions import point_to_compas +from compas_rhino.geometry import RhinoNurbsCurve from .vertex import RhinoBrepVertex diff --git a/src/compas_rhino/geometry/brep/face.py b/src/compas_rhino/geometry/brep/face.py index 5c82c7c0226..de9b3fe92b2 100644 --- a/src/compas_rhino/geometry/brep/face.py +++ b/src/compas_rhino/geometry/brep/face.py @@ -6,23 +6,21 @@ from compas.geometry import Brep from compas.geometry import BrepFace -from compas.geometry import Sphere from compas.geometry import Cylinder from compas.geometry import Frame +from compas.geometry import Sphere from compas.geometry import SurfaceType - - -from compas_rhino.geometry import RhinoNurbsSurface -from compas_rhino.geometry.surfaces import RhinoSurface -from compas_rhino.conversions import plane_to_compas_frame -from compas_rhino.conversions import sphere_to_compas from compas_rhino.conversions import cylinder_to_compas from compas_rhino.conversions import cylinder_to_rhino -from compas_rhino.conversions import sphere_to_rhino from compas_rhino.conversions import frame_to_rhino_plane +from compas_rhino.conversions import plane_to_compas_frame +from compas_rhino.conversions import sphere_to_compas +from compas_rhino.conversions import sphere_to_rhino +from compas_rhino.geometry import RhinoNurbsSurface +from compas_rhino.geometry.surfaces import RhinoSurface -from .loop import RhinoBrepLoop from .edge import RhinoBrepEdge +from .loop import RhinoBrepLoop class RhinoBrepFace(BrepFace): @@ -89,9 +87,7 @@ def __from_data__(cls, data, builder): """ instance = cls() - instance._surface = instance._make_surface__from_data__( - data["surface_type"], data["surface"], data["uv_domain"], data["frame"] - ) + instance._surface = instance._make_surface__from_data__(data["surface_type"], data["surface"], data["uv_domain"], data["frame"]) face_builder = builder.add_face(instance._surface) for loop_data in data["loops"]: RhinoBrepLoop.__from_data__(loop_data, face_builder) @@ -214,9 +210,7 @@ def _get_surface_geometry(surface): if success: return "cylinder", cylinder_to_compas(cast_surface), uv_domain, cast_surface.BasePlane success, cast_surface = surface.TryGetTorus() - raise NotImplementedError( - "Support for surface type: {} is not yet implemented.".format(surface.__class__.__name__) - ) + raise NotImplementedError("Support for surface type: {} is not yet implemented.".format(surface.__class__.__name__)) def _make_surface__from_data__(self, surface_type, surface_data, uv_domain, frame_data): u_domain, v_domain = uv_domain diff --git a/src/compas_rhino/geometry/brep/loop.py b/src/compas_rhino/geometry/brep/loop.py index 7e86d6145c9..65a9c35c8fc 100644 --- a/src/compas_rhino/geometry/brep/loop.py +++ b/src/compas_rhino/geometry/brep/loop.py @@ -6,8 +6,8 @@ from compas.geometry import BrepLoop -from .trim import RhinoBrepTrim from .edge import RhinoBrepEdge +from .trim import RhinoBrepTrim class LoopType(object): @@ -87,9 +87,7 @@ def __from_data__(cls, data, builder): """ instance = cls() - instance._type = ( - Rhino.Geometry.BrepLoopType.Outer if data["type"] == "Outer" else Rhino.Geometry.BrepLoopType.Inner - ) + instance._type = Rhino.Geometry.BrepLoopType.Outer if data["type"] == "Outer" else Rhino.Geometry.BrepLoopType.Inner loop_builder = builder.add_loop(instance._type) for trim_data in data["trims"]: RhinoBrepTrim.__from_data__(trim_data, loop_builder) diff --git a/src/compas_rhino/geometry/brep/vertex.py b/src/compas_rhino/geometry/brep/vertex.py index 6ebe8edc9c2..7ae9866efa2 100644 --- a/src/compas_rhino/geometry/brep/vertex.py +++ b/src/compas_rhino/geometry/brep/vertex.py @@ -2,8 +2,8 @@ from __future__ import division from __future__ import print_function -from compas.geometry import Point from compas.geometry import BrepVertex +from compas.geometry import Point from compas_rhino.conversions import point_to_compas diff --git a/src/compas_rhino/geometry/curves/curve.py b/src/compas_rhino/geometry/curves/curve.py index 6c4dd2d4b01..8ef652a8e23 100644 --- a/src/compas_rhino/geometry/curves/curve.py +++ b/src/compas_rhino/geometry/curves/curve.py @@ -1,17 +1,16 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from compas.geometry import Curve from compas.geometry import Plane - -from compas_rhino.conversions import point_to_rhino -from compas_rhino.conversions import point_to_compas -from compas_rhino.conversions import vector_to_compas -from compas_rhino.conversions import transformation_to_rhino +from compas_rhino.conversions import box_to_compas from compas_rhino.conversions import plane_to_compas_frame from compas_rhino.conversions import plane_to_rhino -from compas_rhino.conversions import box_to_compas +from compas_rhino.conversions import point_to_compas +from compas_rhino.conversions import point_to_rhino +from compas_rhino.conversions import transformation_to_rhino +from compas_rhino.conversions import vector_to_compas class RhinoCurve(Curve): diff --git a/src/compas_rhino/geometry/curves/nurbs.py b/src/compas_rhino/geometry/curves/nurbs.py index b4a975e831a..f1e86b9466a 100644 --- a/src/compas_rhino/geometry/curves/nurbs.py +++ b/src/compas_rhino/geometry/curves/nurbs.py @@ -1,17 +1,16 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from itertools import groupby import Rhino.Geometry # type: ignore -from compas.geometry import Point from compas.geometry import NurbsCurve - -from compas_rhino.conversions import point_to_rhino -from compas_rhino.conversions import point_to_compas +from compas.geometry import Point from compas_rhino.conversions import line_to_rhino +from compas_rhino.conversions import point_to_compas +from compas_rhino.conversions import point_to_rhino from .curve import RhinoCurve diff --git a/src/compas_rhino/geometry/surfaces/nurbs.py b/src/compas_rhino/geometry/surfaces/nurbs.py index c82b7ff273b..8a144f0cdaa 100644 --- a/src/compas_rhino/geometry/surfaces/nurbs.py +++ b/src/compas_rhino/geometry/surfaces/nurbs.py @@ -1,18 +1,17 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from itertools import groupby import Rhino.Geometry # type: ignore -from compas.geometry import Point from compas.geometry import NurbsSurface +from compas.geometry import Point from compas.geometry import knots_and_mults_to_knotvector from compas.utilities import flatten - -from compas_rhino.conversions import point_to_rhino from compas_rhino.conversions import point_to_compas +from compas_rhino.conversions import point_to_rhino from .surface import RhinoSurface @@ -311,9 +310,7 @@ def from_parameters( """ surface = cls() - surface.rhino_surface = rhino_surface_from_parameters( - points, weights, knots_u, knots_v, mults_u, mults_v, degree_u, degree_v - ) + surface.rhino_surface = rhino_surface_from_parameters(points, weights, knots_u, knots_v, mults_u, mults_v, degree_u, degree_v) return surface @classmethod @@ -342,9 +339,7 @@ def from_points(cls, points, degree_u=3, degree_v=3): pointcount_v = len(points[0]) points[:] = [point_to_rhino(point) for row in points for point in row] surface = cls() - surface.rhino_surface = Rhino.Geometry.NurbsSurface.CreateFromPoints( - points, pointcount_u, pointcount_v, degree_u, degree_v - ) + surface.rhino_surface = Rhino.Geometry.NurbsSurface.CreateFromPoints(points, pointcount_u, pointcount_v, degree_u, degree_v) return surface @classmethod diff --git a/src/compas_rhino/geometry/surfaces/surface.py b/src/compas_rhino/geometry/surfaces/surface.py index 87bf92291fe..36fa127a0fa 100644 --- a/src/compas_rhino/geometry/surfaces/surface.py +++ b/src/compas_rhino/geometry/surfaces/surface.py @@ -1,22 +1,20 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import Rhino.Geometry # type: ignore from compas.geometry import Surface - -from compas_rhino.conversions import point_to_rhino -from compas_rhino.conversions import point_to_compas -from compas_rhino.conversions import vector_to_compas -from compas_rhino.conversions import plane_to_compas_frame +from compas_rhino.conversions import box_to_compas +from compas_rhino.conversions import cylinder_to_rhino from compas_rhino.conversions import frame_to_rhino_plane +from compas_rhino.conversions import plane_to_compas_frame from compas_rhino.conversions import plane_to_rhino -from compas_rhino.conversions import box_to_compas -from compas_rhino.conversions import transformation_to_rhino +from compas_rhino.conversions import point_to_compas +from compas_rhino.conversions import point_to_rhino from compas_rhino.conversions import sphere_to_rhino -from compas_rhino.conversions import cylinder_to_rhino - +from compas_rhino.conversions import transformation_to_rhino +from compas_rhino.conversions import vector_to_compas from compas_rhino.geometry.curves import RhinoCurve @@ -400,9 +398,7 @@ def intersections_with_curve(self, curve, tolerance=1e-3, overlap=1e-3): list[:class:`compas.geometry.Point`] """ - intersections = Rhino.Geometry.Intersect.Intersection.CurveSurface( - curve.rhino_curve, self.rhino_surface, tolerance, overlap - ) + intersections = Rhino.Geometry.Intersect.Intersection.CurveSurface(curve.rhino_curve, self.rhino_surface, tolerance, overlap) points = [] for event in intersections: if event.IsPoint: diff --git a/src/compas_rhino/geometry/trimesh_curvature.py b/src/compas_rhino/geometry/trimesh_curvature.py index d2451e42e2c..e8a9465c94f 100644 --- a/src/compas_rhino/geometry/trimesh_curvature.py +++ b/src/compas_rhino/geometry/trimesh_curvature.py @@ -2,14 +2,14 @@ from __future__ import division from __future__ import print_function -import Rhino # type: ignore -import System # type: ignore -import clr # type: ignore -import scriptcontext # type: ignore - +from math import atan2 from math import pi from math import sqrt -from math import atan2 + +import clr # type: ignore +import Rhino # type: ignore +import scriptcontext # type: ignore +import System # type: ignore from compas.plugins import plugin @@ -81,9 +81,7 @@ def trimesh_gaussian_curvature(M): # (3) Main - loop every vertex for angle defect for i in range(mesh.Vertices.Count): - vert_neighbors_topo = mesh.TopologyVertices.ConnectedTopologyVertices( - mesh.TopologyVertices.TopologyVertexIndex(i), True - ) + vert_neighbors_topo = mesh.TopologyVertices.ConnectedTopologyVertices(mesh.TopologyVertices.TopologyVertexIndex(i), True) vert_neighbors = [] if vert_neighbors_topo is None: K.append(None) diff --git a/src/compas_rhino/install.py b/src/compas_rhino/install.py index 0fcf7a5f604..2c768ccbcdb 100644 --- a/src/compas_rhino/install.py +++ b/src/compas_rhino/install.py @@ -7,10 +7,9 @@ import os import sys -import compas_rhino - import compas._os import compas.plugins +import compas_rhino def install(version=None, packages=None, clean=False): @@ -242,9 +241,7 @@ def _run_post_execution_steps(steps_generator): all_steps_succeeded = False print(" {} {}: {}".format(package.ljust(20), status, message)) except ValueError: - post_execution_errors.append( - ValueError("Step ran without errors but result is wrongly formatted: {}".format(str(item))) - ) + post_execution_errors.append(ValueError("Step ran without errors but result is wrongly formatted: {}".format(str(item)))) if post_execution_errors: print("\nOne or more errors occurred:\n") diff --git a/src/compas_rhino/install_plugin.py b/src/compas_rhino/install_plugin.py index b793decd8e0..344269e948c 100644 --- a/src/compas_rhino/install_plugin.py +++ b/src/compas_rhino/install_plugin.py @@ -1,10 +1,10 @@ -import os import imp +import os import compas_rhino - from compas._os import create_symlinks from compas._os import remove_symlinks + from .install import install as install_packages diff --git a/src/compas_rhino/install_with_pip.py b/src/compas_rhino/install_with_pip.py index 453f6c8025d..fb1ae3b583e 100644 --- a/src/compas_rhino/install_with_pip.py +++ b/src/compas_rhino/install_with_pip.py @@ -1,4 +1,5 @@ import subprocess + import compas_rhino diff --git a/src/compas_rhino/layers.py b/src/compas_rhino/layers.py index b833ba6a96f..759a3ba8360 100644 --- a/src/compas_rhino/layers.py +++ b/src/compas_rhino/layers.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from collections import deque diff --git a/src/compas_rhino/objects.py b/src/compas_rhino/objects.py index 56c18a5152e..4bde93f6717 100644 --- a/src/compas_rhino/objects.py +++ b/src/compas_rhino/objects.py @@ -1,15 +1,15 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import json -import compas_rhino - -import System # type: ignore import Rhino # type: ignore import rhinoscriptsyntax as rs # type: ignore import scriptcontext as sc # type: ignore +import System # type: ignore + +import compas_rhino find_object = sc.doc.Objects.Find @@ -298,11 +298,7 @@ def set_object_attributes(guid, attr): try: u.Set(name, value) except Exception: - print( - "The following item cannot be stored in the user dictionary of this object: {0} => {1}".format( - name, value - ) - ) + print("The following item cannot be stored in the user dictionary of this object: {0} => {1}".format(name, value)) def get_object_attributes_from_name(guids, prefix=None): diff --git a/src/compas_rhino/print_python_path.py b/src/compas_rhino/print_python_path.py index c13fa987c5e..5422469b539 100644 --- a/src/compas_rhino/print_python_path.py +++ b/src/compas_rhino/print_python_path.py @@ -1,6 +1,5 @@ import compas_rhino - if __name__ == "__main__": import argparse diff --git a/src/compas_rhino/scene/boxobject.py b/src/compas_rhino/scene/boxobject.py index 9004674d1fa..b084630bfd1 100644 --- a/src/compas_rhino/scene/boxobject.py +++ b/src/compas_rhino/scene/boxobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject from compas_rhino.conversions import box_to_rhino from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/brepobject.py b/src/compas_rhino/scene/brepobject.py index e8bc376b971..24c4bbe9186 100644 --- a/src/compas_rhino/scene/brepobject.py +++ b/src/compas_rhino/scene/brepobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore +from compas.scene import GeometryObject from compas_rhino.conversions import brep_to_rhino from compas_rhino.conversions import transformation_to_rhino -from compas.scene import GeometryObject + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/capsuleobject.py b/src/compas_rhino/scene/capsuleobject.py index e39dd3b4887..52e59dc95ee 100644 --- a/src/compas_rhino/scene/capsuleobject.py +++ b/src/compas_rhino/scene/capsuleobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject from compas_rhino.conversions import capsule_to_rhino_brep from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/circleobject.py b/src/compas_rhino/scene/circleobject.py index 6374486b2fd..12067e24e45 100644 --- a/src/compas_rhino/scene/circleobject.py +++ b/src/compas_rhino/scene/circleobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject from compas_rhino.conversions import circle_to_rhino from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/coneobject.py b/src/compas_rhino/scene/coneobject.py index 0017dbc399f..2f578acff58 100644 --- a/src/compas_rhino/scene/coneobject.py +++ b/src/compas_rhino/scene/coneobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject from compas_rhino.conversions import cone_to_rhino_brep from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/curveobject.py b/src/compas_rhino/scene/curveobject.py index 33dda8fa3b1..a990c6f0cec 100644 --- a/src/compas_rhino/scene/curveobject.py +++ b/src/compas_rhino/scene/curveobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject from compas_rhino.conversions import curve_to_rhino from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/cylinderobject.py b/src/compas_rhino/scene/cylinderobject.py index 535879c92d7..d09115c38f7 100644 --- a/src/compas_rhino/scene/cylinderobject.py +++ b/src/compas_rhino/scene/cylinderobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject from compas_rhino.conversions import cylinder_to_rhino_brep from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/ellipseobject.py b/src/compas_rhino/scene/ellipseobject.py index 1cba81afbd3..154d4ffe9ec 100644 --- a/src/compas_rhino/scene/ellipseobject.py +++ b/src/compas_rhino/scene/ellipseobject.py @@ -1,13 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject from compas_rhino.conversions import ellipse_to_rhino - from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/frameobject.py b/src/compas_rhino/scene/frameobject.py index b1c3652e9e2..17168dc2eda 100644 --- a/src/compas_rhino/scene/frameobject.py +++ b/src/compas_rhino/scene/frameobject.py @@ -1,13 +1,14 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore -from compas.scene import GeometryObject from compas.colors import Color +from compas.scene import GeometryObject from compas_rhino.conversions import point_to_rhino from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/graphobject.py b/src/compas_rhino/scene/graphobject.py index 414548577be..b9a043b5dbc 100644 --- a/src/compas_rhino/scene/graphobject.py +++ b/src/compas_rhino/scene/graphobject.py @@ -1,19 +1,20 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import Rhino # type: ignore import scriptcontext as sc # type: ignore import compas_rhino -from compas.geometry import Line from compas.geometry import Cylinder +from compas.geometry import Line from compas.geometry import Sphere from compas.scene import GraphObject -from compas_rhino.conversions import point_to_rhino +from compas_rhino.conversions import cylinder_to_rhino_brep from compas_rhino.conversions import line_to_rhino +from compas_rhino.conversions import point_to_rhino from compas_rhino.conversions import sphere_to_rhino -from compas_rhino.conversions import cylinder_to_rhino_brep + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/helpers.py b/src/compas_rhino/scene/helpers.py index acbc7af717f..6463acc3edf 100644 --- a/src/compas_rhino/scene/helpers.py +++ b/src/compas_rhino/scene/helpers.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import rhinoscriptsyntax as rs # type: ignore import scriptcontext as sc # type: ignore diff --git a/src/compas_rhino/scene/lineobject.py b/src/compas_rhino/scene/lineobject.py index 8d5d6ae34db..420cb2b71cc 100644 --- a/src/compas_rhino/scene/lineobject.py +++ b/src/compas_rhino/scene/lineobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject from compas_rhino.conversions import line_to_rhino from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/meshobject.py b/src/compas_rhino/scene/meshobject.py index b03961bb439..799eca74ed3 100644 --- a/src/compas_rhino/scene/meshobject.py +++ b/src/compas_rhino/scene/meshobject.py @@ -1,29 +1,28 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -import scriptcontext as sc # type: ignore import Rhino # type: ignore +import scriptcontext as sc # type: ignore -from compas.geometry import centroid_points -from compas.geometry import Point -from compas.geometry import Line +import compas_rhino.objects +from compas.colors import Color from compas.geometry import Cylinder +from compas.geometry import Line +from compas.geometry import Point from compas.geometry import Sphere +from compas.geometry import centroid_points from compas.scene import MeshObject -from compas.colors import Color - -import compas_rhino.objects -from compas_rhino.conversions import vertices_and_faces_to_rhino +from compas_rhino.conversions import cylinder_to_rhino_brep +from compas_rhino.conversions import line_to_rhino from compas_rhino.conversions import mesh_to_rhino from compas_rhino.conversions import point_to_rhino -from compas_rhino.conversions import line_to_rhino -from compas_rhino.conversions import cylinder_to_rhino_brep from compas_rhino.conversions import sphere_to_rhino from compas_rhino.conversions import transformation_to_rhino +from compas_rhino.conversions import vertices_and_faces_to_rhino -from .sceneobject import RhinoSceneObject from .helpers import ngon +from .sceneobject import RhinoSceneObject class RhinoMeshObject(RhinoSceneObject, MeshObject): diff --git a/src/compas_rhino/scene/planeobject.py b/src/compas_rhino/scene/planeobject.py index 209496fe87e..18b88259f10 100644 --- a/src/compas_rhino/scene/planeobject.py +++ b/src/compas_rhino/scene/planeobject.py @@ -1,15 +1,16 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore +from compas.geometry import Frame from compas.scene import GeometryObject -from .sceneobject import RhinoSceneObject from compas_rhino.conversions import point_to_rhino from compas_rhino.conversions import transformation_to_rhino from compas_rhino.conversions import vertices_and_faces_to_rhino -from compas.geometry import Frame + +from .sceneobject import RhinoSceneObject class RhinoPlaneObject(RhinoSceneObject, GeometryObject): diff --git a/src/compas_rhino/scene/pointobject.py b/src/compas_rhino/scene/pointobject.py index c4387d16732..0ee1014810c 100644 --- a/src/compas_rhino/scene/pointobject.py +++ b/src/compas_rhino/scene/pointobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject from compas_rhino.conversions import point_to_rhino from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/polygonobject.py b/src/compas_rhino/scene/polygonobject.py index fc219030e3b..35bc52773f0 100644 --- a/src/compas_rhino/scene/polygonobject.py +++ b/src/compas_rhino/scene/polygonobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject -from compas_rhino.conversions import vertices_and_faces_to_rhino from compas_rhino.conversions import transformation_to_rhino +from compas_rhino.conversions import vertices_and_faces_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/polyhedronobject.py b/src/compas_rhino/scene/polyhedronobject.py index 97306d01085..ca6df3505d6 100644 --- a/src/compas_rhino/scene/polyhedronobject.py +++ b/src/compas_rhino/scene/polyhedronobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject -from compas_rhino.conversions import vertices_and_faces_to_rhino from compas_rhino.conversions import transformation_to_rhino +from compas_rhino.conversions import vertices_and_faces_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/polylineobject.py b/src/compas_rhino/scene/polylineobject.py index 1b36d1ac15c..ed98970b958 100644 --- a/src/compas_rhino/scene/polylineobject.py +++ b/src/compas_rhino/scene/polylineobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject from compas_rhino.conversions import polyline_to_rhino from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/sceneobject.py b/src/compas_rhino/scene/sceneobject.py index 50362eb70a7..2c2ecfcfadc 100644 --- a/src/compas_rhino/scene/sceneobject.py +++ b/src/compas_rhino/scene/sceneobject.py @@ -1,13 +1,14 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -import scriptcontext as sc # type: ignore import Rhino # type: ignore +import scriptcontext as sc # type: ignore import System # type: ignore import compas_rhino.layers from compas.scene import SceneObject + from .helpers import ensure_layer diff --git a/src/compas_rhino/scene/sphereobject.py b/src/compas_rhino/scene/sphereobject.py index 68ae60a1508..3d68d04ae72 100644 --- a/src/compas_rhino/scene/sphereobject.py +++ b/src/compas_rhino/scene/sphereobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject from compas_rhino.conversions import sphere_to_rhino from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/surfaceobject.py b/src/compas_rhino/scene/surfaceobject.py index f0a8b0b7c6a..7edfd3c7d0f 100644 --- a/src/compas_rhino/scene/surfaceobject.py +++ b/src/compas_rhino/scene/surfaceobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject from compas_rhino.conversions import surface_to_rhino from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/torusobject.py b/src/compas_rhino/scene/torusobject.py index 36d7cb3fefa..4fe21f9d18f 100644 --- a/src/compas_rhino/scene/torusobject.py +++ b/src/compas_rhino/scene/torusobject.py @@ -1,12 +1,13 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore from compas.scene import GeometryObject from compas_rhino.conversions import torus_to_rhino_brep from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/vectorobject.py b/src/compas_rhino/scene/vectorobject.py index 7b9946b9756..3c0f39739c0 100644 --- a/src/compas_rhino/scene/vectorobject.py +++ b/src/compas_rhino/scene/vectorobject.py @@ -1,6 +1,6 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import scriptcontext as sc # type: ignore @@ -8,6 +8,7 @@ from compas.scene import GeometryObject from compas_rhino.conversions import point_to_rhino from compas_rhino.conversions import transformation_to_rhino + from .sceneobject import RhinoSceneObject diff --git a/src/compas_rhino/scene/volmeshobject.py b/src/compas_rhino/scene/volmeshobject.py index 685d46c339f..3be88d5312c 100644 --- a/src/compas_rhino/scene/volmeshobject.py +++ b/src/compas_rhino/scene/volmeshobject.py @@ -1,21 +1,20 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function -from Rhino.Geometry import TextDot # type: ignore import scriptcontext as sc # type: ignore +from Rhino.Geometry import TextDot # type: ignore -from compas.geometry import centroid_points +import compas_rhino.objects from compas.geometry import Line +from compas.geometry import centroid_points from compas.scene import VolMeshObject - -import compas_rhino.objects -from compas_rhino.conversions import point_to_rhino from compas_rhino.conversions import line_to_rhino +from compas_rhino.conversions import point_to_rhino from compas_rhino.conversions import vertices_and_faces_to_rhino -from .sceneobject import RhinoSceneObject from .helpers import ngon +from .sceneobject import RhinoSceneObject class RhinoVolMeshObject(RhinoSceneObject, VolMeshObject): diff --git a/src/compas_rhino/ui.py b/src/compas_rhino/ui.py index 7ccbff1fc3d..bdbd98eaebc 100644 --- a/src/compas_rhino/ui.py +++ b/src/compas_rhino/ui.py @@ -1,8 +1,9 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import os + import rhinoscriptsyntax as rs # type: ignore diff --git a/src/compas_rhino/uninstall_plugin.py b/src/compas_rhino/uninstall_plugin.py index 5bdfaa0e9f0..21c61566ac1 100644 --- a/src/compas_rhino/uninstall_plugin.py +++ b/src/compas_rhino/uninstall_plugin.py @@ -1,11 +1,10 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function import os import compas_rhino - from compas._os import remove_symlink diff --git a/src/compas_rhino/utilities/constructors.py b/src/compas_rhino/utilities/constructors.py index c58f7180f30..aa86af86ba5 100644 --- a/src/compas_rhino/utilities/constructors.py +++ b/src/compas_rhino/utilities/constructors.py @@ -1,12 +1,12 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division - -from compas.tolerance import TOL +from __future__ import print_function import Rhino # type: ignore import scriptcontext as sc # type: ignore +from compas.tolerance import TOL + def volmesh_from_polysurfaces(cls, guids, precision=None): """Construct a volumetric mesh from given polysurfaces. diff --git a/src/compas_rhino/utilities/drawing.py b/src/compas_rhino/utilities/drawing.py index a3f57fd6fe0..4df1f5bd687 100644 --- a/src/compas_rhino/utilities/drawing.py +++ b/src/compas_rhino/utilities/drawing.py @@ -1,21 +1,20 @@ -from __future__ import print_function from __future__ import absolute_import from __future__ import division +from __future__ import print_function from functools import wraps +import Rhino # type: ignore import rhinoscriptsyntax as rs # type: ignore import scriptcontext as sc # type: ignore import System # type: ignore -import Rhino # type: ignore import compas_rhino.objects -from compas_rhino.layers import create_layers_from_path -from compas_rhino.layers import clear_layer -from compas_rhino.layers import clear_current_layer -from compas_rhino.conversions import vertices_and_faces_to_rhino - from compas.geometry import centroid_polygon +from compas_rhino.conversions import vertices_and_faces_to_rhino +from compas_rhino.layers import clear_current_layer +from compas_rhino.layers import clear_layer +from compas_rhino.layers import create_layers_from_path find_object = sc.doc.Objects.Find add_point = sc.doc.Objects.AddPoint @@ -626,9 +625,7 @@ def draw_pipes(pipes, cap=2, fit=1.0, **kwargs): if type(radius) in (int, float): radius = [radius] * 2 radius = [float(r) for r in radius] - rail = Rhino.Geometry.Curve.CreateControlPointRhino.Geometry.Curve( - [Rhino.Geometry.Point3d(*xyz) for xyz in points] - ) + rail = Rhino.Geometry.Curve.CreateControlPointRhino.Geometry.Curve([Rhino.Geometry.Point3d(*xyz) for xyz in points]) breps = Rhino.Geometry.Brep.CreatePipe(rail, params, radius, 1, cap, fit, abs_tol, ang_tol) temp = [add_brep(brep) for brep in breps] for guid in temp: @@ -902,9 +899,7 @@ def draw_circles(circles, **kwargs): name = data.get("name", "") color = data.get("color") layer = data.get("layer") - circle = Rhino.Geometry.Circle( - Rhino.Geometry.Plane(Rhino.Geometry.Point3d(*point), Rhino.Geometry.Vector3d(*normal)), radius - ) + circle = Rhino.Geometry.Circle(Rhino.Geometry.Plane(Rhino.Geometry.Point3d(*point), Rhino.Geometry.Vector3d(*normal)), radius) guid = add_circle(circle) if not guid: continue diff --git a/tests/compas/datastructures/test_mesh_subd.py b/tests/compas/datastructures/test_mesh_subd.py index d81c1c55ec8..2ee5947800b 100644 --- a/tests/compas/datastructures/test_mesh_subd.py +++ b/tests/compas/datastructures/test_mesh_subd.py @@ -19,17 +19,13 @@ def mesh_quads(): def test_quads_subdivide(mesh_quads): subd = mesh_quads.subdivided() assert subd.number_of_faces() == 4 * mesh_quads.number_of_faces() - assert subd.number_of_vertices() == ( - mesh_quads.number_of_vertices() + mesh_quads.number_of_edges() + mesh_quads.number_of_faces() - ) + assert subd.number_of_vertices() == (mesh_quads.number_of_vertices() + mesh_quads.number_of_edges() + mesh_quads.number_of_faces()) def test_tris_subdivide(mesh_tris): subd = mesh_tris.subdivided() assert subd.number_of_faces() == 3 * mesh_tris.number_of_faces() - assert subd.number_of_vertices() == ( - mesh_tris.number_of_vertices() + mesh_tris.number_of_edges() + mesh_tris.number_of_faces() - ) + assert subd.number_of_vertices() == (mesh_tris.number_of_vertices() + mesh_tris.number_of_edges() + mesh_tris.number_of_faces()) def test_quads_subdivide_tri(mesh_quads): @@ -47,14 +43,10 @@ def test_tris_subdivide_tri(mesh_tris): def test_quads_subdivide_quad(mesh_quads): subd = mesh_quads.subdivided(scheme="quad") assert subd.number_of_faces() == 4 * mesh_quads.number_of_faces() - assert subd.number_of_vertices() == ( - mesh_quads.number_of_vertices() + mesh_quads.number_of_edges() + mesh_quads.number_of_faces() - ) + assert subd.number_of_vertices() == (mesh_quads.number_of_vertices() + mesh_quads.number_of_edges() + mesh_quads.number_of_faces()) def test_tris_subdivide_quad(mesh_tris): subd = mesh_tris.subdivided(scheme="quad") assert subd.number_of_faces() == 3 * mesh_tris.number_of_faces() - assert subd.number_of_vertices() == ( - mesh_tris.number_of_vertices() + mesh_tris.number_of_edges() + mesh_tris.number_of_faces() - ) + assert subd.number_of_vertices() == (mesh_tris.number_of_vertices() + mesh_tris.number_of_edges() + mesh_tris.number_of_faces()) diff --git a/tests/compas/donttest_api_stability.py b/tests/compas/donttest_api_stability.py index d3db0a023d9..c305e5ec0ae 100644 --- a/tests/compas/donttest_api_stability.py +++ b/tests/compas/donttest_api_stability.py @@ -54,13 +54,7 @@ def get_names_in_module(module_name): exceptions = ["absolute_import", "division", "print_function"] module = importlib.import_module(module_name) all_names = module.__all__ if hasattr(module, "__all__") else dir(module) - return sorted( - [ - i - for i in all_names - if not i.startswith("_") and i not in exceptions and not inspect.ismodule(getattr(module, i)) - ] - ) + return sorted([i for i in all_names if not i.startswith("_") and i not in exceptions and not inspect.ismodule(getattr(module, i))]) if __name__ == "__main__": diff --git a/tests/compas/files/test_xml.py b/tests/compas/files/test_xml.py index 2e35b2c5c83..e092d5ef9d9 100644 --- a/tests/compas/files/test_xml.py +++ b/tests/compas/files/test_xml.py @@ -59,9 +59,7 @@ def test_xml_to_pretty_string(basic_xml): def test_namespaces_to_string(): - xml = XML.from_string( - """""" - ) + xml = XML.from_string("""""") xml_string = xml.to_string(prettify=True) assert b'xmlns:xacro="http://www.ros.org/wiki/xacro"' in xml_string assert b"