openepd 6.10.0__tar.gz → 6.11.0__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 (142) hide show
  1. {openepd-6.10.0 → openepd-6.11.0}/PKG-INFO +1 -1
  2. {openepd-6.10.0 → openepd-6.11.0}/pyproject.toml +1 -1
  3. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/__version__.py +1 -1
  4. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/furnishings.py +100 -2
  5. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/steel.py +18 -6
  6. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/furnishings.py +78 -2
  7. {openepd-6.10.0 → openepd-6.11.0}/LICENSE +0 -0
  8. {openepd-6.10.0 → openepd-6.11.0}/README.md +0 -0
  9. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/__init__.py +0 -0
  10. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/__init__.py +0 -0
  11. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/average_dataset/__init__.py +0 -0
  12. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/average_dataset/generic_estimate_sync_api.py +0 -0
  13. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/average_dataset/industry_epd_sync_api.py +0 -0
  14. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/base_sync_client.py +0 -0
  15. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/category/__init__.py +0 -0
  16. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/category/dto.py +0 -0
  17. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/category/sync_api.py +0 -0
  18. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/common.py +0 -0
  19. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/dto/__init__.py +0 -0
  20. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/dto/base.py +0 -0
  21. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/dto/common.py +0 -0
  22. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/dto/meta.py +0 -0
  23. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/dto/mf.py +0 -0
  24. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/dto/params.py +0 -0
  25. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/epd/__init__.py +0 -0
  26. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/epd/dto.py +0 -0
  27. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/epd/sync_api.py +0 -0
  28. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/errors.py +0 -0
  29. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/pcr/__init__.py +0 -0
  30. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/pcr/sync_api.py +0 -0
  31. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/sync_client.py +0 -0
  32. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/test/__init__.py +0 -0
  33. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/api/utils.py +0 -0
  34. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/bundle/__init__.py +0 -0
  35. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/bundle/base.py +0 -0
  36. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/bundle/model.py +0 -0
  37. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/bundle/reader.py +0 -0
  38. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/bundle/writer.py +0 -0
  39. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/compat/__init__.py +0 -0
  40. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/compat/compat_functional_validators.py +0 -0
  41. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/compat/pydantic.py +0 -0
  42. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/__init__.py +0 -0
  43. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/base.py +0 -0
  44. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/category.py +0 -0
  45. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/common.py +0 -0
  46. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/declaration.py +0 -0
  47. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/epd.py +0 -0
  48. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/factory.py +0 -0
  49. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/generic_estimate.py +0 -0
  50. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/geography.py +0 -0
  51. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/industry_epd.py +0 -0
  52. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/lcia.py +0 -0
  53. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/org.py +0 -0
  54. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/pcr.py +0 -0
  55. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/README.md +0 -0
  56. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/__init__.py +0 -0
  57. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/asphalt.py +0 -0
  58. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/base.py +0 -0
  59. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/concrete.py +0 -0
  60. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/enums.py +0 -0
  61. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/__init__.py +0 -0
  62. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/accessories.py +0 -0
  63. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/aggregates.py +0 -0
  64. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/aluminium.py +0 -0
  65. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/asphalt.py +0 -0
  66. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/bulk_materials.py +0 -0
  67. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/cast_decks_and_underlayment.py +0 -0
  68. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/cladding.py +0 -0
  69. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/cmu.py +0 -0
  70. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/concrete.py +0 -0
  71. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/conveying_equipment.py +0 -0
  72. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/electrical.py +0 -0
  73. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py +0 -0
  74. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/electricity.py +0 -0
  75. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/finishes.py +0 -0
  76. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/fire_and_smoke_protection.py +0 -0
  77. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/grouting.py +0 -0
  78. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/manufacturing_inputs.py +0 -0
  79. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/masonry.py +0 -0
  80. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/material_handling.py +0 -0
  81. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/mechanical.py +0 -0
  82. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/mechanical_insulation.py +0 -0
  83. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/network_infrastructure.py +0 -0
  84. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/openings.py +0 -0
  85. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/other_electrical_equipment.py +0 -0
  86. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/other_materials.py +0 -0
  87. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/plumbing.py +0 -0
  88. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/precast_concrete.py +0 -0
  89. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/sheathing.py +0 -0
  90. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/thermal_moisture_protection.py +0 -0
  91. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/utility_piping.py +0 -0
  92. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/wood.py +0 -0
  93. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/range/wood_joists.py +0 -0
  94. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/__init__.py +0 -0
  95. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/accessories.py +0 -0
  96. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/aggregates.py +0 -0
  97. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/aluminium.py +0 -0
  98. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/asphalt.py +0 -0
  99. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/bulk_materials.py +0 -0
  100. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/cast_decks_and_underlayment.py +0 -0
  101. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/cladding.py +0 -0
  102. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/cmu.py +0 -0
  103. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/common.py +0 -0
  104. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/concrete.py +0 -0
  105. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/conveying_equipment.py +0 -0
  106. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/deprecated/__init__.py +0 -0
  107. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/deprecated/concrete.py +0 -0
  108. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/deprecated/steel.py +0 -0
  109. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/electrical.py +0 -0
  110. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/electrical_transmission_and_distribution_equipment.py +0 -0
  111. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/electricity.py +0 -0
  112. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/finishes.py +0 -0
  113. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/fire_and_smoke_protection.py +0 -0
  114. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/grouting.py +0 -0
  115. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/manufacturing_inputs.py +0 -0
  116. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/masonry.py +0 -0
  117. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/material_handling.py +0 -0
  118. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/mechanical.py +0 -0
  119. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/mechanical_insulation.py +0 -0
  120. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/mixins/__init__.py +0 -0
  121. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/mixins/conduit_mixin.py +0 -0
  122. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/network_infrastructure.py +0 -0
  123. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/openings.py +0 -0
  124. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/other_electrical_equipment.py +0 -0
  125. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/other_materials.py +0 -0
  126. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/plumbing.py +0 -0
  127. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/precast_concrete.py +0 -0
  128. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/sheathing.py +0 -0
  129. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/steel.py +0 -0
  130. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/thermal_moisture_protection.py +0 -0
  131. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/utility_piping.py +0 -0
  132. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/wood.py +0 -0
  133. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/specs/singular/wood_joists.py +0 -0
  134. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/standard.py +0 -0
  135. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/validation/__init__.py +0 -0
  136. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/validation/common.py +0 -0
  137. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/validation/enum.py +0 -0
  138. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/validation/numbers.py +0 -0
  139. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/validation/quantity.py +0 -0
  140. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/model/versioning.py +0 -0
  141. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/patch_pydantic.py +0 -0
  142. {openepd-6.10.0 → openepd-6.11.0}/src/openepd/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openepd
3
- Version: 6.10.0
3
+ Version: 6.11.0
4
4
  Summary: Python library to work with OpenEPD format
5
5
  Home-page: https://github.com/cchangelabs/openepd
6
6
  License: Apache-2.0
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "openepd"
3
- version = "6.10.0"
3
+ version = "6.11.0"
4
4
  license = "Apache-2.0"
5
5
  description = "Python library to work with OpenEPD format"
6
6
  authors = ["C-Change Labs <support@c-change-labs.com>"]
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- VERSION = "6.10.0"
16
+ VERSION = "6.11.0"
@@ -19,9 +19,16 @@ __all__ = (
19
19
  "CountertopsRangeV1",
20
20
  "DemountablePartitionsRangeV1",
21
21
  "OtherFurnishingsRangeV1",
22
+ "OpenStorageRangeV1",
23
+ "ClosedStorageRangeV1",
24
+ "RetractableStorageRangeV1",
25
+ "MobileStorageRangeV1",
26
+ "WallMountedShelvingRangeV1",
27
+ "OtherStorageFurnitureRangeV1",
22
28
  "StorageFurnitureRangeV1",
23
29
  "TablesRangeV1",
24
30
  "WorkSurfacesRangeV1",
31
+ "WorkspacesRangeV1",
25
32
  "FurnishingsRangeV1",
26
33
  )
27
34
 
@@ -89,6 +96,76 @@ class OtherFurnishingsRangeV1(BaseOpenEpdHierarchicalSpec):
89
96
  _EXT_VERSION = "1.0"
90
97
 
91
98
 
