Skip to content

Commit

Permalink
Update tools and satisfy them
Browse files Browse the repository at this point in the history
Rename 'types' to 'cbtyping';
Rename array to 'series'

Fix bug #60
Fix bug #70
Fix bug #63
  • Loading branch information
FranzBangar committed Feb 16, 2025
1 parent 8f29231 commit d3fd94e
Show file tree
Hide file tree
Showing 91 changed files with 181 additions and 197 deletions.
2 changes: 1 addition & 1 deletion examples/complex/cyclone/geometry.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
)

from classy_blocks.base.exceptions import GeometryConstraintError
from classy_blocks.types import NPPointType
from classy_blocks.cbtyping import NPPointType
from classy_blocks.util import functions as f
from classy_blocks.util.constants import vector_format as fvect

Expand Down
2 changes: 1 addition & 1 deletion examples/complex/cyclone/regions/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

import classy_blocks as cb
from classy_blocks.base.transforms import Transformation, Translation
from classy_blocks.cbtyping import NPVectorType, PointListType, PointType
from classy_blocks.construct.point import Point
from classy_blocks.construct.shapes.round import RoundSolidShape
from classy_blocks.types import NPVectorType, PointListType, PointType


class NineCoreDisk(cb.MappedSketch):
Expand Down
2 changes: 1 addition & 1 deletion examples/complex/cyclone/regions/pipe.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from regions.region import Region

import classy_blocks as cb
from classy_blocks.types import NPPointType
from classy_blocks.cbtyping import NPPointType
from classy_blocks.util import functions as f


Expand Down
3 changes: 1 addition & 2 deletions examples/complex/cyclone/regions/skirt.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
from typing import List, Set
from typing import List

from regions.region import Region

import classy_blocks as cb
from classy_blocks.optimize.clamps.clamp import ClampBase


class Skirt(Region):
Expand Down
2 changes: 1 addition & 1 deletion examples/shape/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import numpy as np

import classy_blocks as cb
from classy_blocks.types import PointType
from classy_blocks.cbtyping import PointType
from classy_blocks.util import functions as f

# an example with a custom sketch, yielding a custom shape (square with rounded corners);
Expand Down
2 changes: 1 addition & 1 deletion examples/shape/cylinder.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
cylinder.set_start_patch("inlet")
cylinder.set_end_patch("outlet")
cylinder.set_outer_patch("walls")
cylinder.set_symmetry_patch('sym')
cylinder.set_symmetry_patch("sym")

# if curved core edges get in the way (when moving vertices, optimization, ...),
# remove them with this method:
Expand Down
3 changes: 0 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,7 @@ src_paths = ["src", "tests"]
[tool.ruff]
target-version = "py38"
line-length = 120

[tool.ruff.lint]
select = ["E", "F", "N", "UP", "YTT", "B", "A", "ARG", "RUF"]
ignore = ["RUF022"]

[[tool.mypy.overrides]]
module = "scipy,scipy.*,parameterized.*"
Expand Down
138 changes: 62 additions & 76 deletions src/classy_blocks/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,96 +45,82 @@
from .optimize.smoother import MeshSmoother, SketchSmoother

__all__ = [
# Base
"Mirror",
"Rotation",
"Scaling",
"Translation",
"Shear",
# curves
"CurveBase",
"DiscreteCurve",
"LinearInterpolatedCurve",
"SplineInterpolatedCurve",
"AnalyticCurve",
"LineCurve",
"CircleCurve",
# edges
"Arc",
"Origin",
"Angle",
"Spline",
"PolyLine",
"Project",
"OnCurve",
# Face
"Face",
# construct operations
"Operation",
"Loft",
"Extrude",
"Revolve",
"Arc",
"Box",
"Wedge",
"CircleCurve",
"ClampBase",
"Connector",
# Sketches
"MappedSketch",
"Grid",
"OneCoreDisk",
"CurveBase",
"CurveClamp",
"Cylinder",
"DiscreteCurve",
"Elbow",
"Extrude",
"ExtrudedRing",
"ExtrudedShape",
"ExtrudedStack",
"Face",
"FourCoreDisk",
"FreeClamp",
"Frustum",
"GeometricFinder",
"Grid",
"HalfDisk",
"WrappedDisk",
"Oval",
"QuarterSplineDisk",
"HalfSplineDisk",
"SplineDisk",
"QuarterSplineRing",
"HalfSplineRing",
"SplineRing",
# construct shapes
"Shape",
"ExtrudedShape",
"LoftedShape",
"RevolvedShape",
"Elbow",
"Frustum",
"Cylinder",
"SemiCylinder",
"QuarterCylinder",
"ExtrudedRing",
"RevolvedRing",
"Hemisphere",
"Shell",
# Stacks
"TransformedStack",
"ExtrudedStack",
"RevolvedStack",
# The Mesh
"Mesh",
# Modification
"GeometricFinder",
"RoundSolidFinder",
"ViewpointReorienter",
# Optimization: Clamps
"ClampBase",
"FreeClamp",
"LJoint",
"LineClamp",
"CurveClamp",
"RadialClamp",
"LineCurve",
"LinearInterpolatedCurve",
"LinkBase",
"Loft",
"LoftedShape",
"MappedSketch",
"Mesh",
"MeshOptimizer",
"MeshSmoother",
"Mirror",
"NJoint",
"OnCurve",
"OneCoreDisk",
"Operation",
"Origin",
"Oval",
"ParametricSurfaceClamp",
"PlaneClamp",
# Optimization: links
"LinkBase",
"TranslationLink",
"PolyLine",
"Project",
"QuarterCylinder",
"QuarterSplineDisk",
"QuarterSplineRing",
"RadialClamp",
"Revolve",
"RevolvedRing",
"RevolvedShape",
"RevolvedStack",
"Rotation",
"RotationLink",
"SymmetryLink",
# Optimization: optimizers and smoothers
"MeshOptimizer",
"RoundSolidFinder",
"Scaling",
"SemiCylinder",
"Shape",
"Shear",
"Shell",
"SketchOptimizer",
"MeshSmoother",
"SketchSmoother",
# Assemblies
"NJoint",
"Spline",
"SplineDisk",
"SplineInterpolatedCurve",
"SplineRing",
"SymmetryLink",
"TJoint",
"LJoint",
"TransformedStack",
"Translation",
"TranslationLink",
"ViewpointReorienter",
"Wedge",
"WrappedDisk",
]
2 changes: 1 addition & 1 deletion src/classy_blocks/base/element.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from typing import Dict, List, Optional, Sequence, TypeVar

from classy_blocks.base import transforms as tr
from classy_blocks.types import NPPointType, PointType, VectorType
from classy_blocks.cbtyping import NPPointType, PointType, VectorType

ElementBaseT = TypeVar("ElementBaseT", bound="ElementBase")

Expand Down
2 changes: 1 addition & 1 deletion src/classy_blocks/base/transforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import dataclasses
from typing import Optional

from classy_blocks.types import PointType, VectorType
from classy_blocks.cbtyping import PointType, VectorType


@dataclasses.dataclass
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion src/classy_blocks/construct/assemblies/joints.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@

import numpy as np

from classy_blocks.cbtyping import FloatListType, PointType
from classy_blocks.construct.assemblies.assembly import Assembly
from classy_blocks.construct.edges import Spline
from classy_blocks.construct.flat.sketches.disk import HalfDisk
from classy_blocks.construct.shape import Shape
from classy_blocks.construct.shapes.cylinder import SemiCylinder
from classy_blocks.types import FloatListType, PointType
from classy_blocks.util import functions as f


Expand Down
2 changes: 1 addition & 1 deletion src/classy_blocks/construct/curves/analytic.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

import numpy as np

from classy_blocks.cbtyping import NPVectorType, ParamCurveFuncType, PointType, VectorType
from classy_blocks.construct.curves.curve import FunctionCurveBase
from classy_blocks.construct.point import Point
from classy_blocks.types import NPVectorType, ParamCurveFuncType, PointType, VectorType
from classy_blocks.util import functions as f


Expand Down
6 changes: 3 additions & 3 deletions src/classy_blocks/construct/curves/curve.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import scipy.optimize

from classy_blocks.base.element import ElementBase
from classy_blocks.construct.array import Array
from classy_blocks.types import NPPointListType, NPPointType, NPVectorType, ParamCurveFuncType, PointType
from classy_blocks.cbtyping import NPPointListType, NPPointType, NPVectorType, ParamCurveFuncType, PointType
from classy_blocks.construct.series import Series
from classy_blocks.util import functions as f
from classy_blocks.util.constants import TOL

