openepd 4.6.0__tar.gz → 4.7.0__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-4.6.0 → openepd-4.7.0}/PKG-INFO +1 -1
- {openepd-4.6.0 → openepd-4.7.0}/pyproject.toml +1 -1
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/__version__.py +1 -1
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/base.py +2 -2
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/epd.py +7 -5
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/generic_estimate.py +7 -3
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/enums.py +59 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/mechanical.py +17 -1
- {openepd-4.6.0 → openepd-4.7.0}/LICENSE +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/README.md +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/__init__.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/__init__.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/base_sync_client.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/category/__init__.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/category/dto.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/category/sync_api.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/common.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/dto/__init__.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/dto/base.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/dto/common.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/dto/meta.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/dto/mf.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/dto/params.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/epd/__init__.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/epd/dto.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/epd/sync_api.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/errors.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/pcr/__init__.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/pcr/sync_api.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/sync_client.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/test/__init__.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/api/utils.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/bundle/__init__.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/bundle/base.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/bundle/model.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/bundle/reader.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/bundle/writer.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/compat/__init__.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/compat/compat_functional_validators.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/compat/pydantic.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/__init__.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/category.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/common.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/declaration.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/factory.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/geography.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/lcia.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/org.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/pcr.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/README.md +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/__init__.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/asphalt.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/base.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/concrete.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/__init__.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/accessories.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/aggregates.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/aluminium.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/asphalt.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/bulk_materials.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/cast_decks_and_underlayment.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/cladding.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/cmu.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/common.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/concrete.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/conveying_equipment.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/electrical.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/electrical_transmission_and_distribution_equipment.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/electricity.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/finishes.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/fire_and_smoke_protection.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/furnishings.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/grouting.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/manufacturing_inputs.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/masonry.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/material_handling.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/mechanical_insulation.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/network_infrastructure.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/openings.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/other_electrical_equipment.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/other_materials.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/plumbing.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/precast_concrete.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/sheathing.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/steel.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/thermal_moisture_protection.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/utility_piping.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/wood.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/wood_joists.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/standard.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/validation/__init__.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/validation/common.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/validation/numbers.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/validation/quantity.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/versioning.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/patch_pydantic.py +0 -0
- {openepd-4.6.0 → openepd-4.7.0}/src/openepd/py.typed +0 -0
@@ -16,7 +16,7 @@
|
|
16
16
|
import abc
|
17
17
|
from enum import StrEnum
|
18
18
|
import json
|
19
|
-
from typing import Any, Callable, Generic, Optional, Type, TypeAlias, TypeVar
|
19
|
+
from typing import Any, Callable, ClassVar, Generic, Optional, Type, TypeAlias, TypeVar
|
20
20
|
|
21
21
|
from openepd.compat.pydantic import pyd, pyd_generics
|
22
22
|
from openepd.model.validation.common import validate_version_compatibility, validate_version_format
|
@@ -177,7 +177,7 @@ TOpenEpdObjectClass = TypeVar("TOpenEpdObjectClass", bound=Type[BaseOpenEpdSchem
|
|
177
177
|
class RootDocument(abc.ABC, BaseOpenEpdSchema):
|
178
178
|
"""Base class for all objects representing openEPD root element. E.g. Epd, IndustryEpd, GenericEstimate, etc."""
|
179
179
|
|
180
|
-
_FORMAT_VERSION: str
|
180
|
+
_FORMAT_VERSION: ClassVar[str]
|
181
181
|
"""Version of this document format. Must be defined in the concrete class."""
|
182
182
|
|
183
183
|
doctype: str = pyd.Field(
|
@@ -20,7 +20,7 @@ from openepd.model.base import BaseDocumentFactory, OpenEpdDoctypes
|
|
20
20
|
from openepd.model.common import Amount, Ingredient, WithAltIdsMixin, WithAttachmentsMixin
|
21
21
|
from openepd.model.declaration import BaseDeclaration
|
22
22
|
from openepd.model.lcia import WithLciaMixin
|
23
|
-
from openepd.model.org import Org,
|
23
|
+
from openepd.model.org import Org, Plant
|
24
24
|
from openepd.model.specs import Specs
|
25
25
|
from openepd.model.versioning import OpenEpdVersions, Version
|
26
26
|
|
@@ -66,8 +66,8 @@ class EpdPreviewV0(WithAttachmentsMixin, WithAltIdsMixin, BaseDeclaration, title
|
|
66
66
|
description="Link to data object on original registrar's site",
|
67
67
|
example="https://epd-online.com/EmbeddedEpdList/Download/6029",
|
68
68
|
)
|
69
|
-
manufacturer:
|
70
|
-
epd_developer:
|
69
|
+
manufacturer: Org | None = pyd.Field(description=MANUFACTURER_DESCRIPTION)
|
70
|
+
epd_developer: Org | None = pyd.Field(
|
71
71
|
description=DEVELOPER_DESCRIPTION,
|
72
72
|
default=None,
|
73
73
|
)
|
@@ -82,14 +82,14 @@ class EpdPreviewV0(WithAttachmentsMixin, WithAltIdsMixin, BaseDeclaration, title
|
|
82
82
|
description="List of object(s) for one or more plant(s) that this declaration applies to.",
|
83
83
|
default_factory=list,
|
84
84
|
)
|
85
|
-
program_operator:
|
85
|
+
program_operator: Org | None = pyd.Field(description=PROGRAM_OPERATOR_DESCRIPTION)
|
86
86
|
program_operator_doc_id: str | None = pyd.Field(
|
87
87
|
max_length=200, description="Document identifier from Program Operator.", example="123-456.789/b"
|
88
88
|
)
|
89
89
|
program_operator_version: str | None = pyd.Field(
|
90
90
|
max_length=200, description="Document version number from Program Operator.", example="4.3.0"
|
91
91
|
)
|
92
|
-
third_party_verifier:
|
92
|
+
third_party_verifier: Org | None = pyd.Field(description=THIRD_PARTY_VERIFIER_DESCRIPTION)
|
93
93
|
third_party_verification_url: pyd.AnyUrl | None = pyd.Field(
|
94
94
|
description="Optional link to a verification statement.",
|
95
95
|
example="https://we-verify-epds.com/en/letters/123-456.789b.pdf",
|
@@ -204,6 +204,8 @@ class EpdWithDepsV0(EpdV0, title="EPD (with Dependencies)"):
|
|
204
204
|
Expanded version of the EPD.
|
205
205
|
|
206
206
|
Contains related entities - orgs - with full fields, to support object matching in implementations.
|
207
|
+
For now the implementation matches the above EpdV0 entity, but they will diverge as normal Epd would have
|
208
|
+
some required fields in Org (like web_domain), and WithDeps would not.
|
207
209
|
"""
|
208
210
|
|
209
211
|
manufacturer: Org | None = pyd.Field(description=MANUFACTURER_DESCRIPTION)
|
@@ -21,7 +21,7 @@ from openepd.model.common import WithAltIdsMixin, WithAttachmentsMixin
|
|
21
21
|
from openepd.model.declaration import BaseDeclaration
|
22
22
|
from openepd.model.geography import Geography
|
23
23
|
from openepd.model.lcia import WithLciaMixin
|
24
|
-
from openepd.model.org import Org
|
24
|
+
from openepd.model.org import Org
|
25
25
|
from openepd.model.versioning import OpenEpdVersions, Version
|
26
26
|
|
27
27
|
|
@@ -65,11 +65,11 @@ class GenericEstimatePreviewV0(WithAttachmentsMixin, BaseDeclaration, title="Gen
|
|
65
65
|
description="1-paragraph description of the Generic Estimate. Supports plain text or github flavored markdown.",
|
66
66
|
)
|
67
67
|
|
68
|
-
publisher:
|
68
|
+
publisher: Org | None = pyd.Field(description="Organization that published the LCA results.")
|
69
69
|
reviewer_email: pyd.EmailStr | None = pyd.Field(
|
70
70
|
description="Email address of the third party verifier", example="john.doe@example.com", default=None
|
71
71
|
)
|
72
|
-
reviewer:
|
72
|
+
reviewer: Org | None = pyd.Field(description="Org that performed a critical review of the LCA.")
|
73
73
|
license_terms: LicenseTerms | None = pyd.Field(description="The license terms for use of the data.")
|
74
74
|
geography: list[Geography] | None = pyd.Field(
|
75
75
|
"Jurisdiction(s) in which the LCA result is applicable. An empty array, or absent properties, implies global applicability."
|
@@ -102,6 +102,10 @@ class GenericEstimateWithDepsV0(GenericEstimateV0, title="Generic Estimate (with
|
|
102
102
|
Expanded version of the GenericEstimate.
|
103
103
|
|
104
104
|
Contains related entities - orgs - with full fields, to support object matching in implementations.
|
105
|
+
|
106
|
+
For now the implementation matches the above GenericEstimate entity, but they will diverge as normal GE would have
|
107
|
+
some required fields in Org (like web_domain), and WithDeps would not.
|
108
|
+
|
105
109
|
"""
|
106
110
|
|
107
111
|
publisher: Org | None = pyd.Field(description="Organization that published the LCA results.")
|
@@ -982,6 +982,65 @@ class HvacHeatExchangersType(StrEnum):
|
|
982
982
|
SPIRAL = "Spiral"
|
983
983
|
|
984
984
|
|
985
|
+
class HvacDuctType(StrEnum):
|
986
|
+
"""
|
987
|
+
Hvac duct type.
|
988
|
+
|
989
|
+
- Flexible: Duckwork that can be bent or adjusted easily. Suitable for tricky, tight spaces where rigid
|
990
|
+
ducts cannot be used.
|
991
|
+
- Rigid: Stiff ductwork, typically in fixed shapes. Commonly used for main duct runs due to its durability
|
992
|
+
and airflow efficiency.
|
993
|
+
- Semi-rigid: Less flexible than flexible ducts but not fixed. Balances flexibility and sturdiness,
|
994
|
+
useful for certain architectural constraints. Used mostly in residential applications.
|
995
|
+
- Ductboard: Insulated panel-type ductwork made from fiberglass or other materials. It provides thermal insulation
|
996
|
+
and is used where space is not a constraint.
|
997
|
+
"""
|
998
|
+
|
999
|
+
FLEXIBLE = "Flexible"
|
1000
|
+
RIGID = "Rigid"
|
1001
|
+
SEMI_RIGID = "Semi-rigid"
|
1002
|
+
DUCTBOARD = "Ductboard"
|
1003
|
+
|
1004
|
+
|
1005
|
+
class HvacDuctMaterial(StrEnum):
|
1006
|
+
"""
|
1007
|
+
Hvac duct material.
|
1008
|
+
|
1009
|
+
- Galvanized Steel: coated with a layer of zinc to prevent rust. Very durable and common for both residential
|
1010
|
+
and commercial HVAC systems.
|
1011
|
+
- Aluminum: lightweight and resistant to corrosion. Uncommon but preferred for special applications due
|
1012
|
+
to its ease of handling and installation.
|
1013
|
+
- PVC: Plastic ducts suitable for specific environments. Uncommon but used where moisture or chemical resistance
|
1014
|
+
is needed. Not for high temperatures.
|
1015
|
+
- Fiberglass: Insulated ducts that also absorb sound. Reduces noise and heat loss. Uncommon but suitable
|
1016
|
+
for sensitive environments.
|
1017
|
+
- Fabric: Ducts made from specialized fabric materials. Used for distributing air uniformly, and in places
|
1018
|
+
requiring diffused airflow.
|
1019
|
+
"""
|
1020
|
+
|
1021
|
+
GALVANIZED_STEEL = "Galvanized Steel"
|
1022
|
+
ALUMINUM = "Aluminum"
|
1023
|
+
PVC = "PVC"
|
1024
|
+
FIBERGLASS = "Fiberglass"
|
1025
|
+
FABRIC = "Fabric"
|
1026
|
+
|
1027
|
+
|
1028
|
+
class HvacDuctShape(StrEnum):
|
1029
|
+
"""
|
1030
|
+
Hvac duct shape.
|
1031
|
+
|
1032
|
+
- Round: Cylindrical ducts providing efficient airflow. Minimizes friction losses, making it effective for long runs.
|
1033
|
+
- Rectangular: Square or rectangular ducts, versatile installation. Common in commercial settings, easier
|
1034
|
+
to install in flat spaces.
|
1035
|
+
- Oval: Combines attributes of round and rectangular shapes. Provides the benefits of round ducts
|
1036
|
+
where space is limited.
|
1037
|
+
"""
|
1038
|
+
|
1039
|
+
ROUND = "Round"
|
1040
|
+
RECTANGULAR = "Rectangular"
|
1041
|
+
OVAL = "Oval"
|
1042
|
+
|
1043
|
+
|
985
1044
|
class HeatPumpType(StrEnum):
|
986
1045
|
"""
|
987
1046
|
Heat pump type.
|
@@ -23,6 +23,9 @@ from openepd.model.specs.generated.enums import (
|
|
23
23
|
BoilerConfiguration,
|
24
24
|
BoilerEquipmentFuelType,
|
25
25
|
HeatPumpType,
|
26
|
+
HvacDuctMaterial,
|
27
|
+
HvacDuctShape,
|
28
|
+
HvacDuctType,
|
26
29
|
HvacHeatExchangersType,
|
27
30
|
MechanicalInstallation,
|
28
31
|
MechanicalRefrigerants,
|
@@ -205,10 +208,22 @@ class HvacVrfSystemsV1(BaseOpenEpdHierarchicalSpec):
|
|
205
208
|
HvacVrfOutdoor: HvacVrfOutdoorV1 | None = None
|
206
209
|
|
207
210
|
|
211
|
+
class HvacDuctsV1(BaseOpenEpdHierarchicalSpec):
|
212
|
+
"""Ducts for HVAC systems performance specification."""
|
213
|
+
|
214
|
+
_EXT_VERSION = "1.0"
|
215
|
+
|
216
|
+
shape: HvacDuctShape | None = pyd.Field(default=None, description="Hvac duct shape", example="Rectangular")
|
217
|
+
material: HvacDuctMaterial | None = pyd.Field(
|
218
|
+
default=None, description="Hvac duct material", example="Galvanized Steel"
|
219
|
+
)
|
220
|
+
type: HvacDuctType | None = pyd.Field(default=None, description="Hvac duct type", example="Flexible")
|
221
|
+
|
222
|
+
|
208
223
|
class MechanicalV1(BaseOpenEpdHierarchicalSpec):
|
209
224
|
"""Mechanical performance specification."""
|
210
225
|
|
211
|
-
_EXT_VERSION = "1.
|
226
|
+
_EXT_VERSION = "1.1"
|
212
227
|
|
213
228
|
# Nested specs:
|
214
229
|
HvacAirDiffusers: HvacAirDiffusersV1 | None = None
|
@@ -222,3 +237,4 @@ class MechanicalV1(BaseOpenEpdHierarchicalSpec):
|
|
222
237
|
HvacPumps: HvacPumpsV1 | None = None
|
223
238
|
HvacRTUs: HvacRTUsV1 | None = None
|
224
239
|
HvacVrfSystems: HvacVrfSystemsV1 | None = None
|
240
|
+
HvacDucts: HvacDuctsV1 | None = None
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/cast_decks_and_underlayment.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/fire_and_smoke_protection.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/other_electrical_equipment.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{openepd-4.6.0 → openepd-4.7.0}/src/openepd/model/specs/generated/thermal_moisture_protection.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|