openepd 5.3.0__tar.gz → 6.0.1__tar.gz
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-5.3.0 → openepd-6.0.1}/PKG-INFO +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/pyproject.toml +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/__version__.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/average_dataset/generic_estimate_sync_api.py +8 -7
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/epd/sync_api.py +6 -11
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/common.py +22 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/epd.py +1 -1
- openepd-6.0.1/src/openepd/model/specs/__init__.py +52 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/base.py +2 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/aggregates.py +2 -2
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/aluminium.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/asphalt.py +4 -4
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/cladding.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/cmu.py +6 -5
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/concrete.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/conveying_equipment.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/electrical.py +3 -2
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/finishes.py +13 -6
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/fire_and_smoke_protection.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/furnishings.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/manufacturing_inputs.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/masonry.py +2 -2
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/mechanical.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/mechanical_insulation.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/network_infrastructure.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/openings.py +12 -5
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/plumbing.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/precast_concrete.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/sheathing.py +3 -3
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/steel.py +10 -5
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/thermal_moisture_protection.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/utility_piping.py +1 -1
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/wood.py +8 -6
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/wood_joists.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/__init__.py +37 -35
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/aggregates.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/aluminium.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/asphalt.py +6 -4
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/cladding.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/cmu.py +10 -4
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/concrete.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/conveying_equipment.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/electrical.py +4 -3
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/finishes.py +9 -6
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/fire_and_smoke_protection.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/furnishings.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/manufacturing_inputs.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/masonry.py +4 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/mechanical.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/mechanical_insulation.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/mixins/conduit_mixin.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/network_infrastructure.py +2 -2
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/openings.py +10 -4
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/plumbing.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/sheathing.py +3 -3
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/steel.py +11 -5
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/thermal_moisture_protection.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/utility_piping.py +1 -1
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/wood.py +13 -7
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/wood_joists.py +2 -2
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/validation/quantity.py +179 -0
- openepd-5.3.0/src/openepd/model/specs/__init__.py +0 -93
- {openepd-5.3.0 → openepd-6.0.1}/LICENSE +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/README.md +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/__init__.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/__init__.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/average_dataset/__init__.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/average_dataset/industry_epd_sync_api.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/base_sync_client.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/category/__init__.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/category/dto.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/category/sync_api.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/common.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/dto/__init__.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/dto/base.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/dto/common.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/dto/meta.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/dto/mf.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/dto/params.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/epd/__init__.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/epd/dto.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/errors.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/pcr/__init__.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/pcr/sync_api.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/sync_client.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/test/__init__.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/utils.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/bundle/__init__.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/bundle/base.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/bundle/model.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/bundle/reader.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/bundle/writer.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/compat/__init__.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/compat/compat_functional_validators.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/compat/pydantic.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/__init__.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/base.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/category.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/declaration.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/factory.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/generic_estimate.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/geography.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/industry_epd.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/lcia.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/org.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/pcr.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/README.md +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/asphalt.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/concrete.py +0 -0
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs}/enums.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/__init__.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/accessories.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/bulk_materials.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/cast_decks_and_underlayment.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/electricity.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/grouting.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/material_handling.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/other_electrical_equipment.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/other_materials.py +0 -0
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/accessories.py +0 -0
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/bulk_materials.py +0 -0
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/cast_decks_and_underlayment.py +0 -0
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/common.py +0 -0
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/electrical_transmission_and_distribution_equipment.py +0 -0
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/electricity.py +0 -0
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/grouting.py +0 -0
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/material_handling.py +0 -0
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/mixins/__init__.py +0 -0
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/other_electrical_equipment.py +0 -0
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/other_materials.py +0 -0
- {openepd-5.3.0/src/openepd/model/specs/generated → openepd-6.0.1/src/openepd/model/specs/singular}/precast_concrete.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/standard.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/validation/__init__.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/validation/common.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/validation/enum.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/validation/numbers.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/versioning.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/patch_pydantic.py +0 -0
- {openepd-5.3.0 → openepd-6.0.1}/src/openepd/py.typed +0 -0
{openepd-5.3.0 → openepd-6.0.1}/src/openepd/api/average_dataset/generic_estimate_sync_api.py
RENAMED
@@ -57,16 +57,18 @@ class GenericEstimateApi(BaseApiMethodGroup):
|
|
57
57
|
|
58
58
|
@overload
|
59
59
|
def post_with_refs(
|
60
|
-
self, ge: GenericEstimateWithDeps, with_response: Literal[True]
|
60
|
+
self, ge: GenericEstimateWithDeps, with_response: Literal[True]
|
61
61
|
) -> tuple[GenericEstimate, Response]: ...
|
62
62
|
|
63
63
|
@overload
|
64
64
|
def post_with_refs(
|
65
|
-
self,
|
65
|
+
self,
|
66
|
+
ge: GenericEstimateWithDeps,
|
67
|
+
with_response: Literal[False] = False,
|
66
68
|
) -> GenericEstimate: ...
|
67
69
|
|
68
70
|
def post_with_refs(
|
69
|
-
self, ge: GenericEstimateWithDeps, with_response: bool = False
|
71
|
+
self, ge: GenericEstimateWithDeps, with_response: bool = False
|
70
72
|
) -> GenericEstimate | tuple[GenericEstimate, Response]:
|
71
73
|
"""
|
72
74
|
Post an GenericEstimate with references.
|
@@ -76,10 +78,9 @@ class GenericEstimateApi(BaseApiMethodGroup):
|
|
76
78
|
:param exclude_defaults: If True, fields with default values are excluded from the payload
|
77
79
|
:return: GenericEstimate alone, or GenericEstimate with HTTP Response object depending on parameter
|
78
80
|
"""
|
79
|
-
data = ge.to_serializable(exclude_unset=True,
|
80
|
-
|
81
|
-
|
82
|
-
data = remove_none_id_fields(data)
|
81
|
+
data = ge.to_serializable(exclude_unset=True, by_alias=True)
|
82
|
+
# Remove 'id' fields with None values, as 'id' cannot be None
|
83
|
+
data = remove_none_id_fields(data)
|
83
84
|
response = self._client.do_request(
|
84
85
|
"patch",
|
85
86
|
"/generic_estimates/post_with_refs",
|
@@ -106,16 +106,12 @@ class EpdApi(BaseApiMethodGroup):
|
|
106
106
|
return self.get_statistics_raw(omf).payload
|
107
107
|
|
108
108
|
@overload
|
109
|
-
def post_with_refs(
|
110
|
-
self, epd: Epd, with_response: Literal[True], exclude_defaults: bool = True
|
111
|
-
) -> tuple[Epd, Response]: ...
|
109
|
+
def post_with_refs(self, epd: Epd, with_response: Literal[True]) -> tuple[Epd, Response]: ...
|
112
110
|
|
113
111
|
@overload
|
114
|
-
def post_with_refs(self, epd: Epd, with_response: Literal[False] = False
|
112
|
+
def post_with_refs(self, epd: Epd, with_response: Literal[False] = False) -> Epd: ...
|
115
113
|
|
116
|
-
def post_with_refs(
|
117
|
-
self, epd: Epd, with_response: bool = False, exclude_defaults: bool = True
|
118
|
-
) -> Epd | tuple[Epd, Response]:
|
114
|
+
def post_with_refs(self, epd: Epd, with_response: bool = False) -> Epd | tuple[Epd, Response]:
|
119
115
|
"""
|
120
116
|
Post an EPD with references.
|
121
117
|
|
@@ -124,10 +120,9 @@ class EpdApi(BaseApiMethodGroup):
|
|
124
120
|
:param exclude_defaults: If True, fields with default values are excluded from the payload
|
125
121
|
:return: EPD or EPD with HTTP Response object depending on parameter
|
126
122
|
"""
|
127
|
-
epd_data = epd.to_serializable(exclude_unset=True,
|
128
|
-
|
129
|
-
|
130
|
-
epd_data = remove_none_id_fields(epd_data)
|
123
|
+
epd_data = epd.to_serializable(exclude_unset=True, by_alias=True)
|
124
|
+
# Remove 'id' fields with None values, as 'id' cannot be None
|
125
|
+
epd_data = remove_none_id_fields(epd_data)
|
131
126
|
response = self._client.do_request(
|
132
127
|
"patch",
|
133
128
|
"/epds/post-with-refs",
|
@@ -18,6 +18,7 @@ from typing import Annotated, Any
|
|
18
18
|
|
19
19
|
from openepd.compat.pydantic import pyd
|
20
20
|
from openepd.model.base import BaseOpenEpdSchema
|
21
|
+
from openepd.model.validation.numbers import RatioFloat
|
21
22
|
|
22
23
|
|
23
24
|
class Amount(BaseOpenEpdSchema):
|
@@ -77,6 +78,12 @@ class Measurement(BaseOpenEpdSchema):
|
|
77
78
|
)
|
78
79
|
|
79
80
|
|
81
|
+
class IngredientEvidenceTypeEnum(StrEnum):
|
82
|
+
"""Supported types of evidence for indirect ingredient."""
|
83
|
+
|
84
|
+
PRODUCT_EPD = "Product EPD"
|
85
|
+
|
86
|
+
|
80
87
|
class Ingredient(BaseOpenEpdSchema):
|
81
88
|
"""
|
82
89
|
An ingredient of a product.
|
@@ -84,6 +91,11 @@ class Ingredient(BaseOpenEpdSchema):
|
|
84
91
|
The Ingredients list gives the core data references and quantities. This list is used to document supply-chain
|
85
92
|
transparency, such as the EPDs of major components (e.g. cement in concrete, or recycled steel
|
86
93
|
in hot-rolled sections).
|
94
|
+
|
95
|
+
Since the exact ingredients may be viewed as a proprietary information by Manufacturers, this schema also allows
|
96
|
+
to pass some data about ingredient about explicitly saying what it is. Further, this data can be used to
|
97
|
+
calculate the supply chain specificity of the product and uncertainty adjusted factor. For this option, use
|
98
|
+
gwp_fraction, citation and evidence_type.
|
87
99
|
"""
|
88
100
|
|
89
101
|
qty: float | None = pyd.Field(
|
@@ -95,6 +107,16 @@ class Ingredient(BaseOpenEpdSchema):
|
|
95
107
|
default=None,
|
96
108
|
)
|
97
109
|
|
110
|
+
gwp_fraction: RatioFloat | None = pyd.Field(
|
111
|
+
default=None,
|
112
|
+
description="Fraction of product's A1-A3 GWP this flow represents. This value, along with the specificity of "
|
113
|
+
"the reference, are used to caclulate supply chain specificity.",
|
114
|
+
)
|
115
|
+
evidence_type: IngredientEvidenceTypeEnum | None = pyd.Field(
|
116
|
+
default=None, description="Type of evidence used, which can be used to calculate degree of specificity"
|
117
|
+
)
|
118
|
+
citation: str | None = pyd.Field(default=None, description="Text citation describing the data source ")
|
119
|
+
|
98
120
|
|
99
121
|
class LatLng(BaseOpenEpdSchema):
|
100
122
|
"""A latitude and longitude."""
|
@@ -29,7 +29,7 @@ from openepd.model.declaration import (
|
|
29
29
|
)
|
30
30
|
from openepd.model.lcia import WithLciaMixin
|
31
31
|
from openepd.model.org import Org, Plant
|
32
|
-
from openepd.model.specs import Specs
|
32
|
+
from openepd.model.specs.singular import Specs
|
33
33
|
from openepd.model.versioning import OpenEpdVersions, Version
|
34
34
|
|
35
35
|
MANUFACTURER_DESCRIPTION = (
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2024 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
|
+
from openepd.model.specs.singular.accessories import AccessoriesV1
|
18
|
+
from openepd.model.specs.singular.aggregates import AggregatesV1
|
19
|
+
from openepd.model.specs.singular.aluminium import AluminiumV1
|
20
|
+
from openepd.model.specs.singular.asphalt import AsphaltV1
|
21
|
+
from openepd.model.specs.singular.bulk_materials import BulkMaterialsV1
|
22
|
+
from openepd.model.specs.singular.cast_decks_and_underlayment import CastDecksAndUnderlaymentV1
|
23
|
+
from openepd.model.specs.singular.cladding import CladdingV1
|
24
|
+
from openepd.model.specs.singular.cmu import CMUV1
|
25
|
+
from openepd.model.specs.singular.concrete import ConcreteV1
|
26
|
+
from openepd.model.specs.singular.conveying_equipment import ConveyingEquipmentV1
|
27
|
+
from openepd.model.specs.singular.electrical import ElectricalV1
|
28
|
+
from openepd.model.specs.singular.electrical_transmission_and_distribution_equipment import (
|
29
|
+
ElectricalTransmissionAndDistributionEquipmentV1,
|
30
|
+
)
|
31
|
+
from openepd.model.specs.singular.electricity import ElectricityV1
|
32
|
+
from openepd.model.specs.singular.finishes import FinishesV1
|
33
|
+
from openepd.model.specs.singular.fire_and_smoke_protection import FireAndSmokeProtectionV1
|
34
|
+
from openepd.model.specs.singular.furnishings import FurnishingsV1
|
35
|
+
from openepd.model.specs.singular.grouting import GroutingV1
|
36
|
+
from openepd.model.specs.singular.manufacturing_inputs import ManufacturingInputsV1
|
37
|
+
from openepd.model.specs.singular.masonry import MasonryV1
|
38
|
+
from openepd.model.specs.singular.material_handling import MaterialHandlingV1
|
39
|
+
from openepd.model.specs.singular.mechanical import MechanicalV1
|
40
|
+
from openepd.model.specs.singular.mechanical_insulation import MechanicalInsulationV1
|
41
|
+
from openepd.model.specs.singular.network_infrastructure import NetworkInfrastructureV1
|
42
|
+
from openepd.model.specs.singular.openings import OpeningsV1
|
43
|
+
from openepd.model.specs.singular.other_electrical_equipment import OtherElectricalEquipmentV1
|
44
|
+
from openepd.model.specs.singular.other_materials import OtherMaterialsV1
|
45
|
+
from openepd.model.specs.singular.plumbing import PlumbingV1
|
46
|
+
from openepd.model.specs.singular.precast_concrete import PrecastConcreteV1
|
47
|
+
from openepd.model.specs.singular.sheathing import SheathingV1
|
48
|
+
from openepd.model.specs.singular.steel import SteelV1
|
49
|
+
from openepd.model.specs.singular.thermal_moisture_protection import ThermalMoistureProtectionV1
|
50
|
+
from openepd.model.specs.singular.utility_piping import UtilityPipingV1
|
51
|
+
from openepd.model.specs.singular.wood import WoodV1
|
52
|
+
from openepd.model.specs.singular.wood_joists import WoodJoistsV1
|
@@ -14,6 +14,7 @@
|
|
14
14
|
# limitations under the License.
|
15
15
|
#
|
16
16
|
import dataclasses
|
17
|
+
from types import UnionType
|
17
18
|
from typing import Any
|
18
19
|
|
19
20
|
from openepd.compat.pydantic import pyd
|
@@ -63,4 +64,4 @@ class CodegenSpec:
|
|
63
64
|
"""
|
64
65
|
|
65
66
|
exclude_from_codegen: bool = False
|
66
|
-
override_type: type
|
67
|
+
override_type: type | UnionType
|
@@ -21,8 +21,8 @@ __all__ = ("AggregatesRangeV1",)
|
|
21
21
|
from openepd.compat.pydantic import pyd
|
22
22
|
from openepd.model.common import RangeRatioFloat
|
23
23
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
24
|
-
from openepd.model.specs.
|
25
|
-
from openepd.model.specs.
|
24
|
+
from openepd.model.specs.enums import AggregateGradation, AggregateWeightClassification
|
25
|
+
from openepd.model.specs.singular.aggregates import AggregateApplication
|
26
26
|
from openepd.model.validation.quantity import AmountRangeLengthMm
|
27
27
|
|
28
28
|
|
@@ -26,7 +26,7 @@ __all__ = (
|
|
26
26
|
|
27
27
|
from openepd.compat.pydantic import pyd
|
28
28
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
29
|
-
from openepd.model.specs.
|
29
|
+
from openepd.model.specs.enums import AluminiumAlloy
|
30
30
|
|
31
31
|
|
32
32
|
class AluminiumBilletsRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -21,8 +21,8 @@ __all__ = ("AsphaltRangeV1",)
|
|
21
21
|
from openepd.compat.pydantic import pyd
|
22
22
|
from openepd.model.common import RangeRatioFloat
|
23
23
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
24
|
-
from openepd.model.specs.
|
25
|
-
from openepd.model.validation.quantity import AmountRangeLengthMm,
|
24
|
+
from openepd.model.specs.enums import AsphaltGradation, AsphaltMixType
|
25
|
+
from openepd.model.validation.quantity import AmountRangeLengthMm, TemperatureCStr
|
26
26
|
|
27
27
|
|
28
28
|
class AsphaltRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -44,11 +44,11 @@ class AsphaltRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
44
44
|
ground_tire_rubber: RangeRatioFloat | None = pyd.Field(
|
45
45
|
default=None, description="Percent of mixture that has been replaced by ground tire rubber (GTR)."
|
46
46
|
)
|
47
|
-
max_temperature:
|
47
|
+
max_temperature: TemperatureCStr | None = pyd.Field(
|
48
48
|
default=None,
|
49
49
|
description="The upper threshold temperature to which an asphalt binder can be heated preventing the asphalt mixture from rutting",
|
50
50
|
)
|
51
|
-
min_temperature:
|
51
|
+
min_temperature: TemperatureCStr | None = pyd.Field(
|
52
52
|
default=None,
|
53
53
|
description="The lower threshold temperature for an asphalt binder to prevent thermal cracking of the asphalt mixture.",
|
54
54
|
)
|
@@ -40,7 +40,7 @@ __all__ = (
|
|
40
40
|
|
41
41
|
from openepd.compat.pydantic import pyd
|
42
42
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
43
|
-
from openepd.model.specs.
|
43
|
+
from openepd.model.specs.enums import CladdingFacingMaterial, CladdingInsulatingMaterial, SidingFormFactor
|
44
44
|
from openepd.model.validation.quantity import AmountRangeLengthMm, AmountRangeRValue
|
45
45
|
|
46
46
|
|
@@ -18,11 +18,12 @@ __all__ = ("CMURangeV1",)
|
|
18
18
|
# NB! This is a generated code. Do not edit it manually. Please see src/openepd/model/specs/README.md
|
19
19
|
|
20
20
|
|
21
|
+
from builtins import float
|
22
|
+
|
21
23
|
from openepd.compat.pydantic import pyd
|
22
|
-
from openepd.model.common import RangeFloat
|
23
24
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
24
|
-
from openepd.model.specs.
|
25
|
-
from openepd.model.validation.quantity import
|
25
|
+
from openepd.model.specs.enums import CmuBlockType, CmuWeightClassification
|
26
|
+
from openepd.model.validation.quantity import AmountRangePressureMpa, GwpKgCo2eStr
|
26
27
|
|
27
28
|
|
28
29
|
class CMURangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -40,5 +41,5 @@ class CMURangeV1(BaseOpenEpdHierarchicalSpec):
|
|
40
41
|
block_type: list[CmuBlockType] | None = pyd.Field(default=None, description="")
|
41
42
|
insulated: bool | None = pyd.Field(default=None, description="")
|
42
43
|
sound_performance: bool | None = pyd.Field(default=None, description="")
|
43
|
-
b1_recarbonation:
|
44
|
-
b1_recarbonation_z:
|
44
|
+
b1_recarbonation: GwpKgCo2eStr | None = pyd.Field(default=None, description="")
|
45
|
+
b1_recarbonation_z: float | None = pyd.Field(default=None, description="")
|
@@ -32,7 +32,7 @@ from openepd.compat.pydantic import pyd
|
|
32
32
|
from openepd.model.common import RangeRatioFloat
|
33
33
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
34
34
|
from openepd.model.specs.concrete import Cementitious, ConcreteTypicalApplication
|
35
|
-
from openepd.model.specs.
|
35
|
+
from openepd.model.specs.enums import AciExposureClass, CsaExposureClass, EnExposureClass
|
36
36
|
from openepd.model.validation.quantity import (
|
37
37
|
AmountRangeLengthInch,
|
38
38
|
AmountRangeLengthMm,
|
@@ -24,7 +24,7 @@ __all__ = (
|
|
24
24
|
|
25
25
|
from openepd.compat.pydantic import pyd
|
26
26
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
27
|
-
from openepd.model.specs.
|
27
|
+
from openepd.model.specs.enums import ElevatorsBuildingRise, ElevatorsUsageIntensity
|
28
28
|
from openepd.model.validation.quantity import (
|
29
29
|
AmountRangeCapacityPerHour,
|
30
30
|
AmountRangeLengthMm,
|
@@ -51,13 +51,14 @@ __all__ = (
|
|
51
51
|
from openepd.compat.pydantic import pyd
|
52
52
|
from openepd.model.common import RangeFloat
|
53
53
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
54
|
-
from openepd.model.specs.
|
54
|
+
from openepd.model.specs.enums import CableTraysMaterial, ConduitMaterial, EnergySource, RacewaysMaterial
|
55
55
|
from openepd.model.validation.quantity import (
|
56
56
|
AmountRangeColorTemperature,
|
57
57
|
AmountRangeLengthMm,
|
58
58
|
AmountRangeLuminosity,
|
59
59
|
AmountRangeMass,
|
60
60
|
AmountRangePower,
|
61
|
+
AmountRangeUtilization,
|
61
62
|
)
|
62
63
|
|
63
64
|
|
@@ -376,7 +377,7 @@ class LightingRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
376
377
|
_EXT_VERSION = "1.0"
|
377
378
|
|
378
379
|
color_temperature: AmountRangeColorTemperature | None = pyd.Field(default=None, description="")
|
379
|
-
typical_utilization:
|
380
|
+
typical_utilization: AmountRangeUtilization | None = pyd.Field(default=None, description="")
|
380
381
|
luminosity: AmountRangeLuminosity | None = pyd.Field(default=None, description="")
|
381
382
|
wattage: AmountRangePower | None = pyd.Field(default=None, description="")
|
382
383
|
color_rendering_index: RangeFloat | None = pyd.Field(default=None, description="")
|
@@ -51,7 +51,7 @@ from openepd.compat.pydantic import pyd
|
|
51
51
|
from openepd.model.common import RangeAmount, RangeFloat, RangeInt, RangeRatioFloat
|
52
52
|
from openepd.model.org import OrgRef
|
53
53
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
54
|
-
from openepd.model.specs.
|
54
|
+
from openepd.model.specs.enums import (
|
55
55
|
AccessFlooringCoreMaterial,
|
56
56
|
AccessFlooringFinishMaterial,
|
57
57
|
AccessFlooringSeismicRating,
|
@@ -78,7 +78,14 @@ from openepd.model.specs.generated.enums import (
|
|
78
78
|
WoodFlooringFabrication,
|
79
79
|
WoodFlooringTimberSpecies,
|
80
80
|
)
|
81
|
-
from openepd.model.validation.quantity import
|
81
|
+
from openepd.model.validation.quantity import (
|
82
|
+
AmountRangeForce,
|
83
|
+
AmountRangeGWP,
|
84
|
+
AmountRangeLengthMm,
|
85
|
+
AmountRangePressureMpa,
|
86
|
+
AmountRangeRFactor,
|
87
|
+
AmountRangeYarnWeight,
|
88
|
+
)
|
82
89
|
|
83
90
|
|
84
91
|
class AccessFlooringRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -106,8 +113,8 @@ class AccessFlooringRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
106
113
|
panel_thickness: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
107
114
|
concentrated_load: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
|
108
115
|
uniform_load: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
|
109
|
-
rolling_load_10_pass:
|
110
|
-
rolling_load_10000_pass:
|
116
|
+
rolling_load_10_pass: AmountRangeForce | None = pyd.Field(default=None, description="")
|
117
|
+
rolling_load_10000_pass: AmountRangeForce | None = pyd.Field(default=None, description="")
|
111
118
|
|
112
119
|
|
113
120
|
class CarpetRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -124,7 +131,7 @@ class CarpetRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
124
131
|
intended_application: list[CarpetIntendedApplication] | None = pyd.Field(default=None, description="")
|
125
132
|
manufacture_type: list[CarpetManufactureType] | None = pyd.Field(default=None, description="")
|
126
133
|
form_factor: list[CarpetFormFactor] | None = pyd.Field(default=None, description="")
|
127
|
-
yarn_weight:
|
134
|
+
yarn_weight: AmountRangeYarnWeight | None = pyd.Field(default=None, description="")
|
128
135
|
yarn_type: list[CarpetYarnType] | None = pyd.Field(default=None, description="")
|
129
136
|
fire_radiant_panel_rating_astme648: str | None = pyd.Field(default=None, description="")
|
130
137
|
fire_smoke_density_rating_astme648: str | None = pyd.Field(default=None, description="")
|
@@ -457,7 +464,7 @@ class GypsumRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
457
464
|
fire_rating: list[GypsumFireRating] | None = pyd.Field(default=None, description="")
|
458
465
|
thickness: list[GypsumThickness] | None = pyd.Field(default=None, description="")
|
459
466
|
facing: list[GypsumFacing] | None = pyd.Field(default=None, description="")
|
460
|
-
r_factor:
|
467
|
+
r_factor: AmountRangeRFactor | None = pyd.Field(default=None, description="")
|
461
468
|
flame_spread_astm_e84: RangeInt | None = pyd.Field(default=None, description="")
|
462
469
|
smoke_production_astm_e84: RangeInt | None = pyd.Field(default=None, description="")
|
463
470
|
surface_abrasion_d4977: RangeInt | None = pyd.Field(default=None, description="")
|
@@ -26,7 +26,7 @@ __all__ = (
|
|
26
26
|
|
27
27
|
from openepd.compat.pydantic import pyd
|
28
28
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
29
|
-
from openepd.model.specs.
|
29
|
+
from openepd.model.specs.enums import (
|
30
30
|
IntumescentFireproofingMaterialType,
|
31
31
|
SprayFireproofingDensity,
|
32
32
|
SprayFireproofingMaterialType,
|
@@ -30,7 +30,7 @@ __all__ = (
|
|
30
30
|
|
31
31
|
from openepd.compat.pydantic import pyd
|
32
32
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
33
|
-
from openepd.model.specs.
|
33
|
+
from openepd.model.specs.enums import CountertopMaterial
|
34
34
|
from openepd.model.validation.quantity import AmountRangeLengthMm
|
35
35
|
|
36
36
|
|
@@ -33,7 +33,7 @@ from openepd.compat.pydantic import pyd
|
|
33
33
|
from openepd.model.common import RangeFloat
|
34
34
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
35
35
|
from openepd.model.specs.concrete import Cementitious
|
36
|
-
from openepd.model.specs.
|
36
|
+
from openepd.model.specs.enums import (
|
37
37
|
AdmixtureEffects,
|
38
38
|
CarpetYarnType,
|
39
39
|
CementAstmType,
|
@@ -25,7 +25,7 @@ __all__ = (
|
|
25
25
|
|
26
26
|
from openepd.compat.pydantic import pyd
|
27
27
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
28
|
-
from openepd.model.validation.quantity import AmountRangePressureMpa
|
28
|
+
from openepd.model.validation.quantity import AmountRangePressureMpa, AmountRangeThermalConductivity
|
29
29
|
|
30
30
|
|
31
31
|
class GMURangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -48,7 +48,7 @@ class AutoclavedAeratedConcreteRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
48
48
|
_EXT_VERSION = "1.0"
|
49
49
|
|
50
50
|
strength_28d: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
|
51
|
-
thermal_conductivity:
|
51
|
+
thermal_conductivity: AmountRangeThermalConductivity | None = pyd.Field(default=None, description="")
|
52
52
|
white: bool | None = pyd.Field(default=None, description="")
|
53
53
|
|
54
54
|
|
@@ -37,7 +37,7 @@ __all__ = (
|
|
37
37
|
|
38
38
|
from openepd.compat.pydantic import pyd
|
39
39
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
40
|
-
from openepd.model.specs.
|
40
|
+
from openepd.model.specs.enums import (
|
41
41
|
AhuAirflowControl,
|
42
42
|
AhuZoneControl,
|
43
43
|
AirFiltersMediaType,
|
@@ -21,7 +21,7 @@ __all__ = ("MechanicalInsulationRangeV1",)
|
|
21
21
|
from openepd.compat.pydantic import pyd
|
22
22
|
from openepd.model.common import RangeFloat
|
23
23
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
24
|
-
from openepd.model.specs.
|
24
|
+
from openepd.model.specs.enums import InsulatingMaterial, InsulationIntendedApplication
|
25
25
|
from openepd.model.validation.quantity import AmountRangeLengthMm
|
26
26
|
|
27
27
|
|
@@ -30,7 +30,7 @@ __all__ = (
|
|
30
30
|
from openepd.compat.pydantic import pyd
|
31
31
|
from openepd.model.common import RangeInt
|
32
32
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
33
|
-
from openepd.model.specs.
|
33
|
+
from openepd.model.specs.enums import (
|
34
34
|
CableTraysMaterial,
|
35
35
|
CablingCategory,
|
36
36
|
CablingFireRating,
|
@@ -50,7 +50,7 @@ __all__ = (
|
|
50
50
|
from openepd.compat.pydantic import pyd
|
51
51
|
from openepd.model.common import RangeInt, RangeRatioFloat
|
52
52
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
53
|
-
from openepd.model.specs.
|
53
|
+
from openepd.model.specs.enums import (
|
54
54
|
FlatGlassPanesThickness,
|
55
55
|
FrameMaterial,
|
56
56
|
HardwareFunction,
|
@@ -58,8 +58,13 @@ from openepd.model.specs.generated.enums import (
|
|
58
58
|
Spacer,
|
59
59
|
ThermalSeparation,
|
60
60
|
)
|
61
|
-
from openepd.model.specs.
|
62
|
-
from openepd.model.validation.quantity import
|
61
|
+
from openepd.model.specs.singular.openings import GlazingIntendedApplication, NAFSPerformanceClass
|
62
|
+
from openepd.model.validation.quantity import (
|
63
|
+
AmountRangeLengthMm,
|
64
|
+
AmountRangePressureMpa,
|
65
|
+
AmountRangeSpeed,
|
66
|
+
AmountRangeUFactor,
|
67
|
+
)
|
63
68
|
|
64
69
|
|
65
70
|
class PanelDoorsRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -328,7 +333,7 @@ class NAFSFenestrationRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
328
333
|
hurricane_resistant: bool | None = pyd.Field(
|
329
334
|
default=None, description="The product has been designed to resist windborne debris."
|
330
335
|
)
|
331
|
-
assembly_u_factor:
|
336
|
+
assembly_u_factor: AmountRangeUFactor | None = pyd.Field(
|
332
337
|
default=None, description="Weighted average conductance of heat across assembly (including frame)."
|
333
338
|
)
|
334
339
|
air_infiltration: AmountRangeSpeed | None = pyd.Field(
|
@@ -386,7 +391,9 @@ class InsulatingGlazingUnitsRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
386
391
|
default=None,
|
387
392
|
description="Number of panes, each separated by a cavity. A 3 pane unit has 2 cavities. example: 3",
|
388
393
|
)
|
389
|
-
cog_u_factor:
|
394
|
+
cog_u_factor: AmountRangeUFactor | None = pyd.Field(
|
395
|
+
default=None, description="Conductance of heat at center of glass."
|
396
|
+
)
|
390
397
|
spacer: list[Spacer] | None = pyd.Field(default=None, description="Spacer material for Integrated Glass Unit.")
|
391
398
|
|
392
399
|
|
@@ -35,7 +35,7 @@ __all__ = (
|
|
35
35
|
from openepd.compat.pydantic import pyd
|
36
36
|
from openepd.model.common import RangeAmount
|
37
37
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
38
|
-
from openepd.model.specs.
|
38
|
+
from openepd.model.specs.enums import FireProtectionPipingMaterial, PipingAnsiSchedule, PlumbingPipingMaterial
|
39
39
|
from openepd.model.validation.quantity import AmountRangeLengthMm
|
40
40
|
|
41
41
|
|
@@ -27,7 +27,7 @@ __all__ = (
|
|
27
27
|
from openepd.compat.pydantic import pyd
|
28
28
|
from openepd.model.common import RangeRatioFloat
|
29
29
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
30
|
-
from openepd.model.specs.
|
30
|
+
from openepd.model.specs.singular.precast_concrete import (
|
31
31
|
ArchitecturalPrecastElementType,
|
32
32
|
CivilPrecastElementType,
|
33
33
|
StructuralPrecastElementType,
|
@@ -25,8 +25,8 @@ __all__ = (
|
|
25
25
|
from openepd.compat.pydantic import pyd
|
26
26
|
from openepd.model.common import RangeInt
|
27
27
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
28
|
-
from openepd.model.specs.
|
29
|
-
from openepd.model.validation.quantity import AmountRangeLengthMm
|
28
|
+
from openepd.model.specs.enums import GypsumFacing, GypsumFireRating, GypsumThickness
|
29
|
+
from openepd.model.validation.quantity import AmountRangeLengthMm, AmountRangeRFactor
|
30
30
|
|
31
31
|
|
32
32
|
class CementitiousSheathingBoardRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -58,7 +58,7 @@ class GypsumSheathingBoardRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
58
58
|
fire_rating: list[GypsumFireRating] | None = pyd.Field(default=None, description="")
|
59
59
|
thickness: list[GypsumThickness] | None = pyd.Field(default=None, description="")
|
60
60
|
facing: list[GypsumFacing] | None = pyd.Field(default=None, description="")
|
61
|
-
r_factor:
|
61
|
+
r_factor: AmountRangeRFactor | None = pyd.Field(default=None, description="")
|
62
62
|
flame_spread_astm_e84: RangeInt | None = pyd.Field(default=None, description="")
|
63
63
|
smoke_production_astm_e84: RangeInt | None = pyd.Field(default=None, description="")
|
64
64
|
surface_abrasion_d4977: RangeInt | None = pyd.Field(default=None, description="")
|
@@ -41,10 +41,15 @@ __all__ = (
|
|
41
41
|
from openepd.compat.pydantic import pyd
|
42
42
|
from openepd.model.common import RangeFloat, RangeRatioFloat
|
43
43
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
44
|
-
from openepd.model.specs.
|
45
|
-
from openepd.model.specs.
|
44
|
+
from openepd.model.specs.enums import SteelComposition, SteelRebarGrade
|
45
|
+
from openepd.model.specs.singular.steel import SteelMakingRoute
|
46
46
|
from openepd.model.standard import Standard
|
47
|
-
from openepd.model.validation.quantity import
|
47
|
+
from openepd.model.validation.quantity import (
|
48
|
+
AmountRangeLengthMm,
|
49
|
+
AmountRangePressureMpa,
|
50
|
+
AmountRangeThermalConductivity,
|
51
|
+
AmountRangeThermalExpansion,
|
52
|
+
)
|
48
53
|
|
49
54
|
|
50
55
|
class ColdFormedFramingRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -224,10 +229,10 @@ class StructuralSteelRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
224
229
|
modulus_of_elasticity: AmountRangePressureMpa | None = pyd.Field(
|
225
230
|
default=None, description="Modulus of Elasticity, https://en.wikipedia.org/wiki/Elastic_modulus "
|
226
231
|
)
|
227
|
-
thermal_expansion:
|
232
|
+
thermal_expansion: AmountRangeThermalExpansion | None = pyd.Field(
|
228
233
|
default=None, description="Thermal Expansion, https://en.wikipedia.org/wiki/Thermal_expansion"
|
229
234
|
)
|
230
|
-
thermal_conductivity:
|
235
|
+
thermal_conductivity: AmountRangeThermalConductivity | None = pyd.Field(
|
231
236
|
default=None,
|
232
237
|
description="Thermal Conductivity, https://en.wikipedia.org/wiki/Thermal_conductivity_and_resistivity",
|
233
238
|
)
|
{openepd-5.3.0 → openepd-6.0.1}/src/openepd/model/specs/range/thermal_moisture_protection.py
RENAMED
@@ -44,7 +44,7 @@ __all__ = (
|
|
44
44
|
from openepd.compat.pydantic import pyd
|
45
45
|
from openepd.model.common import RangeFloat, RangeRatioFloat
|
46
46
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
47
|
-
from openepd.model.specs.
|
47
|
+
from openepd.model.specs.enums import (
|
48
48
|
FoamType,
|
49
49
|
InsulatingMaterial,
|
50
50
|
InsulationIntendedApplication,
|
@@ -25,7 +25,7 @@ __all__ = (
|
|
25
25
|
from openepd.compat.pydantic import pyd
|
26
26
|
from openepd.model.common import RangeAmount
|
27
27
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
28
|
-
from openepd.model.specs.
|
28
|
+
from openepd.model.specs.enums import BuriedPipingType, PipingAnsiSchedule, UtilityPipingMaterial
|
29
29
|
from openepd.model.validation.quantity import AmountRangeLengthMm
|
30
30
|
|
31
31
|
|