99
+ class OpenStorageRangeV1(BaseOpenEpdHierarchicalSpec):
100
+ """
101
+ Open Storage.
102
+
103
+ Open Storage furniture which is static and has no moving parts.
104
+
105
+ Range version.
106
+ """
107
+
108
+ _EXT_VERSION = "1.0"
109
+
110
+
111
+ class ClosedStorageRangeV1(BaseOpenEpdHierarchicalSpec):
112
+ """
113
+ Closed Storage.
114
+
115
+ Closed storage furniture making use of doors, sliding and/or hinged parts.
116
+
117
+ Range version.
118
+ """
119
+
120
+ _EXT_VERSION = "1.0"
121
+
122
+
123
+ class RetractableStorageRangeV1(BaseOpenEpdHierarchicalSpec):
124
+ """
125
+ Retractable Storage.
126
+
127
+ Storage Furniture with retractable (drawer) elements.
128
+
129
+ Range version.
130
+ """
131
+
132
+ _EXT_VERSION = "1.0"
133
+
134
+
135
+ class MobileStorageRangeV1(BaseOpenEpdHierarchicalSpec):
136
+ """
137
+ Mobile Storage.
138
+
139
+ Mobile storage furniture having wheels or casters for movement.
140
+
141
+ Range version.
142
+ """
143
+
144
+ _EXT_VERSION = "1.0"
145
+
146
+
147
+ class WallMountedShelvingRangeV1(BaseOpenEpdHierarchicalSpec):
148
+ """
149
+ Wall Mounted Shelving.
150
+
151
+ Storage furniture which requires usage of a vertical structure for attachment and functional support.
152
+
153
+ Range version.
154
+ """
155
+
156
+ _EXT_VERSION = "1.0"
157
+
158
+
159
+ class OtherStorageFurnitureRangeV1(BaseOpenEpdHierarchicalSpec):
160
+ """
161
+ Other Storage Furniture.
162
+
163
+ Range version.
164
+ """
165
+
166
+ _EXT_VERSION = "1.0"
167
+
168
+
92
169
  class StorageFurnitureRangeV1(BaseOpenEpdHierarchicalSpec):
93
170
  """
94
171
  Storage Furniture.
@@ -96,7 +173,14 @@ class StorageFurnitureRangeV1(BaseOpenEpdHierarchicalSpec):
96
173
  Range version.
97
174
  """
98
175
 
99
- _EXT_VERSION = "1.0"
176
+ _EXT_VERSION = "1.1"
177
+
178
+ OpenStorage: OpenStorageRangeV1 | None = None
179
+ ClosedStorage: ClosedStorageRangeV1 | None = None
180
+ RetractableStorage: RetractableStorageRangeV1 | None = None
181
+ MobileStorage: MobileStorageRangeV1 | None = None
182
+ WallMountedShelving: WallMountedShelvingRangeV1 | None = None
183
+ OtherStorageFurniture: OtherStorageFurnitureRangeV1 | None = None
100
184
 
101
185
 
102
186
  class TablesRangeV1(BaseOpenEpdHierarchicalSpec):
@@ -119,6 +203,19 @@ class WorkSurfacesRangeV1(BaseOpenEpdHierarchicalSpec):
119
203
  _EXT_VERSION = "1.0"
120
204
 
121
205
 
206
+ class WorkspacesRangeV1(BaseOpenEpdHierarchicalSpec):
207
+ """
208
+ Workspaces.
209
+
210
+ Office furniture and furniture systems for performing office work, such as cubicle systems.
211
+ Typically includes component(s) that may fit in other categories.
212
+
213
+ Range version.
214
+ """
215
+
216
+ _EXT_VERSION = "1.0"
217
+
218
+
122
219
  class FurnishingsRangeV1(BaseOpenEpdHierarchicalSpec):
123
220
  """
124
221
  Home and office furnishings.
@@ -126,7 +223,7 @@ class FurnishingsRangeV1(BaseOpenEpdHierarchicalSpec):
126
223
  Range version.
127
224
  """
128
225
 
129
- _EXT_VERSION = "1.0"
226
+ _EXT_VERSION = "1.1"
130
227
 
131
228
  Chairs: ChairsRangeV1 | None = None
132
229
  Countertops: CountertopsRangeV1 | None = None
@@ -135,3 +232,4 @@ class FurnishingsRangeV1(BaseOpenEpdHierarchicalSpec):
135
232
  StorageFurniture: StorageFurnitureRangeV1 | None = None