Expand Down Expand Up @@ -109,7 +109,7 @@ def get_binormal(self, param: float, delta: float = TOL) -> NPVectorType:
class PointCurveBase(CurveBase):
"""A base object for curves, defined by a list of points"""

array: Array
series: Series

def _check_param(self, param):
return int(super()._check_param(param))
Expand Down
14 changes: 7 additions & 7 deletions src/classy_blocks/construct/curves/discrete.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@

import numpy as np

from classy_blocks.construct.array import Array
from classy_blocks.cbtyping import NPPointListType, NPPointType, PointListType, PointType
from classy_blocks.construct.curves.curve import PointCurveBase
from classy_blocks.types import NPPointListType, NPPointType, PointListType, PointType
from classy_blocks.construct.series import Series
from classy_blocks.util import functions as f


Expand All @@ -20,8 +20,8 @@ class DiscreteCurve(PointCurveBase):
Length just sums the distances between points."""

def __init__(self, points: PointListType):
self.array = Array(points)
self.bounds = (0, len(self.array) - 1)
self.series = Series(points)
self.bounds = (0, len(self.series) - 1)

def discretize(
self, param_from: Optional[float] = None, param_to: Optional[float] = None, _count: int = 0
Expand All @@ -33,7 +33,7 @@ def discretize(
param_start = int(min(param_from, param_to))
param_end = int(max(param_from, param_to))

discretized = self.array[param_start : param_end + 1]
discretized = self.series[param_start : param_end + 1]

if param_from > param_to:
return np.flip(discretized, axis=0)
Expand All @@ -59,8 +59,8 @@ def center(self):
def get_point(self, param: float) -> NPPointType:
param = self._check_param(param)
index = int(param)
return self.array[index]
return self.series[index]

@property
def parts(self):
return [self.array]
return [self.series]
12 changes: 6 additions & 6 deletions src/classy_blocks/construct/curves/interpolated.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@

import numpy as np

from classy_blocks.construct.array import Array
from classy_blocks.cbtyping import PointListType
from classy_blocks.construct.curves.curve import FunctionCurveBase
from classy_blocks.construct.curves.interpolators import InterpolatorBase, LinearInterpolator, SplineInterpolator
from classy_blocks.types import PointListType
from classy_blocks.construct.series import Series
from classy_blocks.util import functions as f


Expand All @@ -26,14 +26,14 @@ class InterpolatedCurveBase(FunctionCurveBase, abc.ABC):
_interpolator: Type[InterpolatorBase]

def __init__(self, points: PointListType, extrapolate: bool = False, equalize: bool = True):
self.array = Array(points)
self.function = self._interpolator(self.array, extrapolate, equalize)
self.series = Series(points)
self.function = self._interpolator(self.series, extrapolate, equalize)
self.bounds = (0, 1)

@property
def segments(self) -> int:
"""Returns number of points this curve was created from"""
return len(self.array) - 1
return len(self.series) - 1

@property
def parts(self):
Expand All @@ -42,7 +42,7 @@ def parts(self):
# is no longer valid and needs to be rebuilt
self.function.invalidate()

return [self.array]
return [self.series]

def get_length(self, param_from: Optional[float] = None, param_to: Optional[float] = None) -> float:
"""Returns the length of this curve by summing distance between
Expand Down
6 changes: 3 additions & 3 deletions src/classy_blocks/construct/curves/interpolators.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import numpy as np
import scipy.interpolate

from classy_blocks.construct.array import Array
from classy_blocks.types import FloatListType, NPPointType, ParamCurveFuncType
from classy_blocks.cbtyping import FloatListType, NPPointType, ParamCurveFuncType
from classy_blocks.construct.series import Series


class InterpolatorBase(abc.ABC):
Expand All @@ -18,7 +18,7 @@ class InterpolatorBase(abc.ABC):
def _get_function(self) -> ParamCurveFuncType:
"""Returns an interpolation function from stored points"""

def __init__(self, points: Array, extrapolate: bool, equalize: bool = True):
def __init__(self, points: Series, extrapolate: bool, equalize: bool = True):
self.points = points
self.extrapolate = extrapolate
self.equalize = equalize
Expand Down
Loading

0 comments on commit d3fd94e

Please sign in to comment.