compas-timber 2.1.0.dev0__tar.gz → 2.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. {compas_timber-2.1.0.dev0/src/compas_timber.egg-info → compas_timber-2.1.1}/PKG-INFO +4 -21
  2. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/pyproject.toml +4 -23
  3. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/__init__.py +1 -1
  4. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/base.py +15 -0
  5. compas_timber-2.1.1/src/compas_timber/btlx/__init__.py +5 -0
  6. compas_timber-2.1.1/src/compas_timber/btlx/reader.py +554 -0
  7. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/__init__.py +7 -13
  8. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/ball_node.py +1 -9
  9. compas_timber-2.1.1/src/compas_timber/connections/butt_joint.py +234 -0
  10. compas_timber-2.1.1/src/compas_timber/connections/cluster.py +129 -0
  11. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/joint.py +117 -11
  12. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/joint_candidate.py +5 -34
  13. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/l_butt.py +34 -18
  14. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/l_french_ridge_lap.py +1 -0
  15. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/l_lap.py +2 -12
  16. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/l_miter.py +7 -14
  17. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/lap_joint.py +11 -17
  18. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/mortise_tenon.py +7 -16
  19. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/oligina.py +1 -0
  20. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/plate_butt_joint.py +0 -10
  21. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/plate_joint.py +21 -22
  22. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/t_birdsmouth.py +8 -15
  23. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/t_butt.py +21 -7
  24. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/t_dovetail.py +7 -16
  25. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/t_lap.py +1 -8
  26. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/t_step_joint.py +9 -19
  27. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/utilities.py +34 -0
  28. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/x_lap.py +0 -10
  29. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/x_notch.py +12 -24
  30. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/y_butt.py +16 -17
  31. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/elements/fastener.py +8 -0
  32. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/elements/panel.py +208 -75
  33. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/elements/plate.py +75 -50
  34. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/elements/plate_geometry.py +86 -69
  35. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/errors.py +33 -0
  36. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/btlx.py +79 -10
  37. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/double_cut.py +8 -7
  38. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/dovetail_mortise.py +17 -16
  39. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/dovetail_tenon.py +18 -17
  40. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/drilling.py +8 -7
  41. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/free_contour.py +63 -1
  42. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/french_ridge_lap.py +7 -6
  43. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/jack_cut.py +7 -6
  44. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/lap.py +15 -14
  45. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/longitudinal_cut.py +11 -10
  46. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/mortise.py +14 -13
  47. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/pocket.py +28 -15
  48. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/slot.py +14 -13
  49. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/step_joint.py +10 -9
  50. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/step_joint_notch.py +14 -13
  51. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/tenon.py +16 -15
  52. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/text.py +11 -10
  53. compas_timber-2.1.1/src/compas_timber/geometry.py +157 -0
  54. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/model.py +152 -1
  55. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/panel_features/__init__.py +4 -0
  56. compas_timber-2.1.1/src/compas_timber/panel_features/opening.py +149 -0
  57. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/panel_features/panel_connection_interface.py +4 -0
  58. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/panel_features/panel_features.py +14 -7
  59. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/structural.py +262 -0
  60. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/utils/__init__.py +273 -10
  61. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1/src/compas_timber.egg-info}/PKG-INFO +4 -21
  62. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber.egg-info/SOURCES.txt +4 -1
  63. compas_timber-2.1.1/src/compas_timber.egg-info/requires.txt +24 -0
  64. compas_timber-2.1.0.dev0/src/compas_timber/connections/analyzers.py +0 -291
  65. compas_timber-2.1.0.dev0/src/compas_timber/connections/butt_joint.py +0 -277
  66. compas_timber-2.1.0.dev0/src/compas_timber/geometry.py +0 -62
  67. compas_timber-2.1.0.dev0/src/compas_timber.egg-info/requires.txt +0 -44
  68. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/LICENSE +0 -0
  69. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/README.md +0 -0
  70. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/setup.cfg +0 -0
  71. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/l_tenon_mortise.py +0 -0
  72. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/panel_butt_joint.py +0 -0
  73. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/panel_joint.py +0 -0
  74. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/panel_miter_joint.py +0 -0
  75. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/plate_miter_joint.py +0 -0
  76. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/solver.py +0 -0
  77. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/connections/t_tenon_mortise.py +0 -0
  78. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/elements/__init__.py +0 -0
  79. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/elements/beam.py +0 -0
  80. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/elements/fasteners/__init__.py +0 -0
  81. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/elements/fasteners/ball_node_fastener.py +0 -0
  82. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/elements/fasteners/plate_fastener.py +0 -0
  83. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/elements/features.py +0 -0
  84. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/fabrication/__init__.py +0 -0
  85. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/planning/__init__.py +0 -0
  86. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/planning/nesting.py +0 -0
  87. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/planning/sequencer.py +0 -0
  88. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/rhino/__init__.py +0 -0
  89. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/rhino/install.py +0 -0
  90. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber/utils/r_tree.py +0 -0
  91. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber.egg-info/dependency_links.txt +0 -0
  92. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber.egg-info/not-zip-safe +0 -0
  93. {compas_timber-2.1.0.dev0 → compas_timber-2.1.1}/src/compas_timber.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compas_timber
3
- Version: 2.1.0.dev0
3
+ Version: 2.1.1
4
4
  Summary: COMPAS package for modeling, designing and fabricating timber assemblies.
5
5
  Author-email: Aleksandra Anna Apolinarska <apolinarska@arch.ethz.ch>, Chen Kasirer <kasirer@arch.ethz.ch>, Gonzalo Casas <casas@arch.ethz.ch>, Jonas Haldemann <haldemann@arch.ethz.ch>, Oliver Appling Bucklin <bucklin@arch.ethz.ch>, "Aurèle L. Gheyselinck" <gheyselinck@arch.ethz.ch>, Panayiotis Papacharalambous <papacharalambous@arch.ethz.ch>, Anastasiia Stryzhevska <astryzhevska@arch.ethz.ch>, Jelle Feringa <jelleferinga@gmail.com>, Joseph Kenny <jk6372@princeton.edu>, Beverly Lytle <lytle@arch.ethz.ch>, Eric Gozzi <eric.gozzi@arch.ethz.ch>, Rodrigo Arca Zimmermann <rodrigo.arca@gmail.com>, Nicolas Benjamin Boscoboinik <boscoboinik@arch.ethz.ch>
6
6
  License-Expression: MIT
@@ -17,12 +17,12 @@ Requires-Python: >=3.9
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
19
  Requires-Dist: rtree
20
- Requires-Dist: compas<3.0,>=2.0
21
- Requires-Dist: compas_model==0.9.1
20
+ Requires-Dist: compas<3.0,>=2.15.1
21
+ Requires-Dist: compas_model==0.9.2
22
22
  Requires-Dist: scipy>=1.1
23
23
  Provides-Extra: dev
24
24
  Requires-Dist: bump-my-version; extra == "dev"
25
- Requires-Dist: compas_invocations2; extra == "dev"
25
+ Requires-Dist: compas_invocations2[mkdocs]>=1.0.2; extra == "dev"
26
26
  Requires-Dist: invoke>=0.14; extra == "dev"
27
27
  Requires-Dist: ruff; extra == "dev"
28
28
  Requires-Dist: twine; extra == "dev"
@@ -38,23 +38,6 @@ Provides-Extra: gh
38
38
  Requires-Dist: compas_invocations2; extra == "gh"
39
39
  Requires-Dist: tomlkit; extra == "gh"
40
40
  Requires-Dist: pythonnet; extra == "gh"
41
- Provides-Extra: docs
42
- Requires-Dist: markdown-callouts>=0.4; extra == "docs"
43
- Requires-Dist: markdown-exec>=1.8; extra == "docs"
44
- Requires-Dist: mike; extra == "docs"
45
- Requires-Dist: mkdocs>=1.6; extra == "docs"
46
- Requires-Dist: mkdocs-autorefs>=1.4; extra == "docs"
47
- Requires-Dist: mkdocs-coverage>=1.0; extra == "docs"
48
- Requires-Dist: mkdocs-git-revision-date-localized-plugin>=1.2; extra == "docs"
49
- Requires-Dist: mkdocs-llmstxt>=0.2; extra == "docs"
50
- Requires-Dist: mkdocs-material>=9.5; extra == "docs"
51
- Requires-Dist: mkdocs-minify-plugin>=0.8; extra == "docs"
52
- Requires-Dist: mkdocs-redirects>=1.2; extra == "docs"
53
- Requires-Dist: mkdocs-section-index>=0.3; extra == "docs"
54
- Requires-Dist: mkdocs-mermaid2-plugin; extra == "docs"
55
- Requires-Dist: mkdocstrings[python]; extra == "docs"
56
- Requires-Dist: pydantic>=2.10; extra == "docs"
57
- Requires-Dist: tomli>=2.0; python_version < "3.11" and extra == "docs"
58
41
  Dynamic: license-file
59
42
 
60
43
  <h1>
@@ -37,15 +37,15 @@ classifiers = [
37
37
 
38
38
  dependencies = [
39
39
  "rtree",
40
- "compas >=2.0, <3.0",
41
- "compas_model == 0.9.1", # pin until first release
40
+ "compas >=2.15.1, <3.0",
41
+ "compas_model == 0.9.2", # pin until first release
42
42
  "scipy >= 1.1"
43
43
  ]
44
44
 
45
45
  [project.optional-dependencies]
46
46
  dev = [
47
47
  "bump-my-version",
48
- "compas_invocations2",
48
+ "compas_invocations2[mkdocs]>=1.0.2",
49
49
  "invoke >=0.14",
50
50
  "ruff",
51
51
  "twine",
@@ -65,25 +65,6 @@ gh = [
65
65
  "pythonnet",
66
66
  ]
67
67
 
68
- docs = [
69
- "markdown-callouts >=0.4",
70
- "markdown-exec >=1.8",
71
- "mike",
72
- "mkdocs >=1.6",
73
- "mkdocs-autorefs >=1.4",
74
- "mkdocs-coverage >=1.0",
75
- "mkdocs-git-revision-date-localized-plugin >=1.2",
76
- "mkdocs-llmstxt >=0.2",
77
- "mkdocs-material >=9.5",
78
- "mkdocs-minify-plugin >=0.8",
79
- "mkdocs-redirects >=1.2",
80
- "mkdocs-section-index >=0.3",
81
- "mkdocs-mermaid2-plugin",
82
- "mkdocstrings[python]",
83
- "pydantic >=2.10",
84
- "tomli >=2.0; python_version < '3.11'",
85
- ]
86
-
87
68
  [project.urls]
88
69
  Homepage = "https://gramaziokohler.github.io/compas_timber/latest/"
89
70
  Repository = "https://github.com/gramaziokohler/compas_timber"
@@ -115,7 +96,7 @@ where = ["src"]
115
96
  # ============================================================================
116
97
 
117
98
  [tool.bumpversion]
118
- current_version = "2.1.0-dev0"
99
+ current_version = "2.1.1"
119
100
  message = "Bump version to {new_version}"
120
101
  commit = true
121
102
  tag = true
@@ -1,7 +1,7 @@
1
1
  import os
2
2
  import compas
3
3
 
4
- __version__ = "2.1.0-dev0"
4
+ __version__ = "2.1.1"
5
5
 
6
6
  HERE = os.path.dirname(__file__)
7
7
  HOME = os.path.abspath(os.path.join(HERE, "..", ".."))
@@ -95,6 +95,21 @@ class TimberElement(Element, abc.ABC):
95
95
  """Reset all computed/cached properties."""
96
96
  self._reset_computed_dummy()
97
97
 
98
+ def clear_model_dependent_cache(self):
99
+ """Clear cached attributes that depend on the element's position in the model hierarchy.
100
+
101
+ Preserves model-independent caches such as ``_elementgeometry``, features,
102
+ and blank extensions.
103
+ """
104
+ self._modeltransformation = None
105
+ self._modelgeometry = None
106
+ self._aabb = None
107
+ self._obb = None
108
+ self._collision_mesh = None
109
+ self._blank = None
110
+ self._ref_frame = None
111
+ self._geometry = None
112
+
98
113
  @property
99
114
  def is_beam(self):
100
115
  return False
@@ -0,0 +1,5 @@
1
+ from .reader import BTLxReader
2
+
3
+ __all__ = [
4
+ "BTLxReader",
5
+ ]