openepd 6.17.1__py3-none-any.whl → 6.19.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 +1 -1
- openepd/model/specs/enums.py +1 -0
- openepd/model/specs/range/concrete.py +24 -1
- openepd/model/specs/range/finishes.py +2 -23
- openepd/model/specs/range/manufacturing_inputs.py +13 -1
- openepd/model/specs/range/mixins/__init__.py +15 -0
- openepd/model/specs/range/mixins/access_flooring_mixin.py +42 -0
- openepd/model/specs/singular/concrete.py +25 -1
- openepd/model/specs/singular/finishes.py +2 -31
- openepd/model/specs/singular/manufacturing_inputs.py +13 -1
- openepd/model/specs/singular/mixins/access_flooring_mixin.py +49 -0
- {openepd-6.17.1.dist-info → openepd-6.19.0.dist-info}/METADATA +1 -1
- {openepd-6.17.1.dist-info → openepd-6.19.0.dist-info}/RECORD +15 -12
- {openepd-6.17.1.dist-info → openepd-6.19.0.dist-info}/LICENSE +0 -0
- {openepd-6.17.1.dist-info → openepd-6.19.0.dist-info}/WHEEL +0 -0
openepd/__version__.py
CHANGED
openepd/model/specs/enums.py
CHANGED
@@ -121,6 +121,27 @@ class ShotcreteRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
121
121
|
_EXT_VERSION = "1.0"
|
122
122
|
|
123
123
|
|
124
|
+
class OtherConcreteRangeV1(BaseOpenEpdHierarchicalSpec):
|
125
|
+
"""
|
126
|
+
Other Concrete.
|
127
|
+
|
128
|
+
Range version.
|
129
|
+
"""
|
130
|
+
|
131
|
+
_EXT_VERSION = "1.0"
|
132
|
+
|
133
|
+
|
134
|
+
class CellularConcreteRangeV1(BaseOpenEpdHierarchicalSpec):
|
135
|
+
"""
|
136
|
+
Cellular concrete is typically composed of cementitious material, water, and pre-formed foam with air entrainment.
|
137
|
+
|
138
|
+
Such a product is a homogeneous void or cell structure.
|
139
|
+
It is self-compacting and can be pumped over extensive heights and distances.
|
140
|
+
"""
|
141
|
+
|
142
|
+
_EXT_VERSION = "1.0"
|
143
|
+
|
144
|
+
|
124
145
|
class ConcreteRangeV1(BaseOpenEpdHierarchicalSpec):
|
125
146
|
"""
|
126
147
|
Concrete.
|
@@ -131,7 +152,7 @@ class ConcreteRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
131
152
|
Range version.
|
132
153
|
"""
|
133
154
|
|
134
|
-
_EXT_VERSION = "1.
|
155
|
+
_EXT_VERSION = "1.1"
|
135
156
|
|
136
157
|
lightweight: bool | None = pyd.Field(default=None, description="Product is lightweight")
|
137
158
|
strength_28d: AmountRangePressureMpa | None = pyd.Field(default=None, description="Concrete strength after 28 days")
|
@@ -177,3 +198,5 @@ class ConcreteRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
177
198
|
OilPatch: OilPatchRangeV1 | None = None
|
178
199
|
ReadyMix: ReadyMixRangeV1 | None = None
|
179
200
|
Shotcrete: ShotcreteRangeV1 | None = None
|
201
|
+
OtherConcrete: OtherConcreteRangeV1 | None = None
|
202
|
+
CellularConcrete: CellularConcreteRangeV1 | None = None
|
@@ -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.
|
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="")
|
@@ -99,6 +99,28 @@ class ShotcreteV1(BaseOpenEpdHierarchicalSpec):
|
|
99
99
|
_EXT_VERSION = "1.0"
|
100
100
|
|
101
101
|
|
102
|
+
class CellularConcreteV1(BaseOpenEpdHierarchicalSpec):
|
103
|
+
"""
|
104
|
+
Cellular concrete is typically composed of cementitious material, water, and pre-formed foam with air entrainment.
|
105
|
+
|
106
|
+
Such a product is a homogeneous void or cell structure.
|
107
|
+
It is self-compacting and can be pumped over extensive heights and distances.
|
108
|
+
"""
|
109
|
+
|
110
|
+
_EXT_VERSION = "1.0"
|
111
|
+
|
112
|
+
|
113
|
+
class OtherConcreteV1(BaseOpenEpdHierarchicalSpec):
|
114
|
+
"""
|
115
|
+
Other Concrete Products.
|
116
|
+
|
117
|
+
Other types of concrete products that are not captured by existing concrete categories.
|
118
|
+
Could include products such as patching concrete or additives
|
119
|
+
"""
|
120
|
+
|
121
|
+
_EXT_VERSION = "1.0"
|
122
|
+
|
123
|
+
|
102
124
|
class ConcreteV1(BaseOpenEpdHierarchicalSpec):
|
103
125
|
"""
|
104
126
|
Concrete.
|
@@ -107,7 +129,7 @@ class ConcreteV1(BaseOpenEpdHierarchicalSpec):
|
|
107
129
|
hardens over time.
|
108
130
|
"""
|
109
131
|
|
110
|
-
_EXT_VERSION = "1.
|
132
|
+
_EXT_VERSION = "1.1"
|
111
133
|
|
112
134
|
# Own fields:
|
113
135
|
lightweight: bool | None = pyd.Field(default=None, description="Product is lightweight", example=True)
|
@@ -173,6 +195,8 @@ class ConcreteV1(BaseOpenEpdHierarchicalSpec):
|
|
173
195
|
OilPatch: OilPatchV1 | None = None
|
174
196
|
ReadyMix: ReadyMixV1 | None = None
|
175
197
|
Shotcrete: ShotcreteV1 | None = None
|
198
|
+
OtherConcrete: OtherConcreteV1 | None = None
|
199
|
+
CellularConcrete: CellularConcreteV1 | None = None
|
176
200
|
|
177
201
|
_aci_exposure_classes_exclusive_groups_validator = pyd.validator("aci_exposure_classes", allow_reuse=True)(
|
178
202
|
exclusive_groups_validator_factory(AciExposureClass)
|
@@ -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.
|
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,5 +1,5 @@
|
|
1
1
|
openepd/__init__.py,sha256=fhxfEyEurLvSfvQci-vb3njzl_lvhcLXiZrecCOaMU8,794
|
2
|
-
openepd/__version__.py,sha256=
|
2
|
+
openepd/__version__.py,sha256=3bpnsguYhHUBbEqDHO2zgvwFAf_zr5yjuOpqcce4MLo,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
|
@@ -53,7 +53,7 @@ openepd/model/specs/__init__.py,sha256=toVWd8_jxmAf7gRwpoXQpLfZW6Cl-NwveoduMXhEC
|
|
53
53
|
openepd/model/specs/asphalt.py,sha256=eHhcITbBrNYR5N6x4Q2BxpsR64BR9OkjJ4bvPRYOqMg,3411
|
54
54
|
openepd/model/specs/base.py,sha256=10IDyRFKQgFnyIPSqpeayP8Og1BDgs1EepXX5dyCMM4,2674
|
55
55
|
openepd/model/specs/concrete.py,sha256=D9jbhZDtTXNBoAgljQBPxsmGsMvLSIAP5H53ZYiXcGI,5336
|
56
|
-
openepd/model/specs/enums.py,sha256=
|
56
|
+
openepd/model/specs/enums.py,sha256=6vNIDqt2kI-JKp9EBP9vhis935tfAS31znZ7v7LHb8s,63083
|
57
57
|
openepd/model/specs/range/__init__.py,sha256=nV5ODdlIF2o0JZzIkgmzjo5_B3GNqKYEL_FWjyFvM8Y,4536
|
58
58
|
openepd/model/specs/range/accessories.py,sha256=hZYz8mvAqrfLFiOIZ9qQZ59zmEiu0xE61Ko9cQ7NSKU,2498
|
59
59
|
openepd/model/specs/range/aggregates.py,sha256=udVbsYc1Lyrd6a4YZBGNDQ3sBi-L3WLub_e1ecq7U-Q,2549
|
@@ -63,21 +63,23 @@ openepd/model/specs/range/bulk_materials.py,sha256=SuKhmJXMa9jl0CrkYr3QVvPX_GDbr
|
|
63
63
|
openepd/model/specs/range/cast_decks_and_underlayment.py,sha256=37fx7jDRy6xryZTVweW_vu78h0kRs5vQurGS-Ypayog,1132
|
64
64
|
openepd/model/specs/range/cladding.py,sha256=r7M2lc77NR2GXBkgkqRzskQ6TdZeMd7pEEm8ecHb8rc,7236
|
65
65
|
openepd/model/specs/range/cmu.py,sha256=Sv4yw6121LSgYhW4J82xKsIi1KucaeDVF7xmpZtoCt8,1833
|
66
|
-
openepd/model/specs/range/concrete.py,sha256=
|
66
|
+
openepd/model/specs/range/concrete.py,sha256=CwRJ_0lJ6zRFwaiom3jrp50BSTiB9mIGL3ujcygZwfs,7528
|
67
67
|
openepd/model/specs/range/conveying_equipment.py,sha256=_rqJ9Y3kkP8E6-vkZb6Pih3JnR1nUESJoOLf-LT--sc,3176
|
68
68
|
openepd/model/specs/range/electrical.py,sha256=EI8pv9SN4lJbFNz1wlyMNAjkA0dsi84pc2J9YvtiwzY,11860
|
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=
|
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=
|
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
|
@@ -100,7 +102,7 @@ openepd/model/specs/singular/cast_decks_and_underlayment.py,sha256=HjIEKekxCAKx5
|
|
100
102
|
openepd/model/specs/singular/cladding.py,sha256=ywT6E8iv55khqbrkMRFOkm_PAWht3qt4ybNDNRa1wyw,6588
|
101
103
|
openepd/model/specs/singular/cmu.py,sha256=yexfb3REDGvVG3yD_1Yg1Zt-atBWLa8tv2lPmBPDWfw,1952
|
102
104
|
openepd/model/specs/singular/common.py,sha256=rPJTp2XuSa_dOXj6ZikzMv-lLbEwPLaP-XsXkjDB4uI,1048
|
103
|
-
openepd/model/specs/singular/concrete.py,sha256=
|
105
|
+
openepd/model/specs/singular/concrete.py,sha256=yDqNa5Ylv__ago6jeYUjBH2GNhMUlXjTHasl1Ing7tU,8467
|
104
106
|
openepd/model/specs/singular/conveying_equipment.py,sha256=AK_KdGyBDh0_Dl3YCkIyfHEfpiJmntdH-e9rFaIZv2s,3042
|
105
107
|
openepd/model/specs/singular/deprecated/__init__.py,sha256=f8I04fHO5QWpNtorrCgbUXz4r0B0zgsk8zDUfXu_i80,2635
|
106
108
|
openepd/model/specs/singular/deprecated/concrete.py,sha256=swSOfViIvy7z923C6uHBcIZrv_JRMv7wSJHpg9PGAJg,5265
|
@@ -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=
|
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=
|
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.
|
145
|
-
openepd-6.
|
146
|
-
openepd-6.
|
147
|
-
openepd-6.
|
147
|
+
openepd-6.19.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
148
|
+
openepd-6.19.0.dist-info/METADATA,sha256=odv3HP47b4WVhRfBXhEgRjAEsAwEuLo6OkpjYvWKgoY,9067
|
149
|
+
openepd-6.19.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
150
|
+
openepd-6.19.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|