openepd 3.1.1__py3-none-any.whl → 3.1.3__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/compat/compat_functional_validators.py +29 -0
- openepd/compat/pydantic.py +6 -1
- openepd/model/specs/concrete.py +1 -157
- openepd/model/specs/generated/asphalt.py +1 -11
- openepd/model/specs/generated/cladding.py +4 -16
- openepd/model/specs/generated/cmu.py +1 -8
- openepd/model/specs/generated/concrete.py +59 -33
- openepd/model/specs/generated/conveying_equipment.py +2 -12
- openepd/model/specs/generated/electrical.py +9 -12
- openepd/model/specs/generated/enums.py +26 -20
- openepd/model/specs/generated/finishes.py +2 -36
- openepd/model/specs/generated/fire_and_smoke_protection.py +1 -3
- openepd/model/specs/generated/furnishings.py +1 -3
- openepd/model/specs/generated/masonry.py +5 -4
- openepd/model/specs/generated/mechanical.py +25 -93
- openepd/model/specs/generated/mechanical_insulation.py +1 -5
- openepd/model/specs/generated/network_infrastructure.py +2 -12
- openepd/model/specs/generated/openings.py +209 -91
- openepd/model/specs/generated/plumbing.py +3 -19
- openepd/model/specs/generated/precast_concrete.py +1 -5
- openepd/model/specs/generated/steel.py +117 -53
- openepd/model/specs/generated/thermal_moisture_protection.py +1 -15
- openepd/model/specs/generated/utility_piping.py +2 -10
- openepd/model/specs/generated/wood.py +1 -5
- openepd/model/validation/quantity.py +158 -16
- {openepd-3.1.1.dist-info → openepd-3.1.3.dist-info}/METADATA +2 -1
- {openepd-3.1.1.dist-info → openepd-3.1.3.dist-info}/RECORD +30 -33
- openepd/model/specs/aluminium.py +0 -67
- openepd/model/specs/glass.py +0 -360
- openepd/model/specs/steel.py +0 -184
- openepd/model/specs/wood.py +0 -130
- {openepd-3.1.1.dist-info → openepd-3.1.3.dist-info}/LICENSE +0 -0
- {openepd-3.1.1.dist-info → openepd-3.1.3.dist-info}/WHEEL +0 -0
@@ -81,18 +81,6 @@ class AccessFlooringV1(BaseOpenEpdHierarchicalSpec):
|
|
81
81
|
rolling_load_10_pass: str | None = pyd.Field(default=None, description="", example="1 N")
|
82
82
|
rolling_load_10000_pass: str | None = pyd.Field(default=None, description="", example="1 N")
|
83
83
|
|
84
|
-
_access_flooring_finished_floor_height_is_quantity_validator = pyd.validator(
|
85
|
-
"finished_floor_height", allow_reuse=True
|
86
|
-
)(validate_unit_factory("m"))
|
87
|
-
_access_flooring_panel_thickness_is_quantity_validator = pyd.validator("panel_thickness", allow_reuse=True)(
|
88
|
-
validate_unit_factory("m")
|
89
|
-
)
|
90
|
-
_access_flooring_concentrated_load_is_quantity_validator = pyd.validator("concentrated_load", allow_reuse=True)(
|
91
|
-
validate_unit_factory("MPa")
|
92
|
-
)
|
93
|
-
_access_flooring_uniform_load_is_quantity_validator = pyd.validator("uniform_load", allow_reuse=True)(
|
94
|
-
validate_unit_factory("MPa")
|
95
|
-
)
|
96
84
|
_access_flooring_rolling_load_10_pass_is_quantity_validator = pyd.validator(
|
97
85
|
"rolling_load_10_pass", allow_reuse=True
|
98
86
|
)(validate_unit_factory("N"))
|
@@ -124,15 +112,8 @@ class CarpetV1(BaseOpenEpdHierarchicalSpec):
|
|
124
112
|
gwp_factor_base: GwpKgCo2eStr | None = pyd.Field(default=None, description="", example="1 kgCO2e")
|
125
113
|
gwp_factor_yarn: GwpKgCo2eStr | None = pyd.Field(default=None, description="", example="1 kgCO2e")
|
126
114
|
|
127
|
-
_length_is_quantity_validator = pyd.validator("length", allow_reuse=True)(validate_unit_factory("m"))
|
128
|
-
_width_is_quantity_validator = pyd.validator("width", allow_reuse=True)(validate_unit_factory("m"))
|
129
115
|
_yarn_weight_is_quantity_validator = pyd.validator("yarn_weight", allow_reuse=True)(validate_unit_factory("g / m2"))
|
130
|
-
|
131
|
-
validate_unit_factory("kgCO2e")
|
132
|
-
)
|
133
|
-
_gwp_factor_yarn_is_quantity_validator = pyd.validator("gwp_factor_yarn", allow_reuse=True)(
|
134
|
-
validate_unit_factory("kgCO2e")
|
135
|
-
)
|
116
|
+
_yarn_weight_ge_validator = pyd.validator("yarn_weight", allow_reuse=True)(validate_quantity_ge_factory("0 g / m2"))
|
136
117
|
|
137
118
|
|
138
119
|
class LaminateV1(BaseOpenEpdHierarchicalSpec):
|
@@ -167,12 +148,6 @@ class ResilientFlooringV1(BaseOpenEpdHierarchicalSpec):
|
|
167
148
|
floor_score: bool | None = pyd.Field(default=None, description="", example=True)
|
168
149
|
nsf332: bool | None = pyd.Field(default=None, description="", example=True)
|
169
150
|
|
170
|
-
_length_is_quantity_validator = pyd.validator("length", allow_reuse=True)(validate_unit_factory("m"))
|
171
|
-
_width_is_quantity_validator = pyd.validator("width", allow_reuse=True)(validate_unit_factory("m"))
|
172
|
-
_resilient_flooring_wear_layer_is_quantity_validator = pyd.validator("wear_layer", allow_reuse=True)(
|
173
|
-
validate_unit_factory("m")
|
174
|
-
)
|
175
|
-
|
176
151
|
|
177
152
|
class WallBaseV1(BaseOpenEpdHierarchicalSpec):
|
178
153
|
"""Wall base performance specification."""
|
@@ -194,8 +169,6 @@ class WoodFlooringV1(BaseOpenEpdHierarchicalSpec, HasForestPracticesCertifiers):
|
|
194
169
|
fabrication: WoodFlooringFabrication | None = pyd.Field(default=None, description="", example="Solid hardwood")
|
195
170
|
forest_practices_certifiers: list[OrgRef] | None = pyd.Field(default=None, description="")
|
196
171
|
|
197
|
-
_thickness_is_quantity_validator = pyd.validator("thickness", allow_reuse=True)(validate_unit_factory("m"))
|
198
|
-
|
199
172
|
|
200
173
|
class AcousticalCeilingsV1(BaseOpenEpdHierarchicalSpec):
|
201
174
|
"""Acoustical ceilings performance specification."""
|
@@ -205,8 +178,6 @@ class AcousticalCeilingsV1(BaseOpenEpdHierarchicalSpec):
|
|
205
178
|
# Own fields:
|
206
179
|
thickness: LengthMmStr | None = pyd.Field(default=None, description="", example="10 mm")
|
207
180
|
|
208
|
-
_thickness_is_quantity_validator = pyd.validator("thickness", allow_reuse=True)(validate_unit_factory("m"))
|
209
|
-
|
210
181
|
|
211
182
|
class CeramicTileV1(BaseOpenEpdHierarchicalSpec):
|
212
183
|
"""Ceramic tile performance specification."""
|
@@ -373,7 +344,7 @@ class TilingV1(BaseOpenEpdHierarchicalSpec):
|
|
373
344
|
_EXT_VERSION = "1.0"
|
374
345
|
|
375
346
|
# Own fields:
|
376
|
-
thickness:
|
347
|
+
thickness: LengthMmStr | None = pyd.Field(default=None, description="", example="9 mm")
|
377
348
|
flooring: bool | None = pyd.Field(default=None, description="Tiling intended for walking.", example=True)
|
378
349
|
wall_finish: bool | None = pyd.Field(
|
379
350
|
default=None,
|
@@ -418,8 +389,6 @@ class TilingV1(BaseOpenEpdHierarchicalSpec):
|
|
418
389
|
le=1,
|
419
390
|
)
|
420
391
|
|
421
|
-
_thickness_is_quantity_validator = pyd.validator("thickness", allow_reuse=True)(validate_unit_factory("m"))
|
422
|
-
_thickness_min_validator = pyd.validator("thickness", allow_reuse=True)(validate_quantity_ge_factory("0 mm"))
|
423
392
|
_thickness_max_validator = pyd.validator("thickness", allow_reuse=True)(validate_quantity_le_factory("50 mm"))
|
424
393
|
|
425
394
|
# Nested specs:
|
@@ -470,7 +439,6 @@ class GypsumV1(BaseOpenEpdHierarchicalSpec):
|
|
470
439
|
moisture_resistant: bool | None = pyd.Field(default=None, description="", example=True)
|
471
440
|
abuse_resistant: bool | None = pyd.Field(default=None, description="", example=True)
|
472
441
|
|
473
|
-
_gypsum_thickness_is_quantity_validator = pyd.validator("thickness", allow_reuse=True)(validate_unit_factory("m"))
|
474
442
|
_gypsum_r_factor_is_quantity_validator = pyd.validator("r_factor", allow_reuse=True)(validate_unit_factory("RSI"))
|
475
443
|
|
476
444
|
# Nested specs:
|
@@ -497,8 +465,6 @@ class WallFinishesV1(BaseOpenEpdHierarchicalSpec):
|
|
497
465
|
# Own fields:
|
498
466
|
thickness: LengthMmStr | None = pyd.Field(default=None, description="", example="10 mm")
|
499
467
|
|
500
|
-
_thickness_is_quantity_validator = pyd.validator("thickness", allow_reuse=True)(validate_unit_factory("m"))
|
501
|
-
|
502
468
|
|
503
469
|
class FinishesV1(BaseOpenEpdHierarchicalSpec):
|
504
470
|
"""Finishes performance specification."""
|
@@ -24,7 +24,7 @@ from openepd.model.specs.generated.enums import (
|
|
24
24
|
SprayFireproofingDensity,
|
25
25
|
SprayFireproofingMaterialType,
|
26
26
|
)
|
27
|
-
from openepd.model.validation.quantity import LengthMmStr
|
27
|
+
from openepd.model.validation.quantity import LengthMmStr
|
28
28
|
|
29
29
|
|
30
30
|
class IntumescentFireproofingV1(BaseOpenEpdHierarchicalSpec):
|
@@ -56,8 +56,6 @@ class AppliedFireproofingV1(BaseOpenEpdHierarchicalSpec):
|
|
56
56
|
# Own fields:
|
57
57
|
thickness: LengthMmStr | None = pyd.Field(default=None, description="", example="10 mm")
|
58
58
|
|
59
|
-
_thickness_is_quantity_validator = pyd.validator("thickness", allow_reuse=True)(validate_unit_factory("m"))
|
60
|
-
|
61
59
|
# Nested specs:
|
62
60
|
IntumescentFireproofing: IntumescentFireproofingV1 | None = None
|
63
61
|
SprayFireproofing: SprayFireproofingV1 | None = None
|
@@ -20,7 +20,7 @@
|
|
20
20
|
from openepd.compat.pydantic import pyd
|
21
21
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
22
22
|
from openepd.model.specs.generated.enums import CountertopMaterial
|
23
|
-
from openepd.model.validation.quantity import LengthMmStr
|
23
|
+
from openepd.model.validation.quantity import LengthMmStr
|
24
24
|
|
25
25
|
|
26
26
|
class DemountablePartitionTrackV1(BaseOpenEpdHierarchicalSpec):
|
@@ -44,8 +44,6 @@ class CountertopsV1(BaseOpenEpdHierarchicalSpec):
|
|
44
44
|
thickness: LengthMmStr | None = pyd.Field(default=None, description="", example="30 mm")
|
45
45
|
countertop_material: CountertopMaterial | None = pyd.Field(default=None, description="", example="Stone")
|
46
46
|
|
47
|
-
_thickness_is_quantity_validator = pyd.validator("thickness", allow_reuse=True)(validate_unit_factory("m"))
|
48
|
-
|
49
47
|
|
50
48
|
class DemountablePartitionsV1(BaseOpenEpdHierarchicalSpec):
|
51
49
|
"""Demountable partitions performance specification."""
|
@@ -19,7 +19,7 @@
|
|
19
19
|
#
|
20
20
|
from openepd.compat.pydantic import pyd
|
21
21
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
22
|
-
from openepd.model.validation.quantity import PressureMPaStr, validate_unit_factory
|
22
|
+
from openepd.model.validation.quantity import PressureMPaStr, validate_quantity_ge_factory, validate_unit_factory
|
23
23
|
|
24
24
|
|
25
25
|
class GMUV1(BaseOpenEpdHierarchicalSpec):
|
@@ -38,13 +38,14 @@ class AutoclavedAeratedConcreteV1(BaseOpenEpdHierarchicalSpec):
|
|
38
38
|
thermal_conductivity: str | None = pyd.Field(default=None, description="", example="1 W / (m * K)")
|
39
39
|
white: bool | None = pyd.Field(default=None, description="", example=True)
|
40
40
|
|
41
|
-
_concrete_compressive_strength_28d_is_quantity_validator = pyd.validator("strength_28d", allow_reuse=True)(
|
42
|
-
validate_unit_factory("MPa")
|
43
|
-
)
|
44
41
|
_aac_thermal_conductivity_is_quantity_validator = pyd.validator("thermal_conductivity", allow_reuse=True)(
|
45
42
|
validate_unit_factory("W / (m * K)")
|
46
43
|
)
|
47
44
|
|
45
|
+
_aac_thermal_conductivity_min_validator = pyd.validator("thermal_conductivity", allow_reuse=True)(
|
46
|
+
validate_quantity_ge_factory("0 W / (m * K)")
|
47
|
+
)
|
48
|
+
|
48
49
|
|
49
50
|
class BrickV1(BaseOpenEpdHierarchicalSpec):
|
50
51
|
"""Brick performance specification."""
|
@@ -31,7 +31,7 @@ from openepd.model.specs.generated.enums import (
|
|
31
31
|
MechanicalInstallation,
|
32
32
|
MechanicalRefrigerants,
|
33
33
|
)
|
34
|
-
from openepd.model.validation.quantity import PressureMPaStr,
|
34
|
+
from openepd.model.validation.quantity import AirflowStr, FlowRateStr, PowerStr, PressureMPaStr, VolumeStr
|
35
35
|
|
36
36
|
|
37
37
|
class HvacVrfControlV1(BaseOpenEpdHierarchicalSpec):
|
@@ -47,21 +47,10 @@ class HvacVrfIndoorV1(BaseOpenEpdHierarchicalSpec):
|
|
47
47
|
|
48
48
|
# Own fields:
|
49
49
|
refrigerants: list[MechanicalRefrigerants] | None = pyd.Field(default=None, description="", example=["R11"])
|
50
|
-
heating_capacity:
|
51
|
-
cooling_capacity:
|
52
|
-
airflow_rate:
|
53
|
-
air_volume:
|
54
|
-
|
55
|
-
_heating_capacity_is_quantity_validator = pyd.validator("heating_capacity", allow_reuse=True)(
|
56
|
-
validate_unit_factory("W")
|
57
|
-
)
|
58
|
-
_cooling_capacity_is_quantity_validator = pyd.validator("cooling_capacity", allow_reuse=True)(
|
59
|
-
validate_unit_factory("W")
|
60
|
-
)
|
61
|
-
_airflow_rate_is_quantity_validator = pyd.validator("airflow_rate", allow_reuse=True)(
|
62
|
-
validate_unit_factory("m3 / s")
|
63
|
-
)
|
64
|
-
_air_volume_is_quantity_validator = pyd.validator("air_volume", allow_reuse=True)(validate_unit_factory("m3"))
|
50
|
+
heating_capacity: PowerStr | None = pyd.Field(default=None, description="", example="1000.0 W")
|
51
|
+
cooling_capacity: PowerStr | None = pyd.Field(default=None, description="", example="1000.0 W")
|
52
|
+
airflow_rate: AirflowStr | None = pyd.Field(default=None, description="", example="1 m3 / s")
|
53
|
+
air_volume: VolumeStr | None = pyd.Field(default=None, description="", example="1 m3")
|
65
54
|
|
66
55
|
|
67
56
|
class HvacVrfOutdoorV1(BaseOpenEpdHierarchicalSpec):
|
@@ -71,21 +60,10 @@ class HvacVrfOutdoorV1(BaseOpenEpdHierarchicalSpec):
|
|
71
60
|
|
72
61
|
# Own fields:
|
73
62
|
refrigerants: list[MechanicalRefrigerants] | None = pyd.Field(default=None, description="", example=["R11"])
|
74
|
-
heating_capacity:
|
75
|
-
cooling_capacity:
|
76
|
-
airflow_rate:
|
77
|
-
air_volume:
|
78
|
-
|
79
|
-
_heating_capacity_is_quantity_validator = pyd.validator("heating_capacity", allow_reuse=True)(
|
80
|
-
validate_unit_factory("W")
|
81
|
-
)
|
82
|
-
_cooling_capacity_is_quantity_validator = pyd.validator("cooling_capacity", allow_reuse=True)(
|
83
|
-
validate_unit_factory("W")
|
84
|
-
)
|
85
|
-
_airflow_rate_is_quantity_validator = pyd.validator("airflow_rate", allow_reuse=True)(
|
86
|
-
validate_unit_factory("m3 / s")
|
87
|
-
)
|
88
|
-
_air_volume_is_quantity_validator = pyd.validator("air_volume", allow_reuse=True)(validate_unit_factory("m3"))
|
63
|
+
heating_capacity: PowerStr | None = pyd.Field(default=None, description="", example="1000.0 W")
|
64
|
+
cooling_capacity: PowerStr | None = pyd.Field(default=None, description="", example="1000.0 W")
|
65
|
+
airflow_rate: AirflowStr | None = pyd.Field(default=None, description="", example="1 m3 / s")
|
66
|
+
air_volume: VolumeStr | None = pyd.Field(default=None, description="", example="1 m3")
|
89
67
|
|
90
68
|
|
91
69
|
class HvacAirDiffusersV1(BaseOpenEpdHierarchicalSpec):
|
@@ -112,24 +90,13 @@ class HvacAHUsV1(BaseOpenEpdHierarchicalSpec):
|
|
112
90
|
# Own fields:
|
113
91
|
refrigerants: list[MechanicalRefrigerants] | None = pyd.Field(default=None, description="", example=["R11"])
|
114
92
|
installation: MechanicalInstallation | None = pyd.Field(default=None, description="", example="Indoor")
|
115
|
-
airflow_rate:
|
116
|
-
air_volume:
|
117
|
-
cooling_capacity:
|
118
|
-
heating_capacity:
|
93
|
+
airflow_rate: AirflowStr | None = pyd.Field(default=None, description="", example="1 m3 / s")
|
94
|
+
air_volume: VolumeStr | None = pyd.Field(default=None, description="", example="1 m3")
|
95
|
+
cooling_capacity: PowerStr | None = pyd.Field(default=None, description="", example="1000.0 W")
|
96
|
+
heating_capacity: PowerStr | None = pyd.Field(default=None, description="", example="1000.0 W")
|
119
97
|
airflow_control: AhuAirflowControl | None = pyd.Field(default=None, description="", example="CAV")
|
120
98
|
zone_control: AhuZoneControl | None = pyd.Field(default=None, description="", example="Single Zone")
|
121
99
|
|
122
|
-
_airflow_rate_is_quantity_validator = pyd.validator("airflow_rate", allow_reuse=True)(
|
123
|
-
validate_unit_factory("m3 / s")
|
124
|
-
)
|
125
|
-
_air_volume_is_quantity_validator = pyd.validator("air_volume", allow_reuse=True)(validate_unit_factory("m3"))
|
126
|
-
_cooling_capacity_is_quantity_validator = pyd.validator("cooling_capacity", allow_reuse=True)(
|
127
|
-
validate_unit_factory("W")
|
128
|
-
)
|
129
|
-
_heating_capacity_is_quantity_validator = pyd.validator("heating_capacity", allow_reuse=True)(
|
130
|
-
validate_unit_factory("W")
|
131
|
-
)
|
132
|
-
|
133
100
|
|
134
101
|
class HvacBoilersV1(BaseOpenEpdHierarchicalSpec):
|
135
102
|
"""Hvac boilers performance specification."""
|
@@ -137,16 +104,11 @@ class HvacBoilersV1(BaseOpenEpdHierarchicalSpec):
|
|
137
104
|
_EXT_VERSION = "1.0"
|
138
105
|
|
139
106
|
# Own fields:
|
140
|
-
flow_rate:
|
141
|
-
heating_capacity:
|
107
|
+
flow_rate: FlowRateStr | None = pyd.Field(default=None, description="", example="1 l / min")
|
108
|
+
heating_capacity: PowerStr | None = pyd.Field(default=None, description="", example="1000.0 W")
|
142
109
|
configuration: BoilerConfiguration | None = pyd.Field(default=None, description="", example="Hot water")
|
143
110
|
fuel_type: BoilerEquipmentFuelType | None = pyd.Field(default=None, description="", example="Coal")
|
144
111
|
|
145
|
-
_flow_rate_is_quantity_validator = pyd.validator("flow_rate", allow_reuse=True)(validate_unit_factory("l / min"))
|
146
|
-
_heating_capacity_is_quantity_validator = pyd.validator("heating_capacity", allow_reuse=True)(
|
147
|
-
validate_unit_factory("W")
|
148
|
-
)
|
149
|
-
|
150
112
|
|
151
113
|
class HvacChillersV1(BaseOpenEpdHierarchicalSpec):
|
152
114
|
"""Hvac chillers performance specification."""
|
@@ -156,21 +118,10 @@ class HvacChillersV1(BaseOpenEpdHierarchicalSpec):
|
|
156
118
|
# Own fields:
|
157
119
|
refrigerants: list[MechanicalRefrigerants] | None = pyd.Field(default=None, description="", example=["R11"])
|
158
120
|
installation: MechanicalInstallation | None = pyd.Field(default=None, description="", example="Indoor")
|
159
|
-
heating_capacity:
|
160
|
-
cooling_capacity:
|
161
|
-
air_volume:
|
162
|
-
airflow_rate:
|
163
|
-
|
164
|
-
_heating_capacity_is_quantity_validator = pyd.validator("heating_capacity", allow_reuse=True)(
|
165
|
-
validate_unit_factory("W")
|
166
|
-
)
|
167
|
-
_cooling_capacity_is_quantity_validator = pyd.validator("cooling_capacity", allow_reuse=True)(
|
168
|
-
validate_unit_factory("W")
|
169
|
-
)
|
170
|
-
_air_volume_is_quantity_validator = pyd.validator("air_volume", allow_reuse=True)(validate_unit_factory("m3"))
|
171
|
-
_airflow_rate_is_quantity_validator = pyd.validator("airflow_rate", allow_reuse=True)(
|
172
|
-
validate_unit_factory("m3 / s")
|
173
|
-
)
|
121
|
+
heating_capacity: PowerStr | None = pyd.Field(default=None, description="", example="1000.0 W")
|
122
|
+
cooling_capacity: PowerStr | None = pyd.Field(default=None, description="", example="1000.0 W")
|
123
|
+
air_volume: VolumeStr | None = pyd.Field(default=None, description="", example="1 m3")
|
124
|
+
airflow_rate: AirflowStr | None = pyd.Field(default=None, description="", example="1 m3 / s")
|
174
125
|
|
175
126
|
|
176
127
|
class HvacFansV1(BaseOpenEpdHierarchicalSpec):
|
@@ -186,23 +137,12 @@ class HvacHeatPumpsV1(BaseOpenEpdHierarchicalSpec):
|
|
186
137
|
|
187
138
|
# Own fields:
|
188
139
|
refrigerants: list[MechanicalRefrigerants] | None = pyd.Field(default=None, description="", example=["R11"])
|
189
|
-
cooling_capacity:
|
190
|
-
heating_capacity:
|
191
|
-
air_volume:
|
192
|
-
airflow_rate:
|
140
|
+
cooling_capacity: PowerStr | None = pyd.Field(default=None, description="", example="1000.0 W")
|
141
|
+
heating_capacity: PowerStr | None = pyd.Field(default=None, description="", example="1000.0 W")
|
142
|
+
air_volume: VolumeStr | None = pyd.Field(default=None, description="", example="1 m3")
|
143
|
+
airflow_rate: AirflowStr | None = pyd.Field(default=None, description="", example="1 m3 / s")
|
193
144
|
heat_pumps_type: HeatPumpType | None = pyd.Field(default=None, description="", example="Air-to-Water")
|
194
145
|
|
195
|
-
_cooling_capacity_is_quantity_validator = pyd.validator("cooling_capacity", allow_reuse=True)(
|
196
|
-
validate_unit_factory("W")
|
197
|
-
)
|
198
|
-
_heating_capacity_is_quantity_validator = pyd.validator("heating_capacity", allow_reuse=True)(
|
199
|
-
validate_unit_factory("W")
|
200
|
-
)
|
201
|
-
_air_volume_is_quantity_validator = pyd.validator("air_volume", allow_reuse=True)(validate_unit_factory("m3"))
|
202
|
-
_airflow_rate_is_quantity_validator = pyd.validator("airflow_rate", allow_reuse=True)(
|
203
|
-
validate_unit_factory("m3 / s")
|
204
|
-
)
|
205
|
-
|
206
146
|
|
207
147
|
class HvacHeatExV1(BaseOpenEpdHierarchicalSpec):
|
208
148
|
"""Hvac heat exchangers performance specification."""
|
@@ -222,17 +162,9 @@ class HvacPumpsV1(BaseOpenEpdHierarchicalSpec):
|
|
222
162
|
_EXT_VERSION = "1.0"
|
223
163
|
|
224
164
|
# Own fields:
|
225
|
-
flow_rate:
|
165
|
+
flow_rate: FlowRateStr | None = pyd.Field(default=None, description="", example="1 l / min")
|
226
166
|
pump_discharge_pressure: PressureMPaStr | None = pyd.Field(default=None, description="", example="1 MPa")
|
227
|
-
pump_horsepower:
|
228
|
-
|
229
|
-
_flow_rate_is_quantity_validator = pyd.validator("flow_rate", allow_reuse=True)(validate_unit_factory("l / min"))
|
230
|
-
_pump_discharge_pressure_is_quantity_validator = pyd.validator("pump_discharge_pressure", allow_reuse=True)(
|
231
|
-
validate_unit_factory("MPa")
|
232
|
-
)
|
233
|
-
_pump_horsepower_is_quantity_validator = pyd.validator("pump_horsepower", allow_reuse=True)(
|
234
|
-
validate_unit_factory("W")
|
235
|
-
)
|
167
|
+
pump_horsepower: PowerStr | None = pyd.Field(default=None, description="", example="1000.0 W")
|
236
168
|
|
237
169
|
|
238
170
|
class HvacRTUsV1(BaseOpenEpdHierarchicalSpec):
|
@@ -20,7 +20,7 @@
|
|
20
20
|
from openepd.compat.pydantic import pyd
|
21
21
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
22
22
|
from openepd.model.specs.generated.enums import InsulatingMaterial, InsulationIntendedApplication
|
23
|
-
from openepd.model.validation.quantity import LengthMmStr
|
23
|
+
from openepd.model.validation.quantity import LengthMmStr
|
24
24
|
|
25
25
|
|
26
26
|
class MechanicalInsulationV1(BaseOpenEpdHierarchicalSpec):
|
@@ -35,7 +35,3 @@ class MechanicalInsulationV1(BaseOpenEpdHierarchicalSpec):
|
|
35
35
|
default=None, description="", example=["Wall & General"]
|
36
36
|
)
|
37
37
|
thickness_per_declared_unit: LengthMmStr | None = pyd.Field(default=None, description="", example="20 mm")
|
38
|
-
|
39
|
-
_thickness_per_declared_unit_is_quantity_validator = pyd.validator("thickness_per_declared_unit", allow_reuse=True)(
|
40
|
-
validate_unit_factory("m")
|
41
|
-
)
|
@@ -31,7 +31,7 @@ from openepd.model.specs.generated.enums import (
|
|
31
31
|
RacewaysMaterial,
|
32
32
|
RackType,
|
33
33
|
)
|
34
|
-
from openepd.model.validation.quantity import LengthMmStr, MassKgStr, validate_unit_factory
|
34
|
+
from openepd.model.validation.quantity import ElectricalCurrentStr, LengthMmStr, MassKgStr, validate_unit_factory
|
35
35
|
|
36
36
|
|
37
37
|
class PDUV1(BaseOpenEpdHierarchicalSpec):
|
@@ -40,7 +40,7 @@ class PDUV1(BaseOpenEpdHierarchicalSpec):
|
|
40
40
|
_EXT_VERSION = "1.0"
|
41
41
|
|
42
42
|
# Own fields:
|
43
|
-
amperage:
|
43
|
+
amperage: ElectricalCurrentStr | None = pyd.Field(default=None, description="", example="1 A")
|
44
44
|
outlet_level_metering: bool | None = pyd.Field(default=None, description="", example=True)
|
45
45
|
outlet_level_switching: bool | None = pyd.Field(default=None, description="", example=True)
|
46
46
|
pdu_technology: PduTechnology | None = pyd.Field(default=None, description="", example="Basic")
|
@@ -59,8 +59,6 @@ class CabinetsRacksAndEnclosuresV1(BaseOpenEpdHierarchicalSpec):
|
|
59
59
|
total_racking_units: int | None = pyd.Field(default=None, description="", example=3)
|
60
60
|
rack_type: RackType | None = pyd.Field(default=None, description="", example="Cabinet")
|
61
61
|
|
62
|
-
_static_load_is_quantity_validator = pyd.validator("static_load", allow_reuse=True)(validate_unit_factory("kg"))
|
63
|
-
|
64
62
|
|
65
63
|
class DataCablingV1(BaseOpenEpdHierarchicalSpec):
|
66
64
|
"""Data cabling performance specification."""
|
@@ -141,11 +139,6 @@ class NetworkingCableTraysV1(BaseOpenEpdHierarchicalSpec):
|
|
141
139
|
)
|
142
140
|
material: CableTraysMaterial | None = pyd.Field(default=None, description="", example="Stainless Steel")
|
143
141
|
|
144
|
-
_height_is_quantity_validator = pyd.validator("height", allow_reuse=True)(validate_unit_factory("m"))
|
145
|
-
_width_is_quantity_validator = pyd.validator("width", allow_reuse=True)(validate_unit_factory("m"))
|
146
|
-
_depth_is_quantity_validator = pyd.validator("depth", allow_reuse=True)(validate_unit_factory("m"))
|
147
|
-
_static_load_is_quantity_validator = pyd.validator("static_load", allow_reuse=True)(validate_unit_factory("kg"))
|
148
|
-
|
149
142
|
|
150
143
|
class NetworkingRacewaysV1(BaseOpenEpdHierarchicalSpec):
|
151
144
|
"""Networking raceways performance specification."""
|
@@ -163,9 +156,6 @@ class NetworkingRacewaysV1(BaseOpenEpdHierarchicalSpec):
|
|
163
156
|
)
|
164
157
|
raceways_material: RacewaysMaterial | None = pyd.Field(default=None, description="", example="Aluminum")
|
165
158
|
|
166
|
-
_width_is_quantity_validator = pyd.validator("width", allow_reuse=True)(validate_unit_factory("m"))
|
167
|
-
_depth_is_quantity_validator = pyd.validator("depth", allow_reuse=True)(validate_unit_factory("m"))
|
168
|
-
|
169
159
|
|
170
160
|
class NetworkInfrastructureV1(BaseOpenEpdHierarchicalSpec):
|
171
161
|
"""Network infrastructure performance specification."""
|