mirror of
https://github.com/gumyr/build123d.git
synced 2025-12-06 02:30:55 -08:00
Merge pull request #865 from gumyr/ocp781
Upgrade build123d to OCP>=7.8
This commit is contained in:
commit
cc9409f068
5 changed files with 15 additions and 25 deletions
3
.github/workflows/mypy.yml
vendored
3
.github/workflows/mypy.yml
vendored
|
|
@ -9,7 +9,8 @@ jobs:
|
||||||
python-version: [
|
python-version: [
|
||||||
"3.10",
|
"3.10",
|
||||||
# "3.11",
|
# "3.11",
|
||||||
"3.12",
|
# "3.12",
|
||||||
|
"3.13",
|
||||||
]
|
]
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
|
||||||
3
.github/workflows/test.yml
vendored
3
.github/workflows/test.yml
vendored
|
|
@ -10,7 +10,8 @@ jobs:
|
||||||
python-version: [
|
python-version: [
|
||||||
"3.10",
|
"3.10",
|
||||||
# "3.11",
|
# "3.11",
|
||||||
"3.12",
|
# "3.12",
|
||||||
|
"3.13",
|
||||||
]
|
]
|
||||||
os: [macos-13, macos-14, ubuntu-latest, windows-latest]
|
os: [macos-13, macos-14, ubuntu-latest, windows-latest]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ authors = [
|
||||||
]
|
]
|
||||||
description = "A python CAD programming library"
|
description = "A python CAD programming library"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">= 3.10, < 3.13"
|
requires-python = ">= 3.10, < 3.14"
|
||||||
keywords = [
|
keywords = [
|
||||||
"3d models",
|
"3d models",
|
||||||
"3d printing",
|
"3d printing",
|
||||||
|
|
@ -35,7 +35,7 @@ classifiers = [
|
||||||
]
|
]
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cadquery-ocp >= 7.7.0, < 7.8.0",
|
"cadquery-ocp >= 7.8.0, < 7.9.0",
|
||||||
"typing_extensions >= 4.6.0, < 5",
|
"typing_extensions >= 4.6.0, < 5",
|
||||||
"numpy >= 2, < 3",
|
"numpy >= 2, < 3",
|
||||||
"svgpathtools >= 1.5.1, < 2",
|
"svgpathtools >= 1.5.1, < 2",
|
||||||
|
|
@ -43,8 +43,8 @@ dependencies = [
|
||||||
"ezdxf >= 1.1.0, < 2",
|
"ezdxf >= 1.1.0, < 2",
|
||||||
"ipython >= 8.0.0, < 9",
|
"ipython >= 8.0.0, < 9",
|
||||||
"py-lib3mf >= 2.3.1",
|
"py-lib3mf >= 2.3.1",
|
||||||
"ocpsvg < 0.4",
|
"ocpsvg >= 0.4",
|
||||||
"trianglesolver"
|
"trianglesolver",
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.urls]
|
[project.urls]
|
||||||
|
|
@ -61,5 +61,5 @@ exclude = ["build123d._dev"]
|
||||||
write_to = "src/build123d/_version.py"
|
write_to = "src/build123d/_version.py"
|
||||||
|
|
||||||
[tool.black]
|
[tool.black]
|
||||||
target-version = ["py310", "py311", "py312"]
|
target-version = ["py310", "py311", "py312", "py313"]
|
||||||
line-length = 88
|
line-length = 88
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,6 @@ if TYPE_CHECKING: # pragma: no cover
|
||||||
from .composite import Compound # pylint: disable=R0801
|
from .composite import Compound # pylint: disable=R0801
|
||||||
from build123d.build_part import BuildPart # pylint: disable=R0801
|
from build123d.build_part import BuildPart # pylint: disable=R0801
|
||||||
|
|
||||||
HASH_CODE_MAX = 2147483647
|
|
||||||
Shapes = Literal["Vertex", "Edge", "Wire", "Face", "Shell", "Solid", "Compound"]
|
Shapes = Literal["Vertex", "Edge", "Wire", "Face", "Shell", "Solid", "Compound"]
|
||||||
TrimmingTool = Union[Plane, "Shell", "Face"]
|
TrimmingTool = Union[Plane, "Shell", "Face"]
|
||||||
TOPODS = TypeVar("TOPODS", bound=TopoDS_Shape)
|
TOPODS = TypeVar("TOPODS", bound=TopoDS_Shape)
|
||||||
|
|
@ -805,8 +804,10 @@ class Shape(NodeMixin, Generic[TOPODS]):
|
||||||
return NotImplemented
|
return NotImplemented
|
||||||
|
|
||||||
def __hash__(self) -> int:
|
def __hash__(self) -> int:
|
||||||
"""Return has code"""
|
"""Return hash code"""
|
||||||
return self.hash_code()
|
if self.wrapped is None:
|
||||||
|
return 0
|
||||||
|
return hash(self.wrapped)
|
||||||
|
|
||||||
def __rmul__(self, other):
|
def __rmul__(self, other):
|
||||||
"""right multiply for positioning operator *"""
|
"""right multiply for positioning operator *"""
|
||||||
|
|
@ -1181,19 +1182,6 @@ class Shape(NodeMixin, Generic[TOPODS]):
|
||||||
self.__class__.cast(s) for s in get_top_level_topods_shapes(self.wrapped)
|
self.__class__.cast(s) for s in get_top_level_topods_shapes(self.wrapped)
|
||||||
)
|
)
|
||||||
|
|
||||||
def hash_code(self) -> int:
|
|
||||||
"""Returns a hashed value denoting this shape. It is computed from the
|
|
||||||
TShape and the Location. The Orientation is not used.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
"""
|
|
||||||
if self.wrapped is None:
|
|
||||||
return 0
|
|
||||||
return self.wrapped.HashCode(HASH_CODE_MAX)
|
|
||||||
|
|
||||||
def intersect(
|
def intersect(
|
||||||
self, *to_intersect: Shape | Axis | Plane
|
self, *to_intersect: Shape | Axis | Plane
|
||||||
) -> None | Self | ShapeList[Self]:
|
) -> None | Self | ShapeList[Self]:
|
||||||
|
|
@ -2852,7 +2840,7 @@ def _topods_entities(shape: TopoDS_Shape, topo_type: Shapes) -> list[TopoDS_Shap
|
||||||
|
|
||||||
while explorer.More():
|
while explorer.More():
|
||||||
item = explorer.Current()
|
item = explorer.Current()
|
||||||
out[item.HashCode(HASH_CODE_MAX)] = (
|
out[hash(item)] = (
|
||||||
item # needed to avoid pseudo-duplicate entities
|
item # needed to avoid pseudo-duplicate entities
|
||||||
)
|
)
|
||||||
explorer.Next()
|
explorer.Next()
|
||||||
|
|
|
||||||
|
|
@ -3559,7 +3559,7 @@ class TestShape(DirectApiTestCase):
|
||||||
with self.assertRaises(ValueError):
|
with self.assertRaises(ValueError):
|
||||||
empty.geom_type
|
empty.geom_type
|
||||||
self.assertIs(empty, empty.fix())
|
self.assertIs(empty, empty.fix())
|
||||||
self.assertEqual(empty.hash_code(), 0)
|
self.assertEqual(hash(empty), 0)
|
||||||
self.assertFalse(empty.is_same(Solid()))
|
self.assertFalse(empty.is_same(Solid()))
|
||||||
self.assertFalse(empty.is_equal(Solid()))
|
self.assertFalse(empty.is_equal(Solid()))
|
||||||
self.assertTrue(empty.is_valid())
|
self.assertTrue(empty.is_valid())
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue