openepd 6.10.0__tar.gz → 6.12.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-6.10.0 → openepd-6.12.0}/PKG-INFO +1 -1
- {openepd-6.10.0 → openepd-6.12.0}/pyproject.toml +1 -1
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/__version__.py +1 -1
- openepd-6.12.0/src/openepd/model/specs/range/furnishings.py +255 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/steel.py +18 -6
- openepd-6.12.0/src/openepd/model/specs/singular/furnishings.py +198 -0
- openepd-6.10.0/src/openepd/model/specs/range/furnishings.py +0 -137
- openepd-6.10.0/src/openepd/model/specs/singular/furnishings.py +0 -89
- {openepd-6.10.0 → openepd-6.12.0}/LICENSE +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/README.md +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/average_dataset/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/average_dataset/generic_estimate_sync_api.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/average_dataset/industry_epd_sync_api.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/base_sync_client.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/category/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/category/dto.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/category/sync_api.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/common.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/dto/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/dto/base.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/dto/common.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/dto/meta.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/dto/mf.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/dto/params.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/epd/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/epd/dto.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/epd/sync_api.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/errors.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/pcr/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/pcr/sync_api.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/sync_client.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/test/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/api/utils.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/bundle/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/bundle/base.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/bundle/model.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/bundle/reader.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/bundle/writer.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/compat/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/compat/compat_functional_validators.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/compat/pydantic.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/base.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/category.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/common.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/declaration.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/epd.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/factory.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/generic_estimate.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/geography.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/industry_epd.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/lcia.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/org.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/pcr.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/README.md +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/asphalt.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/base.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/concrete.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/enums.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/accessories.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/aggregates.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/aluminium.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/asphalt.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/bulk_materials.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/cast_decks_and_underlayment.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/cladding.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/cmu.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/concrete.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/conveying_equipment.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/electrical.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/electricity.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/finishes.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/fire_and_smoke_protection.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/grouting.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/manufacturing_inputs.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/masonry.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/material_handling.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/mechanical.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/mechanical_insulation.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/network_infrastructure.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/openings.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/other_electrical_equipment.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/other_materials.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/plumbing.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/precast_concrete.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/sheathing.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/thermal_moisture_protection.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/utility_piping.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/wood.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/range/wood_joists.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/accessories.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/aggregates.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/aluminium.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/asphalt.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/bulk_materials.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/cast_decks_and_underlayment.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/cladding.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/cmu.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/common.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/concrete.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/conveying_equipment.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/deprecated/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/deprecated/concrete.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/deprecated/steel.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/electrical.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/electrical_transmission_and_distribution_equipment.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/electricity.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/finishes.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/fire_and_smoke_protection.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/grouting.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/manufacturing_inputs.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/masonry.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/material_handling.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/mechanical.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/mechanical_insulation.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/mixins/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/mixins/conduit_mixin.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/network_infrastructure.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/openings.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/other_electrical_equipment.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/other_materials.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/plumbing.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/precast_concrete.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/sheathing.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/steel.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/thermal_moisture_protection.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/utility_piping.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/wood.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/specs/singular/wood_joists.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/standard.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/validation/__init__.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/validation/common.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/validation/enum.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/validation/numbers.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/validation/quantity.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/model/versioning.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/patch_pydantic.py +0 -0
- {openepd-6.10.0 → openepd-6.12.0}/src/openepd/py.typed +0 -0
@@ -0,0 +1,255 @@
|
|
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
|
+
__all__ = (
|
17
|
+
"DemountablePartitionTrackRangeV1",
|
18
|
+
"ChairsRangeV1",
|
19
|
+
"CountertopsRangeV1",
|
20
|
+
"DemountablePartitionsRangeV1",
|
21
|
+
"OtherFurnishingsRangeV1",
|
22
|
+
"OpenStorageRangeV1",
|
23
|
+
"ClosedStorageRangeV1",
|
24
|
+
"RetractableStorageRangeV1",
|
25
|
+
"MobileStorageRangeV1",
|
26
|
+
"WallMountedShelvingRangeV1",
|
27
|
+
"OtherStorageFurnitureRangeV1",
|
28
|
+
"StorageFurnitureRangeV1",
|
29
|
+
"TablesRangeV1",
|
30
|
+
"WorkSurfacesRangeV1",
|
31
|
+
"WorkspacesRangeV1",
|
32
|
+
"FurnishingsRangeV1",
|
33
|
+
)
|
34
|
+
|
35
|
+
# NB! This is a generated code. Do not edit it manually. Please see src/openepd/model/specs/README.md
|
36
|
+
|
37
|
+
|
38
|
+
from openepd.compat.pydantic import pyd
|
39
|
+
from openepd.model.common import RangeInt, RangeRatioFloat
|
40
|
+
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
41
|
+
from openepd.model.specs.enums import CountertopMaterial
|
42
|
+
from openepd.model.validation.quantity import AmountRangeAreaM2, AmountRangeLengthMm, AmountRangeVolume
|
43
|
+
|
44
|
+
|
45
|
+
class DemountablePartitionTrackRangeV1(BaseOpenEpdHierarchicalSpec):
|
46
|
+
"""
|
47
|
+
Track for modular partitions.
|
48
|
+
|
49
|
+
Range version.
|
50
|
+
"""
|
51
|
+
|
52
|
+
_EXT_VERSION = "1.0"
|
53
|
+
|
54
|
+
|
55
|
+
class ChairsRangeV1(BaseOpenEpdHierarchicalSpec):
|
56
|
+
"""
|
57
|
+
Chairs.
|
58
|
+
|
59
|
+
Range version.
|
60
|
+
"""
|
61
|
+
|
62
|
+
_EXT_VERSION = "1.0"
|
63
|
+
|
64
|
+
|
65
|
+
class CountertopsRangeV1(BaseOpenEpdHierarchicalSpec):
|
66
|
+
"""
|
67
|
+
Raised, flat, and horizontal surfaces often used in kitchens, bathrooms, and workrooms.
|
68
|
+
|
69
|
+
Range version.
|
70
|
+
"""
|
71
|
+
|
72
|
+
_EXT_VERSION = "1.0"
|
73
|
+
|
74
|
+
thickness: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
75
|
+
countertop_material: list[CountertopMaterial] | None = pyd.Field(default=None, description="")
|
76
|
+
|
77
|
+
|
78
|
+
class DemountablePartitionsRangeV1(BaseOpenEpdHierarchicalSpec):
|
79
|
+
"""
|
80
|
+
Demountable partitions.
|
81
|
+
|
82
|
+
Range version.
|
83
|
+
"""
|
84
|
+
|
85
|
+
_EXT_VERSION = "1.0"
|
86
|
+
|
87
|
+
DemountablePartitionTrack: DemountablePartitionTrackRangeV1 | None = None
|
88
|
+
|
89
|
+
|
90
|
+
class OtherFurnishingsRangeV1(BaseOpenEpdHierarchicalSpec):
|
91
|
+
"""
|
92
|
+
Other furnishings.
|
93
|
+
|
94
|
+
Range version.
|
95
|
+
"""
|
96
|
+
|
97
|
+
_EXT_VERSION = "1.0"
|
98
|
+
|
99
|
+
|
100
|
+
class OpenStorageRangeV1(BaseOpenEpdHierarchicalSpec):
|
101
|
+
"""
|
102
|
+
Open Storage.
|
103
|
+
|
104
|
+
Open Storage furniture which is static and has no moving parts.
|
105
|
+
|
106
|
+
Range version.
|
107
|
+
"""
|
108
|
+
|
109
|
+
_EXT_VERSION = "1.0"
|
110
|
+
|
111
|
+
|
112
|
+
class ClosedStorageRangeV1(BaseOpenEpdHierarchicalSpec):
|
113
|
+
"""
|
114
|
+
Closed Storage.
|
115
|
+
|
116
|
+
Closed storage furniture making use of doors, sliding and/or hinged parts.
|
117
|
+
|
118
|
+
Range version.
|
119
|
+
"""
|
120
|
+
|
121
|
+
_EXT_VERSION = "1.0"
|
122
|
+
|
123
|
+
|
124
|
+
class RetractableStorageRangeV1(BaseOpenEpdHierarchicalSpec):
|
125
|
+
"""
|
126
|
+
Retractable Storage.
|
127
|
+
|
128
|
+
Storage Furniture with retractable (drawer) elements.
|
129
|
+
|
130
|
+
Range version.
|
131
|
+
"""
|
132
|
+
|
133
|
+
_EXT_VERSION = "1.0"
|
134
|
+
|
135
|
+
|
136
|
+
class MobileStorageRangeV1(BaseOpenEpdHierarchicalSpec):
|
137
|
+
"""
|
138
|
+
Mobile Storage.
|
139
|
+
|
140
|
+
Mobile storage furniture having wheels or casters for movement.
|
141
|
+
|
142
|
+
Range version.
|
143
|
+
"""
|
144
|
+
|
145
|
+
_EXT_VERSION = "1.0"
|
146
|
+
|
147
|
+
|
148
|
+
class WallMountedShelvingRangeV1(BaseOpenEpdHierarchicalSpec):
|
149
|
+
"""
|
150
|
+
Wall Mounted Shelving.
|
151
|
+
|
152
|
+
Storage furniture which requires usage of a vertical structure for attachment and functional support.
|
153
|
+
|
154
|
+
Range version.
|
155
|
+
"""
|
156
|
+
|
157
|
+
_EXT_VERSION = "1.0"
|
158
|
+
|
159
|
+
|
160
|
+
class OtherStorageFurnitureRangeV1(BaseOpenEpdHierarchicalSpec):
|
161
|
+
"""
|
162
|
+
Other Storage Furniture.
|
163
|
+
|
164
|
+
Range version.
|
165
|
+
"""
|
166
|
+
|
167
|
+
_EXT_VERSION = "1.0"
|
168
|
+
|
169
|
+
|
170
|
+
class StorageFurnitureRangeV1(BaseOpenEpdHierarchicalSpec):
|
171
|
+
"""
|
172
|
+
Storage Furniture.
|
173
|
+
|
174
|
+
Range version.
|
175
|
+
"""
|
176
|
+
|
177
|
+
_EXT_VERSION = "1.1"
|
178
|
+
|
179
|
+
OpenStorage: OpenStorageRangeV1 | None = None
|
180
|
+
ClosedStorage: ClosedStorageRangeV1 | None = None
|
181
|
+
RetractableStorage: RetractableStorageRangeV1 | None = None
|
182
|
+
MobileStorage: MobileStorageRangeV1 | None = None
|
183
|
+
WallMountedShelving: WallMountedShelvingRangeV1 | None = None
|
184
|
+
OtherStorageFurniture: OtherStorageFurnitureRangeV1 | None = None
|
185
|
+
|
186
|
+
|
187
|
+
class TablesRangeV1(BaseOpenEpdHierarchicalSpec):
|
188
|
+
"""
|
189
|
+
Tables.
|
190
|
+
|
191
|
+
Range version.
|
192
|
+
"""
|
193
|
+
|
194
|
+
_EXT_VERSION = "1.0"
|
195
|
+
|
196
|
+
|
197
|
+
class WorkSurfacesRangeV1(BaseOpenEpdHierarchicalSpec):
|
198
|
+
"""
|
199
|
+
Work surfaces.
|
200
|
+
|
201
|
+
Range version.
|
202
|
+
"""
|
203
|
+
|
204
|
+
_EXT_VERSION = "1.0"
|
205
|
+
|
206
|
+
|
207
|
+
class WorkspacesRangeV1(BaseOpenEpdHierarchicalSpec):
|
208
|
+
"""
|
209
|
+
Workspaces.
|
210
|
+
|
211
|
+
Office furniture and furniture systems for performing office work, such as cubicle systems.
|
212
|
+
Typically includes component(s) that may fit in other categories.
|
213
|
+
|
214
|
+
Range version.
|
215
|
+
"""
|
216
|
+
|
217
|
+
_EXT_VERSION = "1.0"
|
218
|
+
|
219
|
+
|
220
|
+
class FurnishingsRangeV1(BaseOpenEpdHierarchicalSpec):
|
221
|
+
"""
|
222
|
+
Home and office furnishings.
|
223
|
+
|
224
|
+
Range version.
|
225
|
+
"""
|
226
|
+
|
227
|
+
_EXT_VERSION = "1.1"
|
228
|
+
|
229
|
+
functional_floor_area_m2: AmountRangeAreaM2 | None = pyd.Field(
|
230
|
+
default=None, title="Functional Floor Area", description="The floor area that the product occupies."
|
231
|
+
)
|
232
|
+
work_surface_area_m2: AmountRangeAreaM2 | None = pyd.Field(
|
233
|
+
default=None, title="Work Surface Area", description="The usable work surface area that the product provides."
|
234
|
+
)
|
235
|
+
functional_storage_volume_m3: AmountRangeVolume | None = pyd.Field(
|
236
|
+
default=None, title="Functional Storage Volume", description=""
|
237
|
+
)
|
238
|
+
functional_seating_capacity: RangeInt | None = pyd.Field(
|
239
|
+
default=1,
|
240
|
+
title="Functional Seating Capacity",
|
241
|
+
description="Intended number of individuals the product seats. This value is used in calculating impact per functional unit.",
|
242
|
+
)
|
243
|
+
installation_waste_factor: RangeRatioFloat | None = pyd.Field(
|
244
|
+
default=0.01,
|
245
|
+
title="Installation Waste Factor",
|
246
|
+
description="Typical increase in impacts to account for installation waste.",
|
247
|
+
)
|
248
|
+
Chairs: ChairsRangeV1 | None = None
|
249
|
+
Countertops: CountertopsRangeV1 | None = None
|
250
|
+
DemountablePartitions: DemountablePartitionsRangeV1 | None = None
|
251
|
+
OtherFurnishings: OtherFurnishingsRangeV1 | None = None
|
252
|
+
StorageFurniture: StorageFurnitureRangeV1 | None = None
|
253
|
+
Tables: TablesRangeV1 | None = None
|
254
|
+
WorkSurfaces: WorkSurfacesRangeV1 | None = None
|
255
|
+
Workspaces: WorkspacesRangeV1 | None = None
|
@@ -227,10 +227,12 @@ class StructuralSteelRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
227
227
|
_EXT_VERSION = "1.0"
|
228
228
|
|
229
229
|
modulus_of_elasticity: AmountRangePressureMpa | None = pyd.Field(
|
230
|
-
default=None,
|
230
|
+
default=None,
|
231
|
+
description="Modulus of Elasticity, https://en.wikipedia.org/wiki/Elastic_modulus ",
|
231
232
|
)
|
232
233
|
thermal_expansion: AmountRangeThermalExpansion | None = pyd.Field(
|
233
|
-
default=None,
|
234
|
+
default=None,
|
235
|
+
description="Thermal Expansion, https://en.wikipedia.org/wiki/Thermal_expansion",
|
234
236
|
)
|
235
237
|
thermal_conductivity: AmountRangeThermalConductivity | None = pyd.Field(
|
236
238
|
default=None,
|
@@ -280,7 +282,8 @@ class RebarSteelRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
280
282
|
diameter_min: AmountRangeLengthMm | None = pyd.Field(default=None, description="Minimal diameter")
|
281
283
|
bending_pin_max: RangeFloat | None = pyd.Field(default=None)
|
282
284
|
ts_ys_ratio_max: RangeFloat | None = pyd.Field(
|
283
|
-
default=None,
|
285
|
+
default=None,
|
286
|
+
description="Max ratio of ultimate tensile to yield tensile strength",
|
284
287
|
)
|
285
288
|
epoxy_coated: bool | None = pyd.Field(default=None)
|
286
289
|
|
@@ -297,6 +300,12 @@ class WireMeshSteelRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
297
300
|
fabricated: bool | None = None
|
298
301
|
|
299
302
|
|
303
|
+
class OtherSteelRangeV1(BaseOpenEpdHierarchicalSpec):
|
304
|
+
"""Steel products that do not fit into a defined subcategory."""
|
305
|
+
|
306
|
+
_EXT_VERSION = "1.0"
|
307
|
+
|
308
|
+
|
300
309
|
class SteelRangeV1(BaseOpenEpdHierarchicalSpec):
|
301
310
|
"""
|
302
311
|
Broad category for construction materials made from steel and its alloys.
|
@@ -304,18 +313,20 @@ class SteelRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
304
313
|
Range version.
|
305
314
|
"""
|
306
315
|
|
307
|
-
_EXT_VERSION = "1.
|
316
|
+
_EXT_VERSION = "1.1"
|
308
317
|
|
309
318
|
yield_tensile_str: AmountRangePressureMpa | None = pyd.Field(
|
310
319
|
default=None,
|
311
320
|
description="Yield Tensile strength (Mpa) per unit area. Yield strength is the point at which a material begins to permanently deform or change shape due to applied stress.",
|
312
321
|
)
|
313
322
|
bar_elongation: RangeFloat | None = pyd.Field(
|
314
|
-
default=None,
|
323
|
+
default=None,
|
324
|
+
description="Increase in length at break, in percent. Typically 10%-20%",
|
315
325
|
)
|
316
326
|
recycled_content: RangeRatioFloat | None = pyd.Field(default=None, description="")
|
317
327
|
post_consumer_recycled_content: RangeRatioFloat | None = pyd.Field(
|
318
|
-
default=None,
|
328
|
+
default=None,
|
329
|
+
description="Should be a number between zero and the Recycled Content (steel_recycled_content)",
|
319
330
|
)
|
320
331
|
astm_marking: str | None = pyd.Field(default=None, description="The marking to be expected on the product.")
|
321
332
|
euro_marking: str | None = pyd.Field(default=None, description="The marking to be expected on the product.")
|
@@ -335,3 +346,4 @@ class SteelRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
335
346
|
PostTensioningSteel: PostTensioningSteelRangeV1 | None = None
|
336
347
|
RebarSteel: RebarSteelRangeV1 | None = None
|
337
348
|
WireMeshSteel: WireMeshSteelRangeV1 | None = None
|
349
|
+
OtherSteel: OtherSteelRangeV1 | None = None
|
@@ -0,0 +1,198 @@
|
|
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
|
+
from openepd.compat.pydantic import pyd
|
17
|
+
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
18
|
+
from openepd.model.specs.enums import CountertopMaterial
|
19
|
+
from openepd.model.validation.numbers import RatioFloat
|
20
|
+
from openepd.model.validation.quantity import AreaM2Str, LengthMmStr, VolumeStr
|
21
|
+
|
22
|
+
|
23
|
+
class DemountablePartitionTrackV1(BaseOpenEpdHierarchicalSpec):
|
24
|
+
"""Track for modular partitions."""
|
25
|
+
|
26
|
+
_EXT_VERSION = "1.0"
|
27
|
+
|
28
|
+
|
29
|
+
class ChairsV1(BaseOpenEpdHierarchicalSpec):
|
30
|
+
"""Chairs."""
|
31
|
+
|
32
|
+
_EXT_VERSION = "1.0"
|
33
|
+
|
34
|
+
|
35
|
+
class CountertopsV1(BaseOpenEpdHierarchicalSpec):
|
36
|
+
"""Raised, flat, and horizontal surfaces often used in kitchens, bathrooms, and workrooms."""
|
37
|
+
|
38
|
+
_EXT_VERSION = "1.0"
|
39
|
+
|
40
|
+
# Own fields:
|
41
|
+
thickness: LengthMmStr | None = pyd.Field(default=None, description="", example="30 mm")
|
42
|
+
countertop_material: CountertopMaterial | None = pyd.Field(default=None, description="", example="Stone")
|
43
|
+
|
44
|
+
|
45
|
+
class DemountablePartitionsV1(BaseOpenEpdHierarchicalSpec):
|
46
|
+
"""Demountable partitions."""
|
47
|
+
|
48
|
+
_EXT_VERSION = "1.0"
|
49
|
+
|
50
|
+
# Nested specs:
|
51
|
+
DemountablePartitionTrack: DemountablePartitionTrackV1 | None = None
|
52
|
+
|
53
|
+
|
54
|
+
class OtherFurnishingsV1(BaseOpenEpdHierarchicalSpec):
|
55
|
+
"""Other furnishings."""
|
56
|
+
|
57
|
+
_EXT_VERSION = "1.0"
|
58
|
+
|
59
|
+
|
60
|
+
class OpenStorageV1(BaseOpenEpdHierarchicalSpec):
|
61
|
+
"""
|
62
|
+
Open Storage.
|
63
|
+
|
64
|
+
Open Storage furniture which is static and has no moving parts.
|
65
|
+
"""
|
66
|
+
|
67
|
+
_EXT_VERSION = "1.0"
|
68
|
+
|
69
|
+
|
70
|
+
class ClosedStorageV1(BaseOpenEpdHierarchicalSpec):
|
71
|
+
"""
|
72
|
+
Closed Storage.
|
73
|
+
|
74
|
+
Closed storage furniture making use of doors, sliding and/or hinged parts.
|
75
|
+
"""
|
76
|
+
|
77
|
+
_EXT_VERSION = "1.0"
|
78
|
+
|
79
|
+
|
80
|
+
class RetractableStorageV1(BaseOpenEpdHierarchicalSpec):
|
81
|
+
"""
|
82
|
+
Retractable Storage.
|
83
|
+
|
84
|
+
Storage Furniture with retractable (drawer) elements.
|
85
|
+
"""
|
86
|
+
|
87
|
+
_EXT_VERSION = "1.0"
|
88
|
+
|
89
|
+
|
90
|
+
class MobileStorageV1(BaseOpenEpdHierarchicalSpec):
|
91
|
+
"""
|
92
|
+
Mobile Storage.
|
93
|
+
|
94
|
+
Mobile storage furniture having wheels or casters for movement.
|
95
|
+
"""
|
96
|
+
|
97
|
+
_EXT_VERSION = "1.0"
|
98
|
+
|
99
|
+
|
100
|
+
class WallMountedShelvingV1(BaseOpenEpdHierarchicalSpec):
|
101
|
+
"""
|
102
|
+
Wall Mounted Shelving.
|
103
|
+
|
104
|
+
Storage furniture which requires usage of a vertical structure for attachment and functional support.
|
105
|
+
"""
|
106
|
+
|
107
|
+
_EXT_VERSION = "1.0"
|
108
|
+
|
109
|
+
|
110
|
+
class OtherStorageFurnitureV1(BaseOpenEpdHierarchicalSpec):
|
111
|
+
"""Other Storage Furniture."""
|
112
|
+
|
113
|
+
_EXT_VERSION = "1.0"
|
114
|
+
|
115
|
+
|
116
|
+
class StorageFurnitureV1(BaseOpenEpdHierarchicalSpec):
|
117
|
+
"""Storage Furniture."""
|
118
|
+
|
119
|
+
_EXT_VERSION = "1.1"
|
120
|
+
|
121
|
+
# Nested specs:
|
122
|
+
OpenStorage: OpenStorageV1 | None = None
|
123
|
+
ClosedStorage: ClosedStorageV1 | None = None
|
124
|
+
RetractableStorage: RetractableStorageV1 | None = None
|
125
|
+
MobileStorage: MobileStorageV1 | None = None
|
126
|
+
WallMountedShelving: WallMountedShelvingV1 | None = None
|
127
|
+
OtherStorageFurniture: OtherStorageFurnitureV1 | None = None
|
128
|
+
|
129
|
+
|
130
|
+
class TablesV1(BaseOpenEpdHierarchicalSpec):
|
131
|
+
"""Tables."""
|
132
|
+
|
133
|
+
_EXT_VERSION = "1.0"
|
134
|
+
|
135
|
+
|
136
|
+
class WorkSurfacesV1(BaseOpenEpdHierarchicalSpec):
|
137
|
+
"""Work surfaces."""
|
138
|
+
|
139
|
+
_EXT_VERSION = "1.0"
|
140
|
+
|
141
|
+
|
142
|
+
class WorkspacesV1(BaseOpenEpdHierarchicalSpec):
|
143
|
+
"""
|
144
|
+
Workspaces.
|
145
|
+
|
146
|
+
Office furniture and furniture systems for performing office work, such as cubicle systems.
|
147
|
+
Typically includes component(s) that may fit in other categories.
|
148
|
+
"""
|
149
|
+
|
150
|
+
_EXT_VERSION = "1.0"
|
151
|
+
|
152
|
+
|
153
|
+
class FurnishingsV1(BaseOpenEpdHierarchicalSpec):
|
154
|
+
"""Home and office furnishings."""
|
155
|
+
|
156
|
+
_EXT_VERSION = "1.1"
|
157
|
+
|
158
|
+
# Own fields:
|
159
|
+
functional_floor_area_m2: AreaM2Str | None = pyd.Field(
|
160
|
+
default=None,
|
161
|
+
title="Functional Floor Area",
|
162
|
+
description="The floor area that the product occupies.",
|
163
|
+
example="1 m2",
|
164
|
+
)
|
165
|
+
work_surface_area_m2: AreaM2Str | None = pyd.Field(
|
166
|
+
default=None,
|
167
|
+
title="Work Surface Area",
|
168
|
+
description="The usable work surface area that the product provides.",
|
169
|
+
example="1 m2",
|
170
|
+
)
|
171
|
+
functional_storage_volume_m3: VolumeStr | None = pyd.Field(
|
172
|
+
default=None,
|
173
|
+
title="Functional Storage Volume",
|
174
|
+
description="",
|
175
|
+
example="1 m3",
|
176
|
+
)
|
177
|
+
functional_seating_capacity: pyd.NonNegativeInt | None = pyd.Field(
|
178
|
+
default=1,
|
179
|
+
title="Functional Seating Capacity",
|
180
|
+
description="Intended number of individuals the product seats. This value is used in calculating impact per functional unit.",
|
181
|
+
example=1,
|
182
|
+
)
|
183
|
+
installation_waste_factor: RatioFloat | None = pyd.Field(
|
184
|
+
default=0.01,
|
185
|
+
title="Installation Waste Factor",
|
186
|
+
description="Typical increase in impacts to account for installation waste.",
|
187
|
+
example=0.01,
|
188
|
+
)
|
189
|
+
|
190
|
+
# Nested specs:
|
191
|
+
Chairs: ChairsV1 | None = None
|
192
|
+
Countertops: CountertopsV1 | None = None
|
193
|
+
DemountablePartitions: DemountablePartitionsV1 | None = None
|
194
|
+
OtherFurnishings: OtherFurnishingsV1 | None = None
|
195
|
+
StorageFurniture: StorageFurnitureV1 | None = None
|
196
|
+
Tables: TablesV1 | None = None
|
197
|
+
WorkSurfaces: WorkSurfacesV1 | None = None
|
198
|
+
Workspaces: WorkspacesV1 | None = None
|
@@ -1,137 +0,0 @@
|
|
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
|
-
__all__ = (
|
17
|
-
"DemountablePartitionTrackRangeV1",
|
18
|
-
"ChairsRangeV1",
|
19
|
-
"CountertopsRangeV1",
|
20
|
-
"DemountablePartitionsRangeV1",
|
21
|
-
"OtherFurnishingsRangeV1",
|
22
|
-
"StorageFurnitureRangeV1",
|
23
|
-
"TablesRangeV1",
|
24
|
-
"WorkSurfacesRangeV1",
|
25
|
-
"FurnishingsRangeV1",
|
26
|
-
)
|
27
|
-
|
28
|
-
# NB! This is a generated code. Do not edit it manually. Please see src/openepd/model/specs/README.md
|
29
|
-
|
30
|
-
|
31
|
-
from openepd.compat.pydantic import pyd
|
32
|
-
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
33
|
-
from openepd.model.specs.enums import CountertopMaterial
|
34
|
-
from openepd.model.validation.quantity import AmountRangeLengthMm
|
35
|
-
|
36
|
-
|
37
|
-
class DemountablePartitionTrackRangeV1(BaseOpenEpdHierarchicalSpec):
|
38
|
-
"""
|
39
|
-
Track for modular partitions.
|
40
|
-
|
41
|
-
Range version.
|
42
|
-
"""
|
43
|
-
|
44
|
-
_EXT_VERSION = "1.0"
|
45
|
-
|
46
|
-
|
47
|
-
class ChairsRangeV1(BaseOpenEpdHierarchicalSpec):
|
48
|
-
"""
|
49
|
-
Chairs.
|
50
|
-
|
51
|
-
Range version.
|
52
|
-
"""
|
53
|
-
|
54
|
-
_EXT_VERSION = "1.0"
|
55
|
-
|
56
|
-
|
57
|
-
class CountertopsRangeV1(BaseOpenEpdHierarchicalSpec):
|
58
|
-
"""
|
59
|
-
Raised, flat, and horizontal surfaces often used in kitchens, bathrooms, and workrooms.
|
60
|
-
|
61
|
-
Range version.
|
62
|
-
"""
|
63
|
-
|
64
|
-
_EXT_VERSION = "1.0"
|
65
|
-
|
66
|
-
thickness: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
67
|
-
countertop_material: list[CountertopMaterial] | None = pyd.Field(default=None, description="")
|
68
|
-
|
69
|
-
|
70
|
-
class DemountablePartitionsRangeV1(BaseOpenEpdHierarchicalSpec):
|
71
|
-
"""
|
72
|
-
Demountable partitions.
|
73
|
-
|
74
|
-
Range version.
|
75
|
-
"""
|
76
|
-
|
77
|
-
_EXT_VERSION = "1.0"
|
78
|
-
|
79
|
-
DemountablePartitionTrack: DemountablePartitionTrackRangeV1 | None = None
|
80
|
-
|
81
|
-
|
82
|
-
class OtherFurnishingsRangeV1(BaseOpenEpdHierarchicalSpec):
|
83
|
-
"""
|
84
|
-
Other furnishings.
|
85
|
-
|
86
|
-
Range version.
|
87
|
-
"""
|
88
|
-
|
89
|
-
_EXT_VERSION = "1.0"
|
90
|
-
|
91
|
-
|
92
|
-
class StorageFurnitureRangeV1(BaseOpenEpdHierarchicalSpec):
|
93
|
-
"""
|
94
|
-
Storage Furniture.
|
95
|
-
|
96
|
-
Range version.
|
97
|
-
"""
|
98
|
-
|
99
|
-
_EXT_VERSION = "1.0"
|
100
|
-
|
101
|
-
|
102
|
-
class TablesRangeV1(BaseOpenEpdHierarchicalSpec):
|
103
|
-
"""
|
104
|
-
Tables.
|
105
|
-
|
106
|
-
Range version.
|
107
|
-
"""
|
108
|
-
|
109
|
-
_EXT_VERSION = "1.0"
|
110
|
-
|
111
|
-
|
112
|
-
class WorkSurfacesRangeV1(BaseOpenEpdHierarchicalSpec):
|
113
|
-
"""
|
114
|
-
Work surfaces.
|
115
|
-
|
116
|
-
Range version.
|
117
|
-
"""
|
118
|
-
|
119
|
-
_EXT_VERSION = "1.0"
|
120
|
-
|
121
|
-
|
122
|
-
class FurnishingsRangeV1(BaseOpenEpdHierarchicalSpec):
|
123
|
-
"""
|
124
|
-
Home and office furnishings.
|
125
|
-
|
126
|
-
Range version.
|
127
|
-
"""
|
128
|
-
|
129
|
-
_EXT_VERSION = "1.0"
|
130
|
-
|
131
|
-
Chairs: ChairsRangeV1 | None = None
|
132
|
-
Countertops: CountertopsRangeV1 | None = None
|
133
|
-
DemountablePartitions: DemountablePartitionsRangeV1 | None = None
|
134
|
-
OtherFurnishings: OtherFurnishingsRangeV1 | None = None
|
135
|
-
StorageFurniture: StorageFurnitureRangeV1 | None = None
|
136
|
-
Tables: TablesRangeV1 | None = None
|
137
|
-
WorkSurfaces: WorkSurfacesRangeV1 | None = None
|