openepd 6.13.2__py3-none-any.whl → 7.0.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/__init__.py +4 -4
- openepd/__version__.py +1 -1
- openepd/api/average_dataset/generic_estimate_sync_api.py +11 -10
- openepd/api/average_dataset/industry_epd_sync_api.py +9 -8
- openepd/api/base_sync_client.py +53 -9
- openepd/api/category/sync_api.py +1 -1
- openepd/api/dto/base.py +4 -4
- openepd/api/dto/common.py +24 -16
- openepd/api/dto/meta.py +15 -11
- openepd/api/dto/mf.py +9 -8
- openepd/api/epd/dto.py +43 -33
- openepd/api/epd/sync_api.py +9 -9
- openepd/api/pcr/sync_api.py +2 -2
- openepd/bundle/model.py +11 -10
- openepd/bundle/reader.py +12 -5
- openepd/bundle/writer.py +17 -6
- openepd/model/base.py +60 -43
- openepd/model/category.py +13 -10
- openepd/model/common.py +100 -55
- openepd/model/declaration.py +93 -64
- openepd/model/epd.py +51 -43
- openepd/model/generic_estimate.py +28 -13
- openepd/model/industry_epd.py +15 -9
- openepd/model/lcia.py +132 -113
- openepd/model/org.py +54 -33
- openepd/model/pcr.py +38 -32
- openepd/model/specs/asphalt.py +31 -22
- openepd/model/specs/base.py +11 -9
- openepd/model/specs/concrete.py +60 -39
- openepd/model/specs/range/aggregates.py +9 -9
- openepd/model/specs/range/aluminium.py +7 -7
- openepd/model/specs/range/asphalt.py +22 -19
- openepd/model/specs/range/cladding.py +16 -16
- openepd/model/specs/range/cmu.py +10 -9
- openepd/model/specs/range/concrete.py +36 -27
- openepd/model/specs/range/conveying_equipment.py +16 -15
- openepd/model/specs/range/electrical.py +24 -22
- openepd/model/specs/range/finishes.py +109 -104
- openepd/model/specs/range/fire_and_smoke_protection.py +7 -7
- openepd/model/specs/range/furnishings.py +16 -12
- openepd/model/specs/range/manufacturing_inputs.py +16 -16
- openepd/model/specs/range/masonry.py +16 -16
- openepd/model/specs/range/mechanical.py +47 -47
- openepd/model/specs/range/mechanical_insulation.py +7 -7
- openepd/model/specs/range/network_infrastructure.py +54 -46
- openepd/model/specs/range/openings.py +36 -31
- openepd/model/specs/range/plumbing.py +15 -13
- openepd/model/specs/range/precast_concrete.py +20 -16
- openepd/model/specs/range/sheathing.py +18 -18
- openepd/model/specs/range/steel.py +25 -25
- openepd/model/specs/range/thermal_moisture_protection.py +20 -20
- openepd/model/specs/range/utility_piping.py +9 -9
- openepd/model/specs/range/wood.py +19 -19
- openepd/model/specs/range/wood_joists.py +8 -8
- openepd/model/specs/singular/__init__.py +9 -5
- openepd/model/specs/singular/aggregates.py +22 -15
- openepd/model/specs/singular/aluminium.py +20 -5
- openepd/model/specs/singular/asphalt.py +44 -20
- openepd/model/specs/singular/cladding.py +38 -23
- openepd/model/specs/singular/cmu.py +26 -11
- openepd/model/specs/singular/common.py +3 -2
- openepd/model/specs/singular/concrete.py +85 -48
- openepd/model/specs/singular/conveying_equipment.py +30 -17
- openepd/model/specs/singular/deprecated/__init__.py +3 -2
- openepd/model/specs/singular/deprecated/concrete.py +68 -33
- openepd/model/specs/singular/deprecated/steel.py +28 -15
- openepd/model/specs/singular/electrical.py +69 -41
- openepd/model/specs/singular/finishes.py +250 -140
- openepd/model/specs/singular/fire_and_smoke_protection.py +9 -6
- openepd/model/specs/singular/furnishings.py +16 -14
- openepd/model/specs/singular/manufacturing_inputs.py +23 -14
- openepd/model/specs/singular/masonry.py +66 -21
- openepd/model/specs/singular/mechanical.py +48 -47
- openepd/model/specs/singular/mechanical_insulation.py +7 -6
- openepd/model/specs/singular/mixins/conduit_mixin.py +13 -10
- openepd/model/specs/singular/network_infrastructure.py +111 -52
- openepd/model/specs/singular/openings.py +127 -95
- openepd/model/specs/singular/plumbing.py +15 -12
- openepd/model/specs/singular/precast_concrete.py +68 -54
- openepd/model/specs/singular/sheathing.py +47 -27
- openepd/model/specs/singular/steel.py +69 -45
- openepd/model/specs/singular/thermal_moisture_protection.py +36 -20
- openepd/model/specs/singular/utility_piping.py +11 -8
- openepd/model/specs/singular/wood.py +48 -24
- openepd/model/specs/singular/wood_joists.py +19 -6
- openepd/model/standard.py +15 -8
- openepd/model/validation/common.py +9 -3
- openepd/model/validation/numbers.py +0 -13
- openepd/model/validation/quantity.py +53 -25
- openepd/model/versioning.py +9 -6
- openepd/patch_pydantic.py +0 -93
- {openepd-6.13.2.dist-info → openepd-7.0.0.dist-info}/METADATA +1 -1
- openepd-7.0.0.dist-info/RECORD +142 -0
- openepd/compat/__init__.py +0 -15
- openepd/compat/compat_functional_validators.py +0 -25
- openepd/compat/pydantic.py +0 -30
- openepd-6.13.2.dist-info/RECORD +0 -145
- {openepd-6.13.2.dist-info → openepd-7.0.0.dist-info}/LICENSE +0 -0
- {openepd-6.13.2.dist-info → openepd-7.0.0.dist-info}/WHEEL +0 -0
@@ -21,13 +21,13 @@ __all__ = (
|
|
21
21
|
"AluminiumRangeV1",
|
22
22
|
)
|
23
23
|
|
24
|
-
|
25
|
-
|
24
|
+
import pydantic
|
26
25
|
|
27
|
-
from openepd.compat.pydantic import pyd
|
28
26
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
29
27
|
from openepd.model.specs.enums import AluminiumAlloy
|
30
28
|
|
29
|
+
# NB! This is a generated code. Do not edit it manually. Please see src/openepd/model/specs/README.md
|
30
|
+
|
31
31
|
|
32
32
|
class AluminiumBilletsRangeV1(BaseOpenEpdHierarchicalSpec):
|
33
33
|
"""
|
@@ -51,7 +51,7 @@ class AluminiumExtrusionsRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
51
51
|
|
52
52
|
_EXT_VERSION = "1.0"
|
53
53
|
|
54
|
-
thermally_improved: bool | None =
|
54
|
+
thermally_improved: bool | None = pydantic.Field(default=None, description="")
|
55
55
|
|
56
56
|
|
57
57
|
class AluminiumSheetGoodsRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -83,9 +83,9 @@ class AluminiumRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
83
83
|
|
84
84
|
_EXT_VERSION = "1.0"
|
85
85
|
|
86
|
-
alloy: list[AluminiumAlloy] | None =
|
87
|
-
anodized: bool | None =
|
88
|
-
painted: bool | None =
|
86
|
+
alloy: list[AluminiumAlloy] | None = pydantic.Field(default=None, description="")
|
87
|
+
anodized: bool | None = pydantic.Field(default=None, description="")
|
88
|
+
painted: bool | None = pydantic.Field(default=None, description="")
|
89
89
|
AluminiumBillets: AluminiumBilletsRangeV1 | None = None
|
90
90
|
AluminiumExtrusions: AluminiumExtrusionsRangeV1 | None = None
|
91
91
|
AluminiumSheetGoods: AluminiumSheetGoodsRangeV1 | None = None
|
@@ -15,15 +15,15 @@
|
|
15
15
|
#
|
16
16
|
__all__ = ("AsphaltRangeV1",)
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
import pydantic
|
20
19
|
|
21
|
-
from openepd.compat.pydantic import pyd
|
22
20
|
from openepd.model.common import RangeRatioFloat
|
23
21
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
24
22
|
from openepd.model.specs.enums import AsphaltGradation, AsphaltMixType
|
25
23
|
from openepd.model.validation.quantity import AmountRangeLengthMm, TemperatureCStr
|
26
24
|
|
25
|
+
# NB! This is a generated code. Do not edit it manually. Please see src/openepd/model/specs/README.md
|
26
|
+
|
27
27
|
|
28
28
|
class AsphaltRangeV1(BaseOpenEpdHierarchicalSpec):
|
29
29
|
"""
|
@@ -34,28 +34,31 @@ class AsphaltRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
34
34
|
|
35
35
|
_EXT_VERSION = "1.0"
|
36
36
|
|
37
|
-
aggregate_size_max: AmountRangeLengthMm | None =
|
38
|
-
rap: RangeRatioFloat | None =
|
39
|
-
default=None,
|
37
|
+
aggregate_size_max: AmountRangeLengthMm | None = pydantic.Field(default=None, description="Max aggregate size")
|
38
|
+
rap: RangeRatioFloat | None = pydantic.Field(
|
39
|
+
default=None,
|
40
|
+
description="Percent of mixture that has been replaced by recycled asphalt pavement (RAP).",
|
40
41
|
)
|
41
|
-
ras: RangeRatioFloat | None =
|
42
|
-
default=None,
|
42
|
+
ras: RangeRatioFloat | None = pydantic.Field(
|
43
|
+
default=None,
|
44
|
+
description="Percent of mixture that has been replaced by recycled asphalt shingles (RAS).",
|
43
45
|
)
|
44
|
-
ground_tire_rubber: RangeRatioFloat | None =
|
45
|
-
default=None,
|
46
|
+
ground_tire_rubber: RangeRatioFloat | None = pydantic.Field(
|
47
|
+
default=None,
|
48
|
+
description="Percent of mixture that has been replaced by ground tire rubber (GTR).",
|
46
49
|
)
|
47
|
-
max_temperature: TemperatureCStr | None =
|
50
|
+
max_temperature: TemperatureCStr | None = pydantic.Field(
|
48
51
|
default=None,
|
49
52
|
description="The upper threshold temperature to which an asphalt binder can be heated preventing the asphalt mixture from rutting",
|
50
53
|
)
|
51
|
-
min_temperature: TemperatureCStr | None =
|
54
|
+
min_temperature: TemperatureCStr | None = pydantic.Field(
|
52
55
|
default=None,
|
53
56
|
description="The lower threshold temperature for an asphalt binder to prevent thermal cracking of the asphalt mixture.",
|
54
57
|
)
|
55
|
-
mix_type: list[AsphaltMixType] | None =
|
56
|
-
gradation: list[AsphaltGradation] | None =
|
57
|
-
sbr: bool | None =
|
58
|
-
sbs: bool | None =
|
59
|
-
ppa: bool | None =
|
60
|
-
gtr: bool | None =
|
61
|
-
pmb: bool | None =
|
58
|
+
mix_type: list[AsphaltMixType] | None = pydantic.Field(default=None, description="Asphalt mix type")
|
59
|
+
gradation: list[AsphaltGradation] | None = pydantic.Field(default=None, description="Asphalt gradation")
|
60
|
+
sbr: bool | None = pydantic.Field(default=None, description="Styrene-butadiene rubber (SBR)")
|
61
|
+
sbs: bool | None = pydantic.Field(default=None, description="Styrene-butadiene-styrene (SBS)")
|
62
|
+
ppa: bool | None = pydantic.Field(default=None, description="Polyphosphoric acid (PPA)")
|
63
|
+
gtr: bool | None = pydantic.Field(default=None, description="Ground tire rubber (GTR)")
|
64
|
+
pmb: bool | None = pydantic.Field(default=None, description="Polymer modified bitumen (PMB)")
|
@@ -35,14 +35,14 @@ __all__ = (
|
|
35
35
|
"CladdingRangeV1",
|
36
36
|
)
|
37
37
|
|
38
|
-
|
39
|
-
|
38
|
+
import pydantic
|
40
39
|
|
41
|
-
from openepd.compat.pydantic import pyd
|
42
40
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
43
41
|
from openepd.model.specs.enums import CladdingFacingMaterial, CladdingInsulatingMaterial, SidingFormFactor
|
44
42
|
from openepd.model.validation.quantity import AmountRangeLengthMm, AmountRangeRValue
|
45
43
|
|
44
|
+
# NB! This is a generated code. Do not edit it manually. Please see src/openepd/model/specs/README.md
|
45
|
+
|
46
46
|
|
47
47
|
class AluminiumSidingRangeV1(BaseOpenEpdHierarchicalSpec):
|
48
48
|
"""
|
@@ -127,7 +127,7 @@ class InsulatedVinylSidingRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
127
127
|
|
128
128
|
_EXT_VERSION = "1.0"
|
129
129
|
|
130
|
-
thickness: AmountRangeLengthMm | None =
|
130
|
+
thickness: AmountRangeLengthMm | None = pydantic.Field(default=None, description="")
|
131
131
|
|
132
132
|
|
133
133
|
class PlywoodSidingRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -171,7 +171,7 @@ class VinylSidingRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
171
171
|
|
172
172
|
_EXT_VERSION = "1.0"
|
173
173
|
|
174
|
-
thickness: AmountRangeLengthMm | None =
|
174
|
+
thickness: AmountRangeLengthMm | None = pydantic.Field(default=None, description="")
|
175
175
|
|
176
176
|
|
177
177
|
class SidingRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -185,11 +185,11 @@ class SidingRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
185
185
|
|
186
186
|
_EXT_VERSION = "1.0"
|
187
187
|
|
188
|
-
insulated: bool | None =
|
189
|
-
ventilated: bool | None =
|
190
|
-
paint_or_stain_required: bool | None =
|
191
|
-
r_value: AmountRangeRValue | None =
|
192
|
-
form_factor: list[SidingFormFactor] | None =
|
188
|
+
insulated: bool | None = pydantic.Field(default=None, description="")
|
189
|
+
ventilated: bool | None = pydantic.Field(default=None, description="")
|
190
|
+
paint_or_stain_required: bool | None = pydantic.Field(default=None, description="")
|
191
|
+
r_value: AmountRangeRValue | None = pydantic.Field(default=None, description="")
|
192
|
+
form_factor: list[SidingFormFactor] | None = pydantic.Field(default=None, description="")
|
193
193
|
MetalSiding: MetalSidingRangeV1 | None = None
|
194
194
|
CompositionSiding: CompositionSidingRangeV1 | None = None
|
195
195
|
FiberCementSiding: FiberCementSidingRangeV1 | None = None
|
@@ -209,8 +209,8 @@ class InsulatedRoofPanelsRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
209
209
|
|
210
210
|
_EXT_VERSION = "1.0"
|
211
211
|
|
212
|
-
r_value: AmountRangeRValue | None =
|
213
|
-
insulating_material: list[CladdingInsulatingMaterial] | None =
|
212
|
+
r_value: AmountRangeRValue | None = pydantic.Field(default=None, description="")
|
213
|
+
insulating_material: list[CladdingInsulatingMaterial] | None = pydantic.Field(default=None, description="")
|
214
214
|
|
215
215
|
|
216
216
|
class InsulatedWallPanelsRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -222,8 +222,8 @@ class InsulatedWallPanelsRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
222
222
|
|
223
223
|
_EXT_VERSION = "1.0"
|
224
224
|
|
225
|
-
r_value: AmountRangeRValue | None =
|
226
|
-
insulating_material: list[CladdingInsulatingMaterial] | None =
|
225
|
+
r_value: AmountRangeRValue | None = pydantic.Field(default=None, description="")
|
226
|
+
insulating_material: list[CladdingInsulatingMaterial] | None = pydantic.Field(default=None, description="")
|
227
227
|
|
228
228
|
|
229
229
|
class RoofPanelsRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -265,8 +265,8 @@ class CladdingRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
265
265
|
|
266
266
|
_EXT_VERSION = "1.0"
|
267
267
|
|
268
|
-
thickness: AmountRangeLengthMm | None =
|
269
|
-
facing_material: list[CladdingFacingMaterial] | None =
|
268
|
+
thickness: AmountRangeLengthMm | None = pydantic.Field(default=None, description="")
|
269
|
+
facing_material: list[CladdingFacingMaterial] | None = pydantic.Field(default=None, description="")
|
270
270
|
Siding: SidingRangeV1 | None = None
|
271
271
|
InsulatedRoofPanels: InsulatedRoofPanelsRangeV1 | None = None
|
272
272
|
InsulatedWallPanels: InsulatedWallPanelsRangeV1 | None = None
|
openepd/model/specs/range/cmu.py
CHANGED
@@ -20,7 +20,8 @@ __all__ = ("CMURangeV1",)
|
|
20
20
|
|
21
21
|
from builtins import float
|
22
22
|
|
23
|
-
|
23
|
+
import pydantic
|
24
|
+
|
24
25
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
25
26
|
from openepd.model.specs.enums import CmuBlockType, CmuWeightClassification
|
26
27
|
from openepd.model.validation.quantity import AmountRangePressureMpa, GwpKgCo2eStr
|
@@ -35,11 +36,11 @@ class CMURangeV1(BaseOpenEpdHierarchicalSpec):
|
|
35
36
|
|
36
37
|
_EXT_VERSION = "1.0"
|
37
38
|
|
38
|
-
white_cement: bool | None =
|
39
|
-
strength_28d: AmountRangePressureMpa | None =
|
40
|
-
weight_classification: list[CmuWeightClassification] | None =
|
41
|
-
block_type: list[CmuBlockType] | None =
|
42
|
-
insulated: bool | None =
|
43
|
-
sound_performance: bool | None =
|
44
|
-
b1_recarbonation: GwpKgCo2eStr | None =
|
45
|
-
b1_recarbonation_z: float | None =
|
39
|
+
white_cement: bool | None = pydantic.Field(default=None, description="")
|
40
|
+
strength_28d: AmountRangePressureMpa | None = pydantic.Field(default=None, description="")
|
41
|
+
weight_classification: list[CmuWeightClassification] | None = pydantic.Field(default=None, description="")
|
42
|
+
block_type: list[CmuBlockType] | None = pydantic.Field(default=None, description="")
|
43
|
+
insulated: bool | None = pydantic.Field(default=None, description="")
|
44
|
+
sound_performance: bool | None = pydantic.Field(default=None, description="")
|
45
|
+
b1_recarbonation: GwpKgCo2eStr | None = pydantic.Field(default=None, description="")
|
46
|
+
b1_recarbonation_z: float | None = pydantic.Field(default=None, description="")
|
@@ -28,7 +28,8 @@ __all__ = (
|
|
28
28
|
|
29
29
|
from typing import Literal
|
30
30
|
|
31
|
-
|
31
|
+
import pydantic
|
32
|
+
|
32
33
|
from openepd.model.common import RangeRatioFloat
|
33
34
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
34
35
|
from openepd.model.specs.concrete import Cementitious, ConcreteTypicalApplication
|
@@ -65,7 +66,9 @@ class ConcretePavingRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
65
66
|
|
66
67
|
_EXT_VERSION = "1.0"
|
67
68
|
|
68
|
-
flexion_strength: AmountRangePressureMpa | None =
|
69
|
+
flexion_strength: AmountRangePressureMpa | None = pydantic.Field(
|
70
|
+
default=None, description="Concrete flexural strength."
|
71
|
+
)
|
69
72
|
|
70
73
|
|
71
74
|
class FlowableFillRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -133,44 +136,50 @@ class ConcreteRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
133
136
|
|
134
137
|
_EXT_VERSION = "1.0"
|
135
138
|
|
136
|
-
lightweight: bool | None =
|
137
|
-
strength_28d: AmountRangePressureMpa | None =
|
138
|
-
|
139
|
-
|
139
|
+
lightweight: bool | None = pydantic.Field(default=None, description="Product is lightweight")
|
140
|
+
strength_28d: AmountRangePressureMpa | None = pydantic.Field(
|
141
|
+
default=None, description="Concrete strength after 28 days"
|
142
|
+
)
|
143
|
+
strength_other: AmountRangePressureMpa | None = pydantic.Field(
|
144
|
+
default=None,
|
145
|
+
description="A strength spec which is to be reached later other 28 days (e.g. 42d)",
|
140
146
|
)
|
141
|
-
strength_other_d: Literal[3, 7, 14, 42, 56, 72, 96, 120] | None =
|
147
|
+
strength_other_d: Literal[3, 7, 14, 42, 56, 72, 96, 120] | None = pydantic.Field(
|
142
148
|
default=None, description="Test Day for strength_other"
|
143
149
|
)
|
144
|
-
slump: AmountRangeLengthInch | None =
|
145
|
-
min_slump: AmountRangeLengthInch | None =
|
146
|
-
max_slump: AmountRangeLengthInch | None =
|
147
|
-
min_pipeline_size: AmountRangeLengthMm | None =
|
148
|
-
w_c_ratio: RangeRatioFloat | None =
|
149
|
-
air_entrain: bool | None =
|
150
|
-
co2_entrain: bool | None =
|
151
|
-
self_consolidating: bool | None =
|
152
|
-
white_cement: bool | None =
|
153
|
-
plc: bool | None =
|
154
|
-
finishable: bool | None =
|
155
|
-
fiber_reinforced: bool | None =
|
156
|
-
cementitious: Cementitious | None =
|
157
|
-
default=None,
|
150
|
+
slump: AmountRangeLengthInch | None = pydantic.Field(default=None, description="")
|
151
|
+
min_slump: AmountRangeLengthInch | None = pydantic.Field(default=None, description="Minimum test slump")
|
152
|
+
max_slump: AmountRangeLengthInch | None = pydantic.Field(default=None, description="")
|
153
|
+
min_pipeline_size: AmountRangeLengthMm | None = pydantic.Field(default=None, description="Minimum pipeline size")
|
154
|
+
w_c_ratio: RangeRatioFloat | None = pydantic.Field(default=None, description="Ratio of water to cement")
|
155
|
+
air_entrain: bool | None = pydantic.Field(default=None, description="Air Entrainment")
|
156
|
+
co2_entrain: bool | None = pydantic.Field(default=None, description="CO2 Curing")
|
157
|
+
self_consolidating: bool | None = pydantic.Field(default=None, description="Self Compacting")
|
158
|
+
white_cement: bool | None = pydantic.Field(default=None, description="White Cement")
|
159
|
+
plc: bool | None = pydantic.Field(default=None, description="Portland Limestone Cement")
|
160
|
+
finishable: bool | None = pydantic.Field(default=None, description="Finishable")
|
161
|
+
fiber_reinforced: bool | None = pydantic.Field(default=None, description="fiber_reinforced")
|
162
|
+
cementitious: Cementitious | None = pydantic.Field(
|
163
|
+
default=None,
|
164
|
+
description="List of cementitious materials, and proportion by mass",
|
158
165
|
)
|
159
|
-
aggregate_size_max: AmountRangeLengthMm | None =
|
166
|
+
aggregate_size_max: AmountRangeLengthMm | None = pydantic.Field(
|
160
167
|
default=None,
|
161
168
|
description="The smallest sieve size for which the entire amount of aggregate is able to pass. Parameter describes diameter of aggregate",
|
162
169
|
)
|
163
|
-
cement_content: AmountRangeMass | None =
|
164
|
-
aci_exposure_classes: list[AciExposureClass] | None =
|
170
|
+
cement_content: AmountRangeMass | None = pydantic.Field(default=None)
|
171
|
+
aci_exposure_classes: list[AciExposureClass] | None = pydantic.Field(
|
165
172
|
default=None, description="List of ACI exposure classes"
|
166
173
|
)
|
167
|
-
csa_exposure_classes: list[CsaExposureClass] | None =
|
174
|
+
csa_exposure_classes: list[CsaExposureClass] | None = pydantic.Field(
|
168
175
|
default=None, description="List of CSA exposure classes"
|
169
176
|
)
|
170
|
-
en_exposure_classes: list[EnExposureClass] | None =
|
177
|
+
en_exposure_classes: list[EnExposureClass] | None = pydantic.Field(
|
171
178
|
default=None, description="List of EN exposure classes"
|
172
179
|
)
|
173
|
-
typical_application: ConcreteTypicalApplication | None =
|
180
|
+
typical_application: ConcreteTypicalApplication | None = pydantic.Field(
|
181
|
+
default=None, description="Typical Application"
|
182
|
+
)
|
174
183
|
CementGrout: CementGroutRangeV1 | None = None
|
175
184
|
ConcretePaving: ConcretePavingRangeV1 | None = None
|
176
185
|
FlowableFill: FlowableFillRangeV1 | None = None
|
@@ -19,10 +19,8 @@ __all__ = (
|
|
19
19
|
"ConveyingEquipmentRangeV1",
|
20
20
|
)
|
21
21
|
|
22
|
-
|
23
|
-
|
22
|
+
import pydantic
|
24
23
|
|
25
|
-
from openepd.compat.pydantic import pyd
|
26
24
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
27
25
|
from openepd.model.specs.enums import ElevatorsBuildingRise, ElevatorsUsageIntensity
|
28
26
|
from openepd.model.validation.quantity import (
|
@@ -32,6 +30,8 @@ from openepd.model.validation.quantity import (
|
|
32
30
|
AmountRangeSpeed,
|
33
31
|
)
|
34
32
|
|
33
|
+
# NB! This is a generated code. Do not edit it manually. Please see src/openepd/model/specs/README.md
|
34
|
+
|
35
35
|
|
36
36
|
class EscalatorsRangeV1(BaseOpenEpdHierarchicalSpec):
|
37
37
|
"""
|
@@ -45,16 +45,17 @@ class EscalatorsRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
45
45
|
|
46
46
|
_EXT_VERSION = "1.1"
|
47
47
|
|
48
|
-
vertical_rise: AmountRangeLengthMm | None =
|
49
|
-
default=None,
|
48
|
+
vertical_rise: AmountRangeLengthMm | None = pydantic.Field(
|
49
|
+
default=None,
|
50
|
+
description="The vertical distance between the top and bottom landings of an escalator",
|
50
51
|
)
|
51
|
-
speed: AmountRangeSpeed | None =
|
52
|
-
step_width: AmountRangeLengthMm | None =
|
53
|
-
max_capacity: AmountRangeCapacityPerHour | None =
|
52
|
+
speed: AmountRangeSpeed | None = pydantic.Field(default=None, description="Reference speed of the escalator")
|
53
|
+
step_width: AmountRangeLengthMm | None = pydantic.Field(default=None, description="Width of the escalator steps")
|
54
|
+
max_capacity: AmountRangeCapacityPerHour | None = pydantic.Field(
|
54
55
|
default=None, description="Max capacity of escalator in persons per hour"
|
55
56
|
)
|
56
|
-
indoor: bool | None =
|
57
|
-
outdoor: bool | None =
|
57
|
+
indoor: bool | None = pydantic.Field(default=None, description="Escalator can be used for indoor applications")
|
58
|
+
outdoor: bool | None = pydantic.Field(default=None, description="Escalator can be used for outdoor applications")
|
58
59
|
|
59
60
|
|
60
61
|
class ElevatorsRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -66,11 +67,11 @@ class ElevatorsRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
66
67
|
|
67
68
|
_EXT_VERSION = "1.0"
|
68
69
|
|
69
|
-
usage_intensity: list[ElevatorsUsageIntensity] | None =
|
70
|
-
travel_length: AmountRangeLengthMm | None =
|
71
|
-
rated_load: AmountRangeMass | None =
|
72
|
-
rated_speed: AmountRangeSpeed | None =
|
73
|
-
building_rise: list[ElevatorsBuildingRise] | None =
|
70
|
+
usage_intensity: list[ElevatorsUsageIntensity] | None = pydantic.Field(default=None, description="")
|
71
|
+
travel_length: AmountRangeLengthMm | None = pydantic.Field(default=None, description="")
|
72
|
+
rated_load: AmountRangeMass | None = pydantic.Field(default=None, description="")
|
73
|
+
rated_speed: AmountRangeSpeed | None = pydantic.Field(default=None, description="")
|
74
|
+
building_rise: list[ElevatorsBuildingRise] | None = pydantic.Field(default=None, description="")
|
74
75
|
|
75
76
|
|
76
77
|
class ConveyingEquipmentRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -45,10 +45,8 @@ __all__ = (
|
|
45
45
|
"ElectricalRangeV1",
|
46
46
|
)
|
47
47
|
|
48
|
-
|
49
|
-
|
48
|
+
import pydantic
|
50
49
|
|
51
|
-
from openepd.compat.pydantic import pyd
|
52
50
|
from openepd.model.common import RangeFloat
|
53
51
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
54
52
|
from openepd.model.specs.enums import CableTraysMaterial, ConduitMaterial, EnergySource, RacewaysMaterial
|
@@ -61,6 +59,8 @@ from openepd.model.validation.quantity import (
|
|
61
59
|
AmountRangeUtilization,
|
62
60
|
)
|
63
61
|
|
62
|
+
# NB! This is a generated code. Do not edit it manually. Please see src/openepd/model/specs/README.md
|
63
|
+
|
64
64
|
|
65
65
|
class LowVoltBusesRangeV1(BaseOpenEpdHierarchicalSpec):
|
66
66
|
"""
|
@@ -111,12 +111,14 @@ class CableTraysRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
111
111
|
|
112
112
|
_EXT_VERSION = "1.0"
|
113
113
|
|
114
|
-
height: AmountRangeLengthMm | None =
|
115
|
-
width: AmountRangeLengthMm | None =
|
116
|
-
depth: AmountRangeLengthMm | None =
|
117
|
-
static_load: AmountRangeMass | None =
|
118
|
-
ventilated: bool | None =
|
119
|
-
|
114
|
+
height: AmountRangeLengthMm | None = pydantic.Field(default=None, description="")
|
115
|
+
width: AmountRangeLengthMm | None = pydantic.Field(default=None, description="")
|
116
|
+
depth: AmountRangeLengthMm | None = pydantic.Field(default=None, description="")
|
117
|
+
static_load: AmountRangeMass | None = pydantic.Field(default=None, description="")
|
118
|
+
ventilated: bool | None = pydantic.Field(
|
119
|
+
default=None, description="At least 40% of the tray base is open to air flow"
|
120
|
+
)
|
121
|
+
cable_trays_material: list[CableTraysMaterial] | None = pydantic.Field(default=None, description="")
|
120
122
|
|
121
123
|
|
122
124
|
class ElectricalBusesRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -164,11 +166,11 @@ class RacewaysRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
164
166
|
|
165
167
|
_EXT_VERSION = "1.0"
|
166
168
|
|
167
|
-
width: AmountRangeLengthMm | None =
|
168
|
-
depth: AmountRangeLengthMm | None =
|
169
|
-
painted: bool | None =
|
170
|
-
divided: bool | None =
|
171
|
-
raceways_material: list[RacewaysMaterial] | None =
|
169
|
+
width: AmountRangeLengthMm | None = pydantic.Field(default=None, description="")
|
170
|
+
depth: AmountRangeLengthMm | None = pydantic.Field(default=None, description="")
|
171
|
+
painted: bool | None = pydantic.Field(default=None, description="")
|
172
|
+
divided: bool | None = pydantic.Field(default=None, description="")
|
173
|
+
raceways_material: list[RacewaysMaterial] | None = pydantic.Field(default=None, description="")
|
172
174
|
|
173
175
|
|
174
176
|
class FueledElectricalGeneratorsRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -230,7 +232,7 @@ class ElectricityFromSpecificGeneratorRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
230
232
|
|
231
233
|
_EXT_VERSION = "1.0"
|
232
234
|
|
233
|
-
energy_source: list[EnergySource] | None =
|
235
|
+
energy_source: list[EnergySource] | None = pydantic.Field(default=None, description="")
|
234
236
|
|
235
237
|
|
236
238
|
class PowerPurchaseAgreementsRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -244,7 +246,7 @@ class PowerPurchaseAgreementsRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
244
246
|
|
245
247
|
_EXT_VERSION = "1.0"
|
246
248
|
|
247
|
-
energy_source: list[EnergySource] | None =
|
249
|
+
energy_source: list[EnergySource] | None = pydantic.Field(default=None, description="")
|
248
250
|
|
249
251
|
|
250
252
|
class LightbulbsRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -376,12 +378,12 @@ class LightingRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
376
378
|
|
377
379
|
_EXT_VERSION = "1.0"
|
378
380
|
|
379
|
-
color_temperature: AmountRangeColorTemperature | None =
|
380
|
-
typical_utilization: AmountRangeUtilization | None =
|
381
|
-
luminosity: AmountRangeLuminosity | None =
|
382
|
-
wattage: AmountRangePower | None =
|
383
|
-
color_rendering_index: RangeFloat | None =
|
384
|
-
dimmable: bool | None =
|
381
|
+
color_temperature: AmountRangeColorTemperature | None = pydantic.Field(default=None, description="")
|
382
|
+
typical_utilization: AmountRangeUtilization | None = pydantic.Field(default=None, description="")
|
383
|
+
luminosity: AmountRangeLuminosity | None = pydantic.Field(default=None, description="")
|
384
|
+
wattage: AmountRangePower | None = pydantic.Field(default=None, description="")
|
385
|
+
color_rendering_index: RangeFloat | None = pydantic.Field(default=None, description="")
|
386
|
+
dimmable: bool | None = pydantic.Field(default=None, description="")
|
385
387
|
Lightbulbs: LightbulbsRangeV1 | None = None
|
386
388
|
LightingControls: LightingControlsRangeV1 | None = None
|
387
389
|
LightingFixtures: LightingFixturesRangeV1 | None = None
|