136
233
  Tables: TablesRangeV1 | None = None
137
234
  WorkSurfaces: WorkSurfacesRangeV1 | None = None
235
+ Workspaces: WorkspacesRangeV1 | None = None
@@ -227,10 +227,12 @@ class StructuralSteelRangeV1(BaseOpenEpdHierarchicalSpec):
227
227
  _EXT_VERSION = "1.0"
228
228
 
229
229
  modulus_of_elasticity: AmountRangePressureMpa | None = pyd.Field(
230
- default=None, description="Modulus of Elasticity, https://en.wikipedia.org/wiki/Elastic_modulus "
230
+ default=None,
231
+ description="Modulus of Elasticity, https://en.wikipedia.org/wiki/Elastic_modulus ",
231
232
  )
232
233
  thermal_expansion: AmountRangeThermalExpansion | None = pyd.Field(
233
- default=None, description="Thermal Expansion, https://en.wikipedia.org/wiki/Thermal_expansion"
234
+ default=None,
235
+ description="Thermal Expansion, https://en.wikipedia.org/wiki/Thermal_expansion",
234
236
  )
235
237
  thermal_conductivity: AmountRangeThermalConductivity | None = pyd.Field(
236
238
  default=None,
@@ -280,7 +282,8 @@ class RebarSteelRangeV1(BaseOpenEpdHierarchicalSpec):
280
282
  diameter_min: AmountRangeLengthMm | None = pyd.Field(default=None, description="Minimal diameter")
281
283
  bending_pin_max: RangeFloat | None = pyd.Field(default=None)
282
284
  ts_ys_ratio_max: RangeFloat | None = pyd.Field(
283
- default=None, description="Max ratio of ultimate tensile to yield tensile strength"
285
+ default=None,
286
+ description="Max ratio of ultimate tensile to yield tensile strength",
284
287
  )
285
288
  epoxy_coated: bool | None = pyd.Field(default=None)
286
289
 
@@ -297,6 +300,12 @@ class WireMeshSteelRangeV1(BaseOpenEpdHierarchicalSpec):
297
300
  fabricated: bool | None = None
298
301
 
299
302
 
303
+ class OtherSteelRangeV1(BaseOpenEpdHierarchicalSpec):
304
+ """Steel products that do not fit into a defined subcategory."""
305
+
306
+ _EXT_VERSION = "1.0"
307
+
308
+
300
309
  class SteelRangeV1(BaseOpenEpdHierarchicalSpec):
301
310
  """
302
311
  Broad category for construction materials made from steel and its alloys.
@@ -304,18 +313,20 @@ class SteelRangeV1(BaseOpenEpdHierarchicalSpec):
304
313
  Range version.
305
314
  """
306
315
 
307
- _EXT_VERSION = "1.0"
316
+ _EXT_VERSION = "1.1"
308
317
 
309
318
  yield_tensile_str: AmountRangePressureMpa | None = pyd.Field(
310
319
  default=None,
311
320
  description="Yield Tensile strength (Mpa) per unit area. Yield strength is the point at which a material begins to permanently deform or change shape due to applied stress.",
312
321
  )
313
322
  bar_elongation: RangeFloat | None = pyd.Field(
314
- default=None, description="Increase in length at break, in percent. Typically 10%-20%"
323
+ default=None,
324
+ description="Increase in length at break, in percent. Typically 10%-20%",
315
325
  )
316
326
  recycled_content: RangeRatioFloat | None = pyd.Field(default=None, description="")
317
327
  post_consumer_recycled_content: RangeRatioFloat | None = pyd.Field(
318
- default=None, description="Should be a number between zero and the Recycled Content (steel_recycled_content)"
328
+ default=None,
329
+ description="Should be a number between zero and the Recycled Content (steel_recycled_content)",
319
330
  )
320
331
  astm_marking: str | None = pyd.Field(default=None, description="The marking to be expected on the product.")
321
332
  euro_marking: str | None = pyd.Field(default=None, description="The marking to be expected on the product.")
@@ -335,3 +346,4 @@ class SteelRangeV1(BaseOpenEpdHierarchicalSpec):
335
346
  PostTensioningSteel: PostTensioningSteelRangeV1 | None = None
336
347
  RebarSteel: RebarSteelRangeV1 | None = None
337
348
  WireMeshSteel: WireMeshSteelRangeV1 | None = None
349
+ OtherSteel: OtherSteelRangeV1 | None = None
@@ -56,10 +56,74 @@ class OtherFurnishingsV1(BaseOpenEpdHierarchicalSpec):
56
56
  _EXT_VERSION = "1.0"
57
57
 
58
58
 
59
+ class OpenStorageV1(BaseOpenEpdHierarchicalSpec):
60
+ """
61
+ Open Storage.
62
+
63
+ Open Storage furniture which is static and has no moving parts.
64
+ """
65
+
66
+ _EXT_VERSION = "1.0"
67
+
68
+
69
+ class ClosedStorageV1(BaseOpenEpdHierarchicalSpec):
70
+ """
71
+ Closed Storage.
72
+
73
+ Closed storage furniture making use of doors, sliding and/or hinged parts.
74
+ """
75
+
76
+ _EXT_VERSION = "1.0"
77
+
78
+
79
+ class RetractableStorageV1(BaseOpenEpdHierarchicalSpec):
80
+ """
81
+ Retractable Storage.
82
+
83
+ Storage Furniture with retractable (drawer) elements.
84
+ """
85
+
86
+ _EXT_VERSION = "1.0"
87
+
88
+
89
+ class MobileStorageV1(BaseOpenEpdHierarchicalSpec):
90
+ """
91
+ Mobile Storage.
92
+
93
+ Mobile storage furniture having wheels or casters for movement.
94
+ """
95
+
96
+ _EXT_VERSION = "1.0"
97
+
98
+
99
+ class WallMountedShelvingV1(BaseOpenEpdHierarchicalSpec):
100
+ """
101
+ Wall Mounted Shelving.
102
+
103
+ Storage furniture which requires usage of a vertical structure for attachment and functional support.
104
+ """
105
+
106
+ _EXT_VERSION = "1.0"
107
+
108
+
109
+ class OtherStorageFurnitureV1(BaseOpenEpdHierarchicalSpec):
110
+ """Other Storage Furniture."""
111
+
112
+ _EXT_VERSION = "1.0"
113
+
114
+
59
115
  class StorageFurnitureV1(BaseOpenEpdHierarchicalSpec):
60
116
  """Storage Furniture."""
61
117
 
62
- _EXT_VERSION = "1.0"
118
+ _EXT_VERSION = "1.1"
119
+
120
+ # Nested specs:
121
+ OpenStorage: OpenStorageV1 | None = None
122
+ ClosedStorage: ClosedStorageV1 | None = None
123
+ RetractableStorage: RetractableStorageV1 | None = None
124
+ MobileStorage: MobileStorageV1 | None = None
125
+ WallMountedShelving: WallMountedShelvingV1 | None = None
126
+ OtherStorageFurniture: OtherStorageFurnitureV1 | None = None
63
127
 
64
128
 
65
129
  class TablesV1(BaseOpenEpdHierarchicalSpec):
@@ -74,10 +138,21 @@ class WorkSurfacesV1(BaseOpenEpdHierarchicalSpec):
74
138
  _EXT_VERSION = "1.0"
75
139
 
76
140
 
141
+ class WorkspacesV1(BaseOpenEpdHierarchicalSpec):
142
+ """
143
+ Workspaces.
144
+
145
+ Office furniture and furniture systems for performing office work, such as cubicle systems.
146
+ Typically includes component(s) that may fit in other categories.
147
+ """
148
+
149
+ _EXT_VERSION = "1.0"
150
+
151
+
77
152
  class FurnishingsV1(BaseOpenEpdHierarchicalSpec):
78
153
  """Home and office furnishings."""
79
154
 
80
- _EXT_VERSION = "1.0"
155
+ _EXT_VERSION = "1.1"
81
156
 
82
157
  # Nested specs:
83
158
  Chairs: ChairsV1 | None = None
@@ -87,3 +162,4 @@ class FurnishingsV1(BaseOpenEpdHierarchicalSpec):
87
162
  StorageFurniture: StorageFurnitureV1 | None = None
88
163
  Tables: TablesV1 | None = None
89
164
  WorkSurfaces: WorkSurfacesV1 | None = None
165
+ Workspaces: WorkspacesV1 | None = None
File without changes
File without changes
File without changes