openepd 6.17.1__py3-none-any.whl → 6.18.0__py3-none-any.whl

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.
openepd/__version__.py CHANGED
@@ -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.17.1"
16
+ VERSION = "6.18.0"
@@ -50,10 +50,6 @@ from openepd.model.common import RangeAmount, RangeFloat, RangeInt, RangeRatioFl
50
50
  from openepd.model.org import OrgRef
51
51
  from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
52
52
  from openepd.model.specs.enums import (
53
- AccessFlooringCoreMaterial,
54
- AccessFlooringFinishMaterial,
55
- AccessFlooringSeismicRating,
56
- AccessFlooringStringers,
57
53
  AllFabrication,
58
54
  CarpetFormFactor,
59
55
  CarpetIntendedApplication,
@@ -76,17 +72,16 @@ from openepd.model.specs.enums import (
76
72
  WoodFlooringFabrication,
77
73
  WoodFlooringTimberSpecies,
78
74
  )
75
+ from openepd.model.specs.range.mixins.access_flooring_mixin import AccessFlooringRangeMixin
79
76
  from openepd.model.validation.quantity import (
80
- AmountRangeForce,
81
77
  AmountRangeGWP,
82
78
  AmountRangeLengthMm,
83
- AmountRangePressureMpa,
84
79
  AmountRangeRFactor,
85
80
  AmountRangeYarnWeight,
86
81
  )
87
82
 
88
83
 
89
- class AccessFlooringRangeV1(BaseOpenEpdHierarchicalSpec):
84
+ class AccessFlooringRangeV1(BaseOpenEpdHierarchicalSpec, AccessFlooringRangeMixin):
90
85
  """
91
86
  Elevated floor system built on top of concrete slab surface.
92
87
 
@@ -98,22 +93,6 @@ class AccessFlooringRangeV1(BaseOpenEpdHierarchicalSpec):
98
93
 
99
94
  _EXT_VERSION = "1.0"
100
95
 
101
- core_material: list[AccessFlooringCoreMaterial] | None = pyd.Field(default=None, description="")
102
- finish_material: list[AccessFlooringFinishMaterial] | None = pyd.Field(default=None, description="")
103
- stringers: list[AccessFlooringStringers] | None = pyd.Field(default=None, description="")
104
- seismic_rating: list[AccessFlooringSeismicRating] | None = pyd.Field(default=None, description="")
105
- magnetically_attached_finish: bool | None = pyd.Field(default=None, description="")
106
- permanent_finish: bool | None = pyd.Field(default=None, description="")
107
- drylay: bool | None = pyd.Field(default=None, description="")
108
- adjustable_height: bool | None = pyd.Field(default=None, description="")
109
- fixed_height: bool | None = pyd.Field(default=None, description="")
110
- finished_floor_height: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
111
- panel_thickness: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
112
- concentrated_load: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
113
- uniform_load: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
114
- rolling_load_10_pass: AmountRangeForce | None = pyd.Field(default=None, description="")
115
- rolling_load_10000_pass: AmountRangeForce | None = pyd.Field(default=None, description="")
116
-
117
96
 
118
97
  class CarpetRangeV1(BaseOpenEpdHierarchicalSpec):
119
98
  """
@@ -44,6 +44,7 @@ from openepd.model.specs.enums import (
44
44
  MasonryCementAstmC91Type,
45
45
  TextilesFabricType,
46
46
  )
47
+ from openepd.model.specs.range.mixins.access_flooring_mixin import AccessFlooringRangeMixin
47
48
 
48
49
 
49
50
  class CementRangeV1(BaseOpenEpdHierarchicalSpec):
@@ -170,6 +171,16 @@ class TextilesRangeV1(BaseOpenEpdHierarchicalSpec):
170
171
  fabric_type: list[TextilesFabricType] | None = pyd.Field(default=None, description="")
171
172
 
172
173
 
174
+ class AccessFlooringPanelsRangeV1(BaseOpenEpdHierarchicalSpec, AccessFlooringRangeMixin):
175
+ """
176
+ Part of an access floor system.
177
+
178
+ Panels are laid on top of an access floor pedestal, creating a finish floor.
179
+ """
180
+
181
+ _EXT_VERSION = "1.0"
182
+
183
+
173
184
  class ManufacturingInputsRangeV1(BaseOpenEpdHierarchicalSpec):
174
185
  """
175
186
  Manufacturing inputs.
@@ -180,7 +191,7 @@ class ManufacturingInputsRangeV1(BaseOpenEpdHierarchicalSpec):
180
191
  Range version.
181
192
  """
182
193
 
183
- _EXT_VERSION = "1.0"
194
+ _EXT_VERSION = "1.1"
184
195
 
185
196
  AccessFlooringPedestals: AccessFlooringPedestalsRangeV1 | None = None
186
197
  CarpetBacking: CarpetBackingRangeV1 | None = None
@@ -188,3 +199,4 @@ class ManufacturingInputsRangeV1(BaseOpenEpdHierarchicalSpec):
188
199
  CementitiousMaterials: CementitiousMaterialsRangeV1 | None = None
189
200
  ConcreteAdmixtures: ConcreteAdmixturesRangeV1 | None = None
190
201
  Textiles: TextilesRangeV1 | None = None
202
+ AccessFlooringPanels: AccessFlooringPanelsRangeV1 | None = None
@@ -0,0 +1,15 @@
1
+ #
2
+ # Copyright 2025 by C Change Labs Inc. www.c-change-labs.com
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
@@ -0,0 +1,42 @@
1
+ #
2
+ # Copyright 2025 by C Change Labs Inc. www.c-change-labs.com
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+ from openepd.compat.pydantic import pyd
17
+ from openepd.model.specs.base import BaseOpenEpdSpec
18
+ from openepd.model.specs.enums import (
19
+ AccessFlooringCoreMaterial,
20
+ AccessFlooringFinishMaterial,
21
+ AccessFlooringSeismicRating,
22
+ AccessFlooringStringers,
23
+ )
24
+ from openepd.model.validation.quantity import AmountRangeForce, AmountRangeLengthMm, AmountRangePressureMpa
25
+
26
+
27
+ class AccessFlooringRangeMixin(BaseOpenEpdSpec):
28
+ core_material: list[AccessFlooringCoreMaterial] | None = pyd.Field(default=None, description="")
29
+ finish_material: list[AccessFlooringFinishMaterial] | None = pyd.Field(default=None, description="")
30
+ stringers: list[AccessFlooringStringers] | None = pyd.Field(default=None, description="")
31
+ seismic_rating: list[AccessFlooringSeismicRating] | None = pyd.Field(default=None, description="")
32
+ magnetically_attached_finish: bool | None = pyd.Field(default=None, description="")
33
+ permanent_finish: bool | None = pyd.Field(default=None, description="")
34
+ drylay: bool | None = pyd.Field(default=None, description="")
35
+ adjustable_height: bool | None = pyd.Field(default=None, description="")
36
+ fixed_height: bool | None = pyd.Field(default=None, description="")
37
+ finished_floor_height: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
38
+ panel_thickness: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
39
+ concentrated_load: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
40
+ uniform_load: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
41
+ rolling_load_10_pass: AmountRangeForce | None = pyd.Field(default=None, description="")
42
+ rolling_load_10000_pass: AmountRangeForce | None = pyd.Field(default=None, description="")
@@ -16,10 +16,6 @@
16
16
  from openepd.compat.pydantic import pyd
17
17
  from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
18
18
  from openepd.model.specs.enums import (
19
- AccessFlooringCoreMaterial,
20
- AccessFlooringFinishMaterial,
21
- AccessFlooringSeismicRating,
22
- AccessFlooringStringers,
23
19
  AllFabrication,
24
20
  CarpetFormFactor,
25
21
  CarpetIntendedApplication,
@@ -43,14 +39,13 @@ from openepd.model.specs.enums import (
43
39
  WoodFlooringTimberSpecies,
44
40
  )
45
41
  from openepd.model.specs.singular.common import HasForestPracticesCertifiers
42
+ from openepd.model.specs.singular.mixins.access_flooring_mixin import AccessFlooringMixin
46
43
  from openepd.model.validation.numbers import RatioFloat
47
44
  from openepd.model.validation.quantity import (
48
45
  AreaPerVolumeStr,
49
- ForceNStr,
50
46
  GwpKgCo2eStr,
51
47
  LengthMmStr,
52
48
  LengthMStr,
53
- PressureMPaStr,
54
49
  RFactorStr,
55
50
  YarnWeightStr,
56
51
  validate_quantity_ge_factory,
@@ -59,7 +54,7 @@ from openepd.model.validation.quantity import (
59
54
  )
60
55
 
61
56
 
62
- class AccessFlooringV1(BaseOpenEpdHierarchicalSpec):
57
+ class AccessFlooringV1(BaseOpenEpdHierarchicalSpec, AccessFlooringMixin):
63
58
  """
64
59
  Elevated floor system built on top of concrete slab surface.
65
60
 
@@ -69,30 +64,6 @@ class AccessFlooringV1(BaseOpenEpdHierarchicalSpec):
69
64
 
70
65
  _EXT_VERSION = "1.0"
71
66
 
72
- # Own fields:
73
- core_material: AccessFlooringCoreMaterial | None = pyd.Field(default=None, description="", example="Cementitious")
74
- finish_material: AccessFlooringFinishMaterial | None = pyd.Field(default=None, description="", example="Linoleum")
75
- stringers: AccessFlooringStringers | None = pyd.Field(default=None, description="", example="Standard")
76
- seismic_rating: AccessFlooringSeismicRating | None = pyd.Field(default=None, description="", example="Type 0")
77
- magnetically_attached_finish: bool | None = pyd.Field(default=None, description="", example=True)
78
- permanent_finish: bool | None = pyd.Field(default=None, description="", example=True)
79
- drylay: bool | None = pyd.Field(default=None, description="", example=True)
80
- adjustable_height: bool | None = pyd.Field(default=None, description="", example=True)
81
- fixed_height: bool | None = pyd.Field(default=None, description="", example=True)
82
- finished_floor_height: LengthMmStr | None = pyd.Field(default=None, description="", example="1 m")
83
- panel_thickness: LengthMmStr | None = pyd.Field(default=None, description="", example="1 m")
84
- concentrated_load: PressureMPaStr | None = pyd.Field(default=None, description="", example="1 MPa")
85
- uniform_load: PressureMPaStr | None = pyd.Field(default=None, description="", example="1 MPa")
86
- rolling_load_10_pass: ForceNStr | None = pyd.Field(default=None, description="", example="1 N")
87
- rolling_load_10000_pass: ForceNStr | None = pyd.Field(default=None, description="", example="1 N")
88
-
89
- _access_flooring_rolling_load_10_pass_is_quantity_validator = pyd.validator(
90
- "rolling_load_10_pass", allow_reuse=True
91
- )(validate_quantity_unit_factory("N"))
92
- _access_flooring_rolling_load_10000_pass_is_quantity_validator = pyd.validator(
93
- "rolling_load_10000_pass", allow_reuse=True
94
- )(validate_quantity_unit_factory("N"))
95
-
96
67
 
97
68
  class CarpetV1(BaseOpenEpdHierarchicalSpec):
98
69
  """Textile Floor Coverings."""
@@ -27,6 +27,7 @@ from openepd.model.specs.enums import (
27
27
  MasonryCementAstmC91Type,
28
28
  TextilesFabricType,
29
29
  )
30
+ from openepd.model.specs.singular.mixins.access_flooring_mixin import AccessFlooringMixin
30
31
 
31
32
 
32
33
  class CementV1(BaseOpenEpdHierarchicalSpec):
@@ -132,6 +133,16 @@ class TextilesV1(BaseOpenEpdHierarchicalSpec):
132
133
  fabric_type: list[TextilesFabricType] | None = pyd.Field(default=None, description="", example=["Leather"])
133
134
 
134
135
 
136
+ class AccessFlooringPanelsV1(BaseOpenEpdHierarchicalSpec, AccessFlooringMixin):
137
+ """
138
+ Part of an access floor system.
139
+
140
+ Panels are laid on top of an access floor pedestal, creating a finish floor.
141
+ """
142
+
143
+ _EXT_VERSION = "1.0"
144
+
145
+
135
146
  class ManufacturingInputsV1(BaseOpenEpdHierarchicalSpec):
136
147
  """
137
148
  Manufacturing inputs.
@@ -140,7 +151,7 @@ class ManufacturingInputsV1(BaseOpenEpdHierarchicalSpec):
140
151
  a construction.
141
152
  """
142
153
 
143
- _EXT_VERSION = "1.0"
154
+ _EXT_VERSION = "1.1"
144
155
 
145
156
  # Nested specs:
146
157
  AccessFlooringPedestals: AccessFlooringPedestalsV1 | None = None
@@ -149,3 +160,4 @@ class ManufacturingInputsV1(BaseOpenEpdHierarchicalSpec):
149
160
  CementitiousMaterials: CementitiousMaterialsV1 | None = None
150
161
  ConcreteAdmixtures: ConcreteAdmixturesV1 | None = None
151
162
  Textiles: TextilesV1 | None = None
163
+ AccessFlooringPanels: AccessFlooringPanelsV1 | None = None
@@ -0,0 +1,49 @@
1
+ #
2
+ # Copyright 2025 by C Change Labs Inc. www.c-change-labs.com
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+ from openepd.compat.pydantic import pyd
17
+ from openepd.model.specs.base import BaseOpenEpdSpec
18
+ from openepd.model.specs.enums import (
19
+ AccessFlooringCoreMaterial,
20
+ AccessFlooringFinishMaterial,
21
+ AccessFlooringSeismicRating,
22
+ AccessFlooringStringers,
23
+ )
24
+ from openepd.model.validation.quantity import ForceNStr, LengthMmStr, PressureMPaStr, validate_quantity_unit_factory
25
+
26
+
27
+ class AccessFlooringMixin(BaseOpenEpdSpec):
28
+ core_material: AccessFlooringCoreMaterial | None = pyd.Field(default=None, description="", example="Cementitious")
29
+ finish_material: AccessFlooringFinishMaterial | None = pyd.Field(default=None, description="", example="Linoleum")
30
+ stringers: AccessFlooringStringers | None = pyd.Field(default=None, description="", example="Standard")
31
+ seismic_rating: AccessFlooringSeismicRating | None = pyd.Field(default=None, description="", example="Type 0")
32
+ magnetically_attached_finish: bool | None = pyd.Field(default=None, description="", example=True)
33
+ permanent_finish: bool | None = pyd.Field(default=None, description="", example=True)
34
+ drylay: bool | None = pyd.Field(default=None, description="", example=True)
35
+ adjustable_height: bool | None = pyd.Field(default=None, description="", example=True)
36
+ fixed_height: bool | None = pyd.Field(default=None, description="", example=True)
37
+ finished_floor_height: LengthMmStr | None = pyd.Field(default=None, description="", example="1 m")
38
+ panel_thickness: LengthMmStr | None = pyd.Field(default=None, description="", example="1 m")
39
+ concentrated_load: PressureMPaStr | None = pyd.Field(default=None, description="", example="1 MPa")
40
+ uniform_load: PressureMPaStr | None = pyd.Field(default=None, description="", example="1 MPa")
41
+ rolling_load_10_pass: ForceNStr | None = pyd.Field(default=None, description="", example="1 N")
42
+ rolling_load_10000_pass: ForceNStr | None = pyd.Field(default=None, description="", example="1 N")
43
+
44
+ _access_flooring_rolling_load_10_pass_is_quantity_validator = pyd.validator(
45
+ "rolling_load_10_pass", allow_reuse=True
46
+ )(validate_quantity_unit_factory("N"))
47
+ _access_flooring_rolling_load_10000_pass_is_quantity_validator = pyd.validator(
48
+ "rolling_load_10000_pass", allow_reuse=True
49
+ )(validate_quantity_unit_factory("N"))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: openepd
3
- Version: 6.17.1
3
+ Version: 6.18.0
4
4
  Summary: Python library to work with OpenEPD format
5
5
  License: Apache-2.0
6
6
  Author: C-Change Labs
@@ -1,5 +1,5 @@
1
1
  openepd/__init__.py,sha256=fhxfEyEurLvSfvQci-vb3njzl_lvhcLXiZrecCOaMU8,794
2
- openepd/__version__.py,sha256=hTm9Glsw1EV1i00b9vQRl1LerwxXt8RHk7SXyVIJHQY,639
2
+ openepd/__version__.py,sha256=Nax6JWlEOZo8C77Zc0b6oQhFqjhMuCqe9NH96tOeN-M,639
3
3
  openepd/api/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
4
4
  openepd/api/average_dataset/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
5
5
  openepd/api/average_dataset/generic_estimate_sync_api.py,sha256=_eZt_jGVL1a3p9cr-EF39Ve9Vl5sB8zwzTc_slnRL50,7975
@@ -69,15 +69,17 @@ openepd/model/specs/range/electrical.py,sha256=EI8pv9SN4lJbFNz1wlyMNAjkA0dsi84pc
69
69
  openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py,sha256=xDdyLj6oJRmdybq7W91MtgE80FDpaG6ii5hE921aRGQ,2525
70
70
  openepd/model/specs/range/electricity.py,sha256=yn_S25C_tZqseb8hiJ1yiHszu2mQ49FOFWWCqNpOBY0,997
71
71
  openepd/model/specs/range/exterior_improvements.py,sha256=dcgX9Tv4U_Zki9nGcy6ykvyesDYAtS_CuD-7nf17kMQ,1736
72
- openepd/model/specs/range/finishes.py,sha256=ZvP_AShojfM_aTgFdBfjaxGfMHGZQ1PBdpfJshRYVX4,21188
72
+ openepd/model/specs/range/finishes.py,sha256=hAqnEzfSPeLS_Wq_ZiIn_k8OdivCvSCgxHAcNldqdXs,19787
73
73
  openepd/model/specs/range/fire_and_smoke_protection.py,sha256=GUap2Xrn-rFF8CMDyRcOpmQpO8JgZ7PSUXGr_SKUzws,3337
74
74
  openepd/model/specs/range/furnishings.py,sha256=_HdPg1_LepLgdo5tV59oRer1PRYniIM0kLEKbnlyoLM,6703
75
75
  openepd/model/specs/range/grouting.py,sha256=BQPxH6BvlXpdhLEZBui9zTuY93K_9syjoa6rdnF8GGY,1095
76
- openepd/model/specs/range/manufacturing_inputs.py,sha256=RFqWTQij2Zc5-Y4jzOBQKC0ENV3ncg5O9yHoqdo9rUQ,5574
76
+ openepd/model/specs/range/manufacturing_inputs.py,sha256=9KiSZC7uR2nF9pi4UjZ7XfGVhrsix_mU4HlJwj_MSVI,5986
77
77
  openepd/model/specs/range/masonry.py,sha256=P9USz744YQLBEk_XdG4v9a4ImXtMymnPC30qtbd2F6I,2867
78
78
  openepd/model/specs/range/material_handling.py,sha256=9jxRHpjMKu71B5omH55UjkNVJvaTLgTMtEidSKPFn5c,1483
79
79
  openepd/model/specs/range/mechanical.py,sha256=kyAJj9KJ17usuKDOt7v2gAJpzSEeYO9nnTOB_pht-fc,10267
80
80
  openepd/model/specs/range/mechanical_insulation.py,sha256=S2-NkFVkjLmn_dk3gsG8C2YcV0SFXbOCgY6LKberqh8,1737
81
+ openepd/model/specs/range/mixins/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
82
+ openepd/model/specs/range/mixins/access_flooring_mixin.py,sha256=JEcvlmKv3R5dVIM4X4ILH43WlMwF6FnZ4-_s2qU-MIM,2382
81
83
  openepd/model/specs/range/network_infrastructure.py,sha256=aqXEIGqFy0gNCM_ftd3J6aT3FZf9JlT0SBOImhdkTg0,8498
82
84
  openepd/model/specs/range/openings.py,sha256=4n5PEMJJFL75wMmYUcJNxdWtDMpWYZLKK4d-730KASA,15451
83
85
  openepd/model/specs/range/other_electrical_equipment.py,sha256=H4tZHcHyR2uUYHn-bQfLC6hR4tynVp_7EJbiI-YpK7Y,1001
@@ -109,16 +111,17 @@ openepd/model/specs/singular/electrical.py,sha256=BiaPpZBGBzUt5wVacd1tOIZ9dRn9ZA
109
111
  openepd/model/specs/singular/electrical_transmission_and_distribution_equipment.py,sha256=oZYyHgnXn9RH3YzltUEDiiQKrin2mvMlTgC3OhxV7DY,1978
110
112
  openepd/model/specs/singular/electricity.py,sha256=f1cJ9eklNUf97khCIZiT5-z8V_TbOcvH2me_1UTQVrE,823
111
113
  openepd/model/specs/singular/exterior_improvements.py,sha256=tf9lHxb5Mj9Sf3WGjR1wq-mKcyqlvvVKpZG2W6cLcxo,1711
112
- openepd/model/specs/singular/finishes.py,sha256=Pg6eb3-NFB45hhGltNjW_7SGeujcE882CZX7P8X8FMk,22571
114
+ openepd/model/specs/singular/finishes.py,sha256=vAN6p9eA8ysdrJ0gAD7xteuKpURmGTruVskXh17N8-E,20631
113
115
  openepd/model/specs/singular/fire_and_smoke_protection.py,sha256=1uyEGdMAsboYORHvSFN1wftRVAps_UJ1Ep3Dk9arT3s,3058
114
116
  openepd/model/specs/singular/furnishings.py,sha256=4bReWm8FSWHRyq6vmjPm7ZixFIau7J8JF1gtZq6_jVA,5732
115
117
  openepd/model/specs/singular/grouting.py,sha256=pg2tX3W7a2TQ3z_eyFYGlBJY3WEwn6JlZyqM3PQIJcU,934
116
- openepd/model/specs/singular/manufacturing_inputs.py,sha256=9WSDOVN0mUqvFXqWf82lkpHi-XRQSMcEpe9bweegwhU,5093
118
+ openepd/model/specs/singular/manufacturing_inputs.py,sha256=pUnd7oo20w8h1C0Jo-t1m2uayOYtlXJyuV26gVfkhlU,5488
117
119
  openepd/model/specs/singular/masonry.py,sha256=f6nph-gscAmVeJ60bG-ebto5kz0fgh0LY27n0VutGFA,3165
118
120
  openepd/model/specs/singular/material_handling.py,sha256=iEeUx1hNKla669y0zl-QAJn6xA7ceq75aRG8qT0p56Q,1274
119
121
  openepd/model/specs/singular/mechanical.py,sha256=VvW9PQ3VI8GCaqu5MKUmxjmcaHkKDAHAIhLyK-DVlUw,9862
120
122
  openepd/model/specs/singular/mechanical_insulation.py,sha256=h-Ir-jiLF-cpiHap4wx5G4fpvsRRKzqcGVXb5U5aqvQ,1607
121
123
  openepd/model/specs/singular/mixins/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
124
+ openepd/model/specs/singular/mixins/access_flooring_mixin.py,sha256=z_e5TYK2dtRMz--GrWQDkyyDEM0DmERZZO9V-EzAs1o,2915
122
125
  openepd/model/specs/singular/mixins/conduit_mixin.py,sha256=tj6p-MF84rg4LGxXPC65uMvmn6NlxmATuloe4TcuQdk,1928
123
126
  openepd/model/specs/singular/network_infrastructure.py,sha256=eB3p1zu1u15Ly5iuyyJ4xl3Z1GuBCRVU18Wpz8FWZrg,8521
124
127
  openepd/model/specs/singular/openings.py,sha256=UbdojHW3yxV9DdWECgyANKicdH5czz6pyFPKpzzLxmw,18941
@@ -141,7 +144,7 @@ openepd/model/validation/quantity.py,sha256=mP4gIkeOGZuHRhprsf_BX11Cic75NssYxOTk
141
144
  openepd/model/versioning.py,sha256=wBZdOVL3ND9FMIRU9PS3vx9M_7MBiO70xYPQvPez6po,4522
142
145
  openepd/patch_pydantic.py,sha256=bO7U5HqthFol0vfycb0a42UAGL3KOQ8-9MW4yCWOFP0,4150
143
146
  openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
- openepd-6.17.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
145
- openepd-6.17.1.dist-info/METADATA,sha256=BEk61RucqY3ma-xOceMUBPHbBEJvMcR4lYPkIJPi-zk,9067
146
- openepd-6.17.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
147
- openepd-6.17.1.dist-info/RECORD,,
147
+ openepd-6.18.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
148
+ openepd-6.18.0.dist-info/METADATA,sha256=KbKTmRSBbq8LSANcUMXpAmBMIxjhstZUdafIKBKFXUU,9067
149
+ openepd-6.18.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
150
+ openepd-6.18.0.dist-info/RECORD,,