openepd 6.31.0__py3-none-any.whl → 6.31.2__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/base.py +1 -1
- openepd/model/common.py +1 -1
- openepd/model/org.py +4 -0
- openepd/model/specs/range/electrical.py +1 -0
- openepd/model/specs/range/other_electrical_equipment.py +18 -0
- openepd/model/specs/singular/electrical.py +33 -0
- openepd/model/specs/singular/masonry.py +0 -10
- openepd/model/specs/singular/other_electrical_equipment.py +18 -0
- openepd/model/validation/quantity.py +1 -1
- {openepd-6.31.0.dist-info → openepd-6.31.2.dist-info}/METADATA +1 -1
- {openepd-6.31.0.dist-info → openepd-6.31.2.dist-info}/RECORD +14 -12
- {openepd-6.31.0.dist-info → openepd-6.31.2.dist-info}/LICENSE +0 -0
- {openepd-6.31.0.dist-info → openepd-6.31.2.dist-info}/WHEEL +0 -0
openepd/__version__.py
CHANGED
openepd/model/base.py
CHANGED
|
@@ -70,7 +70,7 @@ class BaseOpenEpdSchema(pyd.BaseModel):
|
|
|
70
70
|
allow_mutation = True
|
|
71
71
|
validate_assignment = False
|
|
72
72
|
allow_population_by_field_name = True
|
|
73
|
-
use_enum_values =
|
|
73
|
+
use_enum_values = False
|
|
74
74
|
schema_extra: Callable | dict = modify_pydantic_schema
|
|
75
75
|
|
|
76
76
|
def to_serializable(self, *args, **kwargs) -> dict[str, Any]:
|
openepd/model/common.py
CHANGED
|
@@ -22,7 +22,7 @@ from openepd.compat.pydantic import pyd
|
|
|
22
22
|
from openepd.model.base import BaseOpenEpdSchema
|
|
23
23
|
from openepd.model.validation.numbers import RatioFloat
|
|
24
24
|
|
|
25
|
-
DATA_URL_REGEX = r"^data:([-\w]+\/[-+\w.]+)?(;?\w+=[-\w]+)*(;base64)
|
|
25
|
+
DATA_URL_REGEX = r"^data:([-\w]+\/[-+\w.]+)?(;?\w+=[-\w]+)*(;base64)?,(.*)$"
|
|
26
26
|
"""
|
|
27
27
|
Regular expression pattern for matching Data URLs.
|
|
28
28
|
|
openepd/model/org.py
CHANGED
|
@@ -179,6 +179,10 @@ class Plant(PlantRef, WithAttachmentsMixin, WithAltIdsMixin):
|
|
|
179
179
|
msg = "Incorrect pluscode for plant"
|
|
180
180
|
raise ValueError(msg)
|
|
181
181
|
|
|
182
|
+
if not openlocationcode.isFull(pluscode):
|
|
183
|
+
msg = "Passed Open Location Code is not a valid full code"
|
|
184
|
+
raise ValueError(msg)
|
|
185
|
+
|
|
182
186
|
if not web_domain:
|
|
183
187
|
msg = "Incorrect web_domain for plant"
|
|
184
188
|
raise ValueError(msg)
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
|
|
17
|
+
# Deprecated import: This import is kept for backward compatibility and should be removed in the future.
|
|
18
|
+
from .electrical import OtherElectricalEquipmentRangeV1 # noqa: F401
|
|
@@ -13,6 +13,39 @@
|
|
|
13
13
|
# See the License for the specific language governing permissions and
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
#
|
|
16
|
+
__all__ = (
|
|
17
|
+
"BatteriesV1",
|
|
18
|
+
"CableTraysV1",
|
|
19
|
+
"ElectricPowerV1",
|
|
20
|
+
"ElectricalBusesV1",
|
|
21
|
+
"ElectricalConduitV1",
|
|
22
|
+
"ElectricalGenerationEquipmentV1",
|
|
23
|
+
"ElectricalPowerStorageV1",
|
|
24
|
+
"ElectricalV1",
|
|
25
|
+
"ElectricityFromPowerGridV1",
|
|
26
|
+
"ElectricityFromSpecificGeneratorV1",
|
|
27
|
+
"FloorEquipmentBoxesV1",
|
|
28
|
+
"FueledElectricalGeneratorsV1",
|
|
29
|
+
"LightbulbsV1",
|
|
30
|
+
"LightingControlsV1",
|
|
31
|
+
"LightingFixturesV1",
|
|
32
|
+
"LightingV1",
|
|
33
|
+
"LowVoltBusesV1",
|
|
34
|
+
"LowVoltageElectricalDistributionV1",
|
|
35
|
+
"MedVoltBusesV1",
|
|
36
|
+
"OtherElectricalEquipmentV1",
|
|
37
|
+
"OtherElectricalPowerStorageV1",
|
|
38
|
+
"OtherGenerationV1",
|
|
39
|
+
"OutdoorLightingV1",
|
|
40
|
+
"PhotovoltaicsV1",
|
|
41
|
+
"PowerDistributionUnitsV1",
|
|
42
|
+
"PowerPurchaseAgreementsV1",
|
|
43
|
+
"RacewaysV1",
|
|
44
|
+
"SpecialtyLightingV1",
|
|
45
|
+
"TaskLightingV1",
|
|
46
|
+
"WindTurbinesV1",
|
|
47
|
+
)
|
|
48
|
+
|
|
16
49
|
from openepd.compat.pydantic import pyd
|
|
17
50
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
|
18
51
|
from openepd.model.specs.enums import CableTraysMaterial, EnergySource, RacewaysMaterial
|
|
@@ -18,8 +18,6 @@ from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
|
|
18
18
|
from openepd.model.validation.quantity import (
|
|
19
19
|
PressureMPaStr,
|
|
20
20
|
ThermalConductivityStr,
|
|
21
|
-
validate_quantity_ge_factory,
|
|
22
|
-
validate_quantity_unit_factory,
|
|
23
21
|
)
|
|
24
22
|
|
|
25
23
|
|
|
@@ -41,14 +39,6 @@ class AutoclavedAeratedConcreteV1(BaseOpenEpdHierarchicalSpec):
|
|
|
41
39
|
)
|
|
42
40
|
white: bool | None = pyd.Field(default=None, description="", example=True)
|
|
43
41
|
|
|
44
|
-
_aac_thermal_conductivity_is_quantity_validator = pyd.validator("thermal_conductivity", allow_reuse=True)(
|
|
45
|
-
validate_quantity_unit_factory("W / (m * K)")
|
|
46
|
-
)
|
|
47
|
-
|
|
48
|
-
_aac_thermal_conductivity_min_validator = pyd.validator("thermal_conductivity", allow_reuse=True)(
|
|
49
|
-
validate_quantity_ge_factory("0 W / (m * K)")
|
|
50
|
-
)
|
|
51
|
-
|
|
52
42
|
|
|
53
43
|
class BrickV1(BaseOpenEpdHierarchicalSpec):
|
|
54
44
|
"""Solid masonry units made from clay or shale."""
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
|
|
17
|
+
# Deprecated import: This import is kept for backward compatibility and should be removed in the future.
|
|
18
|
+
from .electrical import OtherElectricalEquipmentV1 # noqa: F401
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
openepd/__init__.py,sha256=fhxfEyEurLvSfvQci-vb3njzl_lvhcLXiZrecCOaMU8,794
|
|
2
|
-
openepd/__version__.py,sha256=
|
|
2
|
+
openepd/__version__.py,sha256=UFkCgstvKywEim-Fe7_uHEzuZwO946IbHObLbqlHfYQ,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
|
|
@@ -44,9 +44,9 @@ openepd/m49/__init__.py,sha256=AApOMp9PJPMXZbPB4piedqKtgHE01mlj_MyF3kf519U,718
|
|
|
44
44
|
openepd/m49/const.py,sha256=bkYu6J7dQNVb2-nNkjy97uMpt64vICX5o-PHr0lk_90,31833
|
|
45
45
|
openepd/m49/utils.py,sha256=vQl0wMXtYS2b7NeLIWilDNUopq3MATmLnhEFcMYTeZA,7256
|
|
46
46
|
openepd/model/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
|
47
|
-
openepd/model/base.py,sha256=
|
|
47
|
+
openepd/model/base.py,sha256=WAnVnPdsvkRumsDV6XEnYYhFjexIO1ttmzB9znkA8r8,9929
|
|
48
48
|
openepd/model/category.py,sha256=reeOVRDuZPYU77EMwG0K5VjnK2H9yOGxT0PJXXqrjEk,1639
|
|
49
|
-
openepd/model/common.py,sha256=
|
|
49
|
+
openepd/model/common.py,sha256=YIEvA_SfUIBC2LshxqPU8jFDp0mvaDT6jNgcJXgQnQk,13877
|
|
50
50
|
openepd/model/declaration.py,sha256=F7LEMeZSJndtvO0AqnvTS43MeRxI3MO1IWLyF1SlwPU,14744
|
|
51
51
|
openepd/model/epd.py,sha256=SGAgEEAuvRGsIlgIUI60UqV1alhb5kouOvp8fAC0VPg,12320
|
|
52
52
|
openepd/model/factory.py,sha256=UWSGpfCr3GiMTP4rzBkwqxzbXB6GKZ_5Okb1Dqa_4aA,2701
|
|
@@ -54,7 +54,7 @@ openepd/model/generic_estimate.py,sha256=zLGTyf4Uzmp2C0m-J1ePWItSz2RGdZ0OiGPWC5n
|
|
|
54
54
|
openepd/model/geography.py,sha256=Jx7NIDdk_sIvwyh-7YxnIjAwIHW2HCQK7UtFGM2xKtw,42095
|
|
55
55
|
openepd/model/industry_epd.py,sha256=QZr7OhgGkzqZ8H5p6dCIVk9zSHEYtK3y9Nk-DvkFMyk,4011
|
|
56
56
|
openepd/model/lcia.py,sha256=PdaSZz02PMBJl_t2B_dmkcbzIFjA7iACrWj1fllHfw0,26230
|
|
57
|
-
openepd/model/org.py,sha256=
|
|
57
|
+
openepd/model/org.py,sha256=qP4VED4bcgwgyMARHF7S1LX7lkqCXMyxeIqfjgOI8gs,7927
|
|
58
58
|
openepd/model/pcr.py,sha256=7nf6ATofdrlPt81vdU6p0E8n_ftFEuCEIKxtYlFwclw,5476
|
|
59
59
|
openepd/model/specs/README.md,sha256=UGhSiFJ9hOxT1mZl-5ZrhkOrPKf1W_gcu5CI9hzV7LU,2430
|
|
60
60
|
openepd/model/specs/__init__.py,sha256=YbyiLnQRQIX9mEdfQRVP3Rp1q3iNwujQMBbDK2-CYdM,3836
|
|
@@ -73,7 +73,7 @@ openepd/model/specs/range/cladding.py,sha256=r7M2lc77NR2GXBkgkqRzskQ6TdZeMd7pEEm
|
|
|
73
73
|
openepd/model/specs/range/cmu.py,sha256=Sv4yw6121LSgYhW4J82xKsIi1KucaeDVF7xmpZtoCt8,1833
|
|
74
74
|
openepd/model/specs/range/concrete.py,sha256=CwRJ_0lJ6zRFwaiom3jrp50BSTiB9mIGL3ujcygZwfs,7528
|
|
75
75
|
openepd/model/specs/range/conveying_equipment.py,sha256=_rqJ9Y3kkP8E6-vkZb6Pih3JnR1nUESJoOLf-LT--sc,3176
|
|
76
|
-
openepd/model/specs/range/electrical.py,sha256=
|
|
76
|
+
openepd/model/specs/range/electrical.py,sha256=00fqX7KuM76ZZpL6yyhAHiDNkLgUFvyHfOCsE3Q62io,12139
|
|
77
77
|
openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py,sha256=xDdyLj6oJRmdybq7W91MtgE80FDpaG6ii5hE921aRGQ,2525
|
|
78
78
|
openepd/model/specs/range/electricity.py,sha256=yn_S25C_tZqseb8hiJ1yiHszu2mQ49FOFWWCqNpOBY0,997
|
|
79
79
|
openepd/model/specs/range/exterior_improvements.py,sha256=dcgX9Tv4U_Zki9nGcy6ykvyesDYAtS_CuD-7nf17kMQ,1736
|
|
@@ -91,6 +91,7 @@ openepd/model/specs/range/mixins/access_flooring_mixin.py,sha256=JEcvlmKv3R5dVIM
|
|
|
91
91
|
openepd/model/specs/range/network_infrastructure.py,sha256=aqXEIGqFy0gNCM_ftd3J6aT3FZf9JlT0SBOImhdkTg0,8498
|
|
92
92
|
openepd/model/specs/range/non_construction.py,sha256=PDJn1QKQR9wHYr-KtWIxji-41IKFSeMZUS1fSjy4QGU,1664
|
|
93
93
|
openepd/model/specs/range/openings.py,sha256=4MeNkbMAhtcGbiG5lxHCSRSdJ4F42uBMSXp5XJFODj4,15590
|
|
94
|
+
openepd/model/specs/range/other_electrical_equipment.py,sha256=NM7mlm38W9PTFMPPvvX5IaPMR2CCbpVO6Yi3i9iBb78,796
|
|
94
95
|
openepd/model/specs/range/other_materials.py,sha256=EAKHR9VJAkoqHL0FL2x-7PBvBxDD07drqoVLhBlaYzw,5823
|
|
95
96
|
openepd/model/specs/range/plumbing.py,sha256=jQKrKYGDR33uh3ffo6uVyt3xuSmexkkelfNh_-omNCg,5342
|
|
96
97
|
openepd/model/specs/range/precast_concrete.py,sha256=nn1U1XwKqqzY1cOPP3KqHZMJq4Ut9RAox4SMVYBa5B8,3763
|
|
@@ -115,7 +116,7 @@ openepd/model/specs/singular/conveying_equipment.py,sha256=AK_KdGyBDh0_Dl3YCkIyf
|
|
|
115
116
|
openepd/model/specs/singular/deprecated/__init__.py,sha256=f8I04fHO5QWpNtorrCgbUXz4r0B0zgsk8zDUfXu_i80,2635
|
|
116
117
|
openepd/model/specs/singular/deprecated/concrete.py,sha256=swSOfViIvy7z923C6uHBcIZrv_JRMv7wSJHpg9PGAJg,5265
|
|
117
118
|
openepd/model/specs/singular/deprecated/steel.py,sha256=0A3Y50XpLsPt105t_H8BzByaDUbLoX1o_QIr566JfB4,3499
|
|
118
|
-
openepd/model/specs/singular/electrical.py,sha256=
|
|
119
|
+
openepd/model/specs/singular/electrical.py,sha256=mGWddo7MO_S632Os4cpZnJG7bxxCghMB9n1x4g7Lnkk,12148
|
|
119
120
|
openepd/model/specs/singular/electrical_transmission_and_distribution_equipment.py,sha256=oZYyHgnXn9RH3YzltUEDiiQKrin2mvMlTgC3OhxV7DY,1978
|
|
120
121
|
openepd/model/specs/singular/electricity.py,sha256=f1cJ9eklNUf97khCIZiT5-z8V_TbOcvH2me_1UTQVrE,823
|
|
121
122
|
openepd/model/specs/singular/exterior_improvements.py,sha256=tf9lHxb5Mj9Sf3WGjR1wq-mKcyqlvvVKpZG2W6cLcxo,1711
|
|
@@ -124,7 +125,7 @@ openepd/model/specs/singular/fire_and_smoke_protection.py,sha256=1uyEGdMAsboYORH
|
|
|
124
125
|
openepd/model/specs/singular/furnishings.py,sha256=4bReWm8FSWHRyq6vmjPm7ZixFIau7J8JF1gtZq6_jVA,5732
|
|
125
126
|
openepd/model/specs/singular/grouting.py,sha256=pg2tX3W7a2TQ3z_eyFYGlBJY3WEwn6JlZyqM3PQIJcU,934
|
|
126
127
|
openepd/model/specs/singular/manufacturing_inputs.py,sha256=iIkkBMl13GmuphgvDnh-f4SmilviNrUSDopUfxtJAdc,5699
|
|
127
|
-
openepd/model/specs/singular/masonry.py,sha256=
|
|
128
|
+
openepd/model/specs/singular/masonry.py,sha256=5UOu6Upiz7wHbbTqASIminlwan2I1X2IhgQRG1hcVlU,2759
|
|
128
129
|
openepd/model/specs/singular/material_handling.py,sha256=iEeUx1hNKla669y0zl-QAJn6xA7ceq75aRG8qT0p56Q,1274
|
|
129
130
|
openepd/model/specs/singular/mechanical.py,sha256=VvW9PQ3VI8GCaqu5MKUmxjmcaHkKDAHAIhLyK-DVlUw,9862
|
|
130
131
|
openepd/model/specs/singular/mechanical_insulation.py,sha256=h-Ir-jiLF-cpiHap4wx5G4fpvsRRKzqcGVXb5U5aqvQ,1607
|
|
@@ -134,6 +135,7 @@ openepd/model/specs/singular/mixins/conduit_mixin.py,sha256=tj6p-MF84rg4LGxXPC65
|
|
|
134
135
|
openepd/model/specs/singular/network_infrastructure.py,sha256=eB3p1zu1u15Ly5iuyyJ4xl3Z1GuBCRVU18Wpz8FWZrg,8521
|
|
135
136
|
openepd/model/specs/singular/non_construction.py,sha256=VW_dP5I8AUkwa923d2r9X8S78k6OUA5rU0UAypUX8t8,1634
|
|
136
137
|
openepd/model/specs/singular/openings.py,sha256=IoLBp003qvWZOeTeIPtVPcq4AXdY3ZSSzRK10mnnJac,19183
|
|
138
|
+
openepd/model/specs/singular/other_electrical_equipment.py,sha256=55BCXX5GPxYPea_8Ro7hs_gec4ZMZJA72KEuejQqg3Y,791
|
|
137
139
|
openepd/model/specs/singular/other_materials.py,sha256=iD_AeC8vHXAQuvw62TrVOyoRS6uy5LFb_2PSODDn2hk,4759
|
|
138
140
|
openepd/model/specs/singular/plumbing.py,sha256=fHmKyy1aQxu8NZ3RTwxuA0CCERMgwVUdMA74kMDVc8o,4568
|
|
139
141
|
openepd/model/specs/singular/precast_concrete.py,sha256=W2tKf0vOnAdfeGc1n7Pk8yx9jy44afdFB0cbwHjw1HI,7327
|
|
@@ -148,7 +150,7 @@ openepd/model/validation/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA
|
|
|
148
150
|
openepd/model/validation/common.py,sha256=nzZoboF8Hab8WpQA4HGkqe7hds-SLJylh_QhasrEtZs,2518
|
|
149
151
|
openepd/model/validation/enum.py,sha256=0nRnjwmObw8ERQYWRWbovZjm90CMHi1Sc-UeNxCFnsc,1846
|
|
150
152
|
openepd/model/validation/numbers.py,sha256=r15pLe8oWY1tshazQvis_suVXpC6PUcPzKTvj3QTL9Q,851
|
|
151
|
-
openepd/model/validation/quantity.py,sha256=
|
|
153
|
+
openepd/model/validation/quantity.py,sha256=mUvWoSbxEQ04ZYGQHwC6uYM9ETEBJxcwsSq8ngDvgx8,20228
|
|
152
154
|
openepd/model/versioning.py,sha256=wBZdOVL3ND9FMIRU9PS3vx9M_7MBiO70xYPQvPez6po,4522
|
|
153
155
|
openepd/patch_pydantic.py,sha256=bO7U5HqthFol0vfycb0a42UAGL3KOQ8-9MW4yCWOFP0,4150
|
|
154
156
|
openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -156,7 +158,7 @@ openepd/utils/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
|
|
156
158
|
openepd/utils/functional.py,sha256=sm7od2_UE-cNToezBlwFQ1TCUJub1tz6VykA1X8XH-I,1274
|
|
157
159
|
openepd/utils/mapping/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
|
158
160
|
openepd/utils/mapping/common.py,sha256=WphCzwQQlzX11tUk88Ubyq3QPBLvH0tBPSIuH0kmiug,7339
|
|
159
|
-
openepd-6.31.
|
|
160
|
-
openepd-6.31.
|
|
161
|
-
openepd-6.31.
|
|
162
|
-
openepd-6.31.
|
|
161
|
+
openepd-6.31.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
162
|
+
openepd-6.31.2.dist-info/METADATA,sha256=VYAkuvgVPMCgqN6CP6nATMUCxPxnuf7zoQs7FaQ-bnw,9827
|
|
163
|
+
openepd-6.31.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
164
|
+
openepd-6.31.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|