openepd 6.17.0__py3-none-any.whl → 6.18.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- openepd/__version__.py +1 -1
- openepd/model/specs/range/__init__.py +2 -2
- openepd/model/specs/range/exterior_improvements.py +3 -3
- openepd/model/specs/range/finishes.py +2 -23
- openepd/model/specs/range/manufacturing_inputs.py +13 -1
- openepd/model/specs/range/mixins/__init__.py +15 -0
- openepd/model/specs/range/mixins/access_flooring_mixin.py +42 -0
- openepd/model/specs/singular/finishes.py +2 -31
- openepd/model/specs/singular/manufacturing_inputs.py +13 -1
- openepd/model/specs/singular/mixins/access_flooring_mixin.py +49 -0
- {openepd-6.17.0.dist-info → openepd-6.18.0.dist-info}/METADATA +1 -1
- {openepd-6.17.0.dist-info → openepd-6.18.0.dist-info}/RECORD +14 -11
- {openepd-6.17.0.dist-info → openepd-6.18.0.dist-info}/LICENSE +0 -0
- {openepd-6.17.0.dist-info → openepd-6.18.0.dist-info}/WHEEL +0 -0
openepd/__version__.py
CHANGED
@@ -33,7 +33,7 @@ from .conveying_equipment import ConveyingEquipmentRangeV1
|
|
33
33
|
from .electrical import ElectricalRangeV1
|
34
34
|
from .electrical_transmission_and_distribution_equipment import ElectricalTransmissionAndDistributionEquipmentRangeV1
|
35
35
|
from .electricity import ElectricityRangeV1
|
36
|
-
from .exterior_improvements import
|
36
|
+
from .exterior_improvements import ExteriorImprovementsRangeV1
|
37
37
|
from .finishes import FinishesRangeV1
|
38
38
|
from .fire_and_smoke_protection import FireAndSmokeProtectionRangeV1
|
39
39
|
from .furnishings import FurnishingsRangeV1
|
@@ -100,4 +100,4 @@ class SpecsRange(BaseOpenEpdHierarchicalSpec):
|
|
100
100
|
MechanicalInsulation: MechanicalInsulationRangeV1 | None = None
|
101
101
|
OtherElectricalEquipment: OtherElectricalEquipmentRangeV1 | None = None
|
102
102
|
WoodJoists: WoodJoistsRangeV1 | None = None
|
103
|
-
ExteriorImprovements:
|
103
|
+
ExteriorImprovements: ExteriorImprovementsRangeV1 | None = None
|
@@ -18,7 +18,7 @@ from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
|
18
18
|
from openepd.model.validation.quantity import AmountRangePressureMpa
|
19
19
|
|
20
20
|
|
21
|
-
class
|
21
|
+
class ConcretePaversRangeV1(BaseOpenEpdHierarchicalSpec):
|
22
22
|
"""
|
23
23
|
Segmental units of concrete of standardized sizes and shapes for use in paving applications.
|
24
24
|
|
@@ -38,9 +38,9 @@ class ConcretePaversV1(BaseOpenEpdHierarchicalSpec):
|
|
38
38
|
white_cement: bool | None = pyd.Field(default=None, description="CMU using some portion of white cement")
|
39
39
|
|
40
40
|
|
41
|
-
class
|
41
|
+
class ExteriorImprovementsRangeV1(BaseOpenEpdHierarchicalSpec):
|
42
42
|
"""Products that alter the exterior appearance of a lot or its structures."""
|
43
43
|
|
44
44
|
_EXT_VERSION = "1.0"
|
45
45
|
|
46
|
-
ConcretePavers:
|
46
|
+
ConcretePavers: ConcretePaversRangeV1 | None = None
|
@@ -50,10 +50,6 @@ from openepd.model.common import RangeAmount, RangeFloat, RangeInt, RangeRatioFl
|
|
50
50
|
from openepd.model.org import OrgRef
|
51
51
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
52
52
|
from openepd.model.specs.enums import (
|
53
|
-
AccessFlooringCoreMaterial,
|
54
|
-
AccessFlooringFinishMaterial,
|
55
|
-
AccessFlooringSeismicRating,
|
56
|
-
AccessFlooringStringers,
|
57
53
|
AllFabrication,
|
58
54
|
CarpetFormFactor,
|
59
55
|
CarpetIntendedApplication,
|
@@ -76,17 +72,16 @@ from openepd.model.specs.enums import (
|
|
76
72
|
WoodFlooringFabrication,
|
77
73
|
WoodFlooringTimberSpecies,
|
78
74
|
)
|
75
|
+
from openepd.model.specs.range.mixins.access_flooring_mixin import AccessFlooringRangeMixin
|
79
76
|
from openepd.model.validation.quantity import (
|
80
|
-
AmountRangeForce,
|
81
77
|
AmountRangeGWP,
|
82
78
|
AmountRangeLengthMm,
|
83
|
-
AmountRangePressureMpa,
|
84
79
|
AmountRangeRFactor,
|
85
80
|
AmountRangeYarnWeight,
|
86
81
|
)
|
87
82
|
|
88
83
|
|
89
|
-
class AccessFlooringRangeV1(BaseOpenEpdHierarchicalSpec):
|
84
|
+
class AccessFlooringRangeV1(BaseOpenEpdHierarchicalSpec, AccessFlooringRangeMixin):
|
90
85
|
"""
|
91
86
|
Elevated floor system built on top of concrete slab surface.
|
92
87
|
|
@@ -98,22 +93,6 @@ class AccessFlooringRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
98
93
|
|
99
94
|
_EXT_VERSION = "1.0"
|
100
95
|
|
101
|
-
core_material: list[AccessFlooringCoreMaterial] | None = pyd.Field(default=None, description="")
|
102
|
-
finish_material: list[AccessFlooringFinishMaterial] | None = pyd.Field(default=None, description="")
|
103
|
-
stringers: list[AccessFlooringStringers] | None = pyd.Field(default=None, description="")
|
104
|
-
seismic_rating: list[AccessFlooringSeismicRating] | None = pyd.Field(default=None, description="")
|
105
|
-
magnetically_attached_finish: bool | None = pyd.Field(default=None, description="")
|
106
|
-
permanent_finish: bool | None = pyd.Field(default=None, description="")
|
107
|
-
drylay: bool | None = pyd.Field(default=None, description="")
|
108
|
-
adjustable_height: bool | None = pyd.Field(default=None, description="")
|
109
|
-
fixed_height: bool | None = pyd.Field(default=None, description="")
|
110
|
-
finished_floor_height: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
111
|
-
panel_thickness: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
112
|
-
concentrated_load: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
|
113
|
-
uniform_load: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
|
114
|
-
rolling_load_10_pass: AmountRangeForce | None = pyd.Field(default=None, description="")
|
115
|
-
rolling_load_10000_pass: AmountRangeForce | None = pyd.Field(default=None, description="")
|
116
|
-
|
117
96
|
|
118
97
|
class CarpetRangeV1(BaseOpenEpdHierarchicalSpec):
|
119
98
|
"""
|
@@ -44,6 +44,7 @@ from openepd.model.specs.enums import (
|
|
44
44
|
MasonryCementAstmC91Type,
|
45
45
|
TextilesFabricType,
|
46
46
|
)
|
47
|
+
from openepd.model.specs.range.mixins.access_flooring_mixin import AccessFlooringRangeMixin
|
47
48
|
|
48
49
|
|
49
50
|
class CementRangeV1(BaseOpenEpdHierarchicalSpec):
|
@@ -170,6 +171,16 @@ class TextilesRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
170
171
|
fabric_type: list[TextilesFabricType] | None = pyd.Field(default=None, description="")
|
171
172
|
|
172
173
|
|
174
|
+
class AccessFlooringPanelsRangeV1(BaseOpenEpdHierarchicalSpec, AccessFlooringRangeMixin):
|
175
|
+
"""
|
176
|
+
Part of an access floor system.
|
177
|
+
|
178
|
+
Panels are laid on top of an access floor pedestal, creating a finish floor.
|
179
|
+
"""
|
180
|
+
|
181
|
+
_EXT_VERSION = "1.0"
|
182
|
+
|
183
|
+
|
173
184
|
class ManufacturingInputsRangeV1(BaseOpenEpdHierarchicalSpec):
|
174
185
|
"""
|
175
186
|
Manufacturing inputs.
|
@@ -180,7 +191,7 @@ class ManufacturingInputsRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
180
191
|
Range version.
|
181
192
|
"""
|
182
193
|
|
183
|
-
_EXT_VERSION = "1.
|
194
|
+
_EXT_VERSION = "1.1"
|
184
195
|
|
185
196
|
AccessFlooringPedestals: AccessFlooringPedestalsRangeV1 | None = None
|
186
197
|
CarpetBacking: CarpetBackingRangeV1 | None = None
|
@@ -188,3 +199,4 @@ class ManufacturingInputsRangeV1(BaseOpenEpdHierarchicalSpec):
|
|
188
199
|
CementitiousMaterials: CementitiousMaterialsRangeV1 | None = None
|
189
200
|
ConcreteAdmixtures: ConcreteAdmixturesRangeV1 | None = None
|
190
201
|
Textiles: TextilesRangeV1 | None = None
|
202
|
+
AccessFlooringPanels: AccessFlooringPanelsRangeV1 | None = None
|
@@ -0,0 +1,15 @@
|
|
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
|
+
#
|
@@ -0,0 +1,42 @@
|
|
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 BaseOpenEpdSpec
|
18
|
+
from openepd.model.specs.enums import (
|
19
|
+
AccessFlooringCoreMaterial,
|
20
|
+
AccessFlooringFinishMaterial,
|
21
|
+
AccessFlooringSeismicRating,
|
22
|
+
AccessFlooringStringers,
|
23
|
+
)
|
24
|
+
from openepd.model.validation.quantity import AmountRangeForce, AmountRangeLengthMm, AmountRangePressureMpa
|
25
|
+
|
26
|
+
|
27
|
+
class AccessFlooringRangeMixin(BaseOpenEpdSpec):
|
28
|
+
core_material: list[AccessFlooringCoreMaterial] | None = pyd.Field(default=None, description="")
|
29
|
+
finish_material: list[AccessFlooringFinishMaterial] | None = pyd.Field(default=None, description="")
|
30
|
+
stringers: list[AccessFlooringStringers] | None = pyd.Field(default=None, description="")
|
31
|
+
seismic_rating: list[AccessFlooringSeismicRating] | None = pyd.Field(default=None, description="")
|
32
|
+
magnetically_attached_finish: bool | None = pyd.Field(default=None, description="")
|
33
|
+
permanent_finish: bool | None = pyd.Field(default=None, description="")
|
34
|
+
drylay: bool | None = pyd.Field(default=None, description="")
|
35
|
+
adjustable_height: bool | None = pyd.Field(default=None, description="")
|
36
|
+
fixed_height: bool | None = pyd.Field(default=None, description="")
|
37
|
+
finished_floor_height: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
38
|
+
panel_thickness: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
39
|
+
concentrated_load: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
|
40
|
+
uniform_load: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
|
41
|
+
rolling_load_10_pass: AmountRangeForce | None = pyd.Field(default=None, description="")
|
42
|
+
rolling_load_10000_pass: AmountRangeForce | None = pyd.Field(default=None, description="")
|
@@ -16,10 +16,6 @@
|
|
16
16
|
from openepd.compat.pydantic import pyd
|
17
17
|
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
18
18
|
from openepd.model.specs.enums import (
|
19
|
-
AccessFlooringCoreMaterial,
|
20
|
-
AccessFlooringFinishMaterial,
|
21
|
-
AccessFlooringSeismicRating,
|
22
|
-
AccessFlooringStringers,
|
23
19
|
AllFabrication,
|
24
20
|
CarpetFormFactor,
|
25
21
|
CarpetIntendedApplication,
|
@@ -43,14 +39,13 @@ from openepd.model.specs.enums import (
|
|
43
39
|
WoodFlooringTimberSpecies,
|
44
40
|
)
|
45
41
|
from openepd.model.specs.singular.common import HasForestPracticesCertifiers
|
42
|
+
from openepd.model.specs.singular.mixins.access_flooring_mixin import AccessFlooringMixin
|
46
43
|
from openepd.model.validation.numbers import RatioFloat
|
47
44
|
from openepd.model.validation.quantity import (
|
48
45
|
AreaPerVolumeStr,
|
49
|
-
ForceNStr,
|
50
46
|
GwpKgCo2eStr,
|
51
47
|
LengthMmStr,
|
52
48
|
LengthMStr,
|
53
|
-
PressureMPaStr,
|
54
49
|
RFactorStr,
|
55
50
|
YarnWeightStr,
|
56
51
|
validate_quantity_ge_factory,
|
@@ -59,7 +54,7 @@ from openepd.model.validation.quantity import (
|
|
59
54
|
)
|
60
55
|
|
61
56
|
|
62
|
-
class AccessFlooringV1(BaseOpenEpdHierarchicalSpec):
|
57
|
+
class AccessFlooringV1(BaseOpenEpdHierarchicalSpec, AccessFlooringMixin):
|
63
58
|
"""
|
64
59
|
Elevated floor system built on top of concrete slab surface.
|
65
60
|
|
@@ -69,30 +64,6 @@ class AccessFlooringV1(BaseOpenEpdHierarchicalSpec):
|
|
69
64
|
|
70
65
|
_EXT_VERSION = "1.0"
|
71
66
|
|
72
|
-
# Own fields:
|
73
|
-
core_material: AccessFlooringCoreMaterial | None = pyd.Field(default=None, description="", example="Cementitious")
|
74
|
-
finish_material: AccessFlooringFinishMaterial | None = pyd.Field(default=None, description="", example="Linoleum")
|
75
|
-
stringers: AccessFlooringStringers | None = pyd.Field(default=None, description="", example="Standard")
|
76
|
-
seismic_rating: AccessFlooringSeismicRating | None = pyd.Field(default=None, description="", example="Type 0")
|
77
|
-
magnetically_attached_finish: bool | None = pyd.Field(default=None, description="", example=True)
|
78
|
-
permanent_finish: bool | None = pyd.Field(default=None, description="", example=True)
|
79
|
-
drylay: bool | None = pyd.Field(default=None, description="", example=True)
|
80
|
-
adjustable_height: bool | None = pyd.Field(default=None, description="", example=True)
|
81
|
-
fixed_height: bool | None = pyd.Field(default=None, description="", example=True)
|
82
|
-
finished_floor_height: LengthMmStr | None = pyd.Field(default=None, description="", example="1 m")
|
83
|
-
panel_thickness: LengthMmStr | None = pyd.Field(default=None, description="", example="1 m")
|
84
|
-
concentrated_load: PressureMPaStr | None = pyd.Field(default=None, description="", example="1 MPa")
|
85
|
-
uniform_load: PressureMPaStr | None = pyd.Field(default=None, description="", example="1 MPa")
|
86
|
-
rolling_load_10_pass: ForceNStr | None = pyd.Field(default=None, description="", example="1 N")
|
87
|
-
rolling_load_10000_pass: ForceNStr | None = pyd.Field(default=None, description="", example="1 N")
|
88
|
-
|
89
|
-
_access_flooring_rolling_load_10_pass_is_quantity_validator = pyd.validator(
|
90
|
-
"rolling_load_10_pass", allow_reuse=True
|
91
|
-
)(validate_quantity_unit_factory("N"))
|
92
|
-
_access_flooring_rolling_load_10000_pass_is_quantity_validator = pyd.validator(
|
93
|
-
"rolling_load_10000_pass", allow_reuse=True
|
94
|
-
)(validate_quantity_unit_factory("N"))
|
95
|
-
|
96
67
|
|
97
68
|
class CarpetV1(BaseOpenEpdHierarchicalSpec):
|
98
69
|
"""Textile Floor Coverings."""
|
@@ -27,6 +27,7 @@ from openepd.model.specs.enums import (
|
|
27
27
|
MasonryCementAstmC91Type,
|
28
28
|
TextilesFabricType,
|
29
29
|
)
|
30
|
+
from openepd.model.specs.singular.mixins.access_flooring_mixin import AccessFlooringMixin
|
30
31
|
|
31
32
|
|
32
33
|
class CementV1(BaseOpenEpdHierarchicalSpec):
|
@@ -132,6 +133,16 @@ class TextilesV1(BaseOpenEpdHierarchicalSpec):
|
|
132
133
|
fabric_type: list[TextilesFabricType] | None = pyd.Field(default=None, description="", example=["Leather"])
|
133
134
|
|
134
135
|
|
136
|
+
class AccessFlooringPanelsV1(BaseOpenEpdHierarchicalSpec, AccessFlooringMixin):
|
137
|
+
"""
|
138
|
+
Part of an access floor system.
|
139
|
+
|
140
|
+
Panels are laid on top of an access floor pedestal, creating a finish floor.
|
141
|
+
"""
|
142
|
+
|
143
|
+
_EXT_VERSION = "1.0"
|
144
|
+
|
145
|
+
|
135
146
|
class ManufacturingInputsV1(BaseOpenEpdHierarchicalSpec):
|
136
147
|
"""
|
137
148
|
Manufacturing inputs.
|
@@ -140,7 +151,7 @@ class ManufacturingInputsV1(BaseOpenEpdHierarchicalSpec):
|
|
140
151
|
a construction.
|
141
152
|
"""
|
142
153
|
|
143
|
-
_EXT_VERSION = "1.
|
154
|
+
_EXT_VERSION = "1.1"
|
144
155
|
|
145
156
|
# Nested specs:
|
146
157
|
AccessFlooringPedestals: AccessFlooringPedestalsV1 | None = None
|
@@ -149,3 +160,4 @@ class ManufacturingInputsV1(BaseOpenEpdHierarchicalSpec):
|
|
149
160
|
CementitiousMaterials: CementitiousMaterialsV1 | None = None
|
150
161
|
ConcreteAdmixtures: ConcreteAdmixturesV1 | None = None
|
151
162
|
Textiles: TextilesV1 | None = None
|
163
|
+
AccessFlooringPanels: AccessFlooringPanelsV1 | None = None
|
@@ -0,0 +1,49 @@
|
|
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 BaseOpenEpdSpec
|
18
|
+
from openepd.model.specs.enums import (
|
19
|
+
AccessFlooringCoreMaterial,
|
20
|
+
AccessFlooringFinishMaterial,
|
21
|
+
AccessFlooringSeismicRating,
|
22
|
+
AccessFlooringStringers,
|
23
|
+
)
|
24
|
+
from openepd.model.validation.quantity import ForceNStr, LengthMmStr, PressureMPaStr, validate_quantity_unit_factory
|
25
|
+
|
26
|
+
|
27
|
+
class AccessFlooringMixin(BaseOpenEpdSpec):
|
28
|
+
core_material: AccessFlooringCoreMaterial | None = pyd.Field(default=None, description="", example="Cementitious")
|
29
|
+
finish_material: AccessFlooringFinishMaterial | None = pyd.Field(default=None, description="", example="Linoleum")
|
30
|
+
stringers: AccessFlooringStringers | None = pyd.Field(default=None, description="", example="Standard")
|
31
|
+
seismic_rating: AccessFlooringSeismicRating | None = pyd.Field(default=None, description="", example="Type 0")
|
32
|
+
magnetically_attached_finish: bool | None = pyd.Field(default=None, description="", example=True)
|
33
|
+
permanent_finish: bool | None = pyd.Field(default=None, description="", example=True)
|
34
|
+
drylay: bool | None = pyd.Field(default=None, description="", example=True)
|
35
|
+
adjustable_height: bool | None = pyd.Field(default=None, description="", example=True)
|
36
|
+
fixed_height: bool | None = pyd.Field(default=None, description="", example=True)
|
37
|
+
finished_floor_height: LengthMmStr | None = pyd.Field(default=None, description="", example="1 m")
|
38
|
+
panel_thickness: LengthMmStr | None = pyd.Field(default=None, description="", example="1 m")
|
39
|
+
concentrated_load: PressureMPaStr | None = pyd.Field(default=None, description="", example="1 MPa")
|
40
|
+
uniform_load: PressureMPaStr | None = pyd.Field(default=None, description="", example="1 MPa")
|
41
|
+
rolling_load_10_pass: ForceNStr | None = pyd.Field(default=None, description="", example="1 N")
|
42
|
+
rolling_load_10000_pass: ForceNStr | None = pyd.Field(default=None, description="", example="1 N")
|
43
|
+
|
44
|
+
_access_flooring_rolling_load_10_pass_is_quantity_validator = pyd.validator(
|
45
|
+
"rolling_load_10_pass", allow_reuse=True
|
46
|
+
)(validate_quantity_unit_factory("N"))
|
47
|
+
_access_flooring_rolling_load_10000_pass_is_quantity_validator = pyd.validator(
|
48
|
+
"rolling_load_10000_pass", allow_reuse=True
|
49
|
+
)(validate_quantity_unit_factory("N"))
|
@@ -1,5 +1,5 @@
|
|
1
1
|
openepd/__init__.py,sha256=fhxfEyEurLvSfvQci-vb3njzl_lvhcLXiZrecCOaMU8,794
|
2
|
-
openepd/__version__.py,sha256=
|
2
|
+
openepd/__version__.py,sha256=Nax6JWlEOZo8C77Zc0b6oQhFqjhMuCqe9NH96tOeN-M,639
|
3
3
|
openepd/api/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
4
4
|
openepd/api/average_dataset/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
5
5
|
openepd/api/average_dataset/generic_estimate_sync_api.py,sha256=_eZt_jGVL1a3p9cr-EF39Ve9Vl5sB8zwzTc_slnRL50,7975
|
@@ -54,7 +54,7 @@ openepd/model/specs/asphalt.py,sha256=eHhcITbBrNYR5N6x4Q2BxpsR64BR9OkjJ4bvPRYOqM
|
|
54
54
|
openepd/model/specs/base.py,sha256=10IDyRFKQgFnyIPSqpeayP8Og1BDgs1EepXX5dyCMM4,2674
|
55
55
|
openepd/model/specs/concrete.py,sha256=D9jbhZDtTXNBoAgljQBPxsmGsMvLSIAP5H53ZYiXcGI,5336
|
56
56
|
openepd/model/specs/enums.py,sha256=tX26ZSV1yWPSJMjmo_JRQI2_wJhXJ8XD4nJjRB26rpw,63049
|
57
|
-
openepd/model/specs/range/__init__.py,sha256=
|
57
|
+
openepd/model/specs/range/__init__.py,sha256=nV5ODdlIF2o0JZzIkgmzjo5_B3GNqKYEL_FWjyFvM8Y,4536
|
58
58
|
openepd/model/specs/range/accessories.py,sha256=hZYz8mvAqrfLFiOIZ9qQZ59zmEiu0xE61Ko9cQ7NSKU,2498
|
59
59
|
openepd/model/specs/range/aggregates.py,sha256=udVbsYc1Lyrd6a4YZBGNDQ3sBi-L3WLub_e1ecq7U-Q,2549
|
60
60
|
openepd/model/specs/range/aluminium.py,sha256=Z3laZKXoPtfmOLLr4c4uf7Z-8TNmfz51X-_yd7GQIj8,2745
|
@@ -68,16 +68,18 @@ openepd/model/specs/range/conveying_equipment.py,sha256=_rqJ9Y3kkP8E6-vkZb6Pih3J
|
|
68
68
|
openepd/model/specs/range/electrical.py,sha256=EI8pv9SN4lJbFNz1wlyMNAjkA0dsi84pc2J9YvtiwzY,11860
|
69
69
|
openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py,sha256=xDdyLj6oJRmdybq7W91MtgE80FDpaG6ii5hE921aRGQ,2525
|
70
70
|
openepd/model/specs/range/electricity.py,sha256=yn_S25C_tZqseb8hiJ1yiHszu2mQ49FOFWWCqNpOBY0,997
|
71
|
-
openepd/model/specs/range/exterior_improvements.py,sha256=
|
72
|
-
openepd/model/specs/range/finishes.py,sha256=
|
71
|
+
openepd/model/specs/range/exterior_improvements.py,sha256=dcgX9Tv4U_Zki9nGcy6ykvyesDYAtS_CuD-7nf17kMQ,1736
|
72
|
+
openepd/model/specs/range/finishes.py,sha256=hAqnEzfSPeLS_Wq_ZiIn_k8OdivCvSCgxHAcNldqdXs,19787
|
73
73
|
openepd/model/specs/range/fire_and_smoke_protection.py,sha256=GUap2Xrn-rFF8CMDyRcOpmQpO8JgZ7PSUXGr_SKUzws,3337
|
74
74
|
openepd/model/specs/range/furnishings.py,sha256=_HdPg1_LepLgdo5tV59oRer1PRYniIM0kLEKbnlyoLM,6703
|
75
75
|
openepd/model/specs/range/grouting.py,sha256=BQPxH6BvlXpdhLEZBui9zTuY93K_9syjoa6rdnF8GGY,1095
|
76
|
-
openepd/model/specs/range/manufacturing_inputs.py,sha256=
|
76
|
+
openepd/model/specs/range/manufacturing_inputs.py,sha256=9KiSZC7uR2nF9pi4UjZ7XfGVhrsix_mU4HlJwj_MSVI,5986
|
77
77
|
openepd/model/specs/range/masonry.py,sha256=P9USz744YQLBEk_XdG4v9a4ImXtMymnPC30qtbd2F6I,2867
|
78
78
|
openepd/model/specs/range/material_handling.py,sha256=9jxRHpjMKu71B5omH55UjkNVJvaTLgTMtEidSKPFn5c,1483
|
79
79
|
openepd/model/specs/range/mechanical.py,sha256=kyAJj9KJ17usuKDOt7v2gAJpzSEeYO9nnTOB_pht-fc,10267
|
80
80
|
openepd/model/specs/range/mechanical_insulation.py,sha256=S2-NkFVkjLmn_dk3gsG8C2YcV0SFXbOCgY6LKberqh8,1737
|
81
|
+
openepd/model/specs/range/mixins/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
82
|
+
openepd/model/specs/range/mixins/access_flooring_mixin.py,sha256=JEcvlmKv3R5dVIM4X4ILH43WlMwF6FnZ4-_s2qU-MIM,2382
|
81
83
|
openepd/model/specs/range/network_infrastructure.py,sha256=aqXEIGqFy0gNCM_ftd3J6aT3FZf9JlT0SBOImhdkTg0,8498
|
82
84
|
openepd/model/specs/range/openings.py,sha256=4n5PEMJJFL75wMmYUcJNxdWtDMpWYZLKK4d-730KASA,15451
|
83
85
|
openepd/model/specs/range/other_electrical_equipment.py,sha256=H4tZHcHyR2uUYHn-bQfLC6hR4tynVp_7EJbiI-YpK7Y,1001
|
@@ -109,16 +111,17 @@ openepd/model/specs/singular/electrical.py,sha256=BiaPpZBGBzUt5wVacd1tOIZ9dRn9ZA
|
|
109
111
|
openepd/model/specs/singular/electrical_transmission_and_distribution_equipment.py,sha256=oZYyHgnXn9RH3YzltUEDiiQKrin2mvMlTgC3OhxV7DY,1978
|
110
112
|
openepd/model/specs/singular/electricity.py,sha256=f1cJ9eklNUf97khCIZiT5-z8V_TbOcvH2me_1UTQVrE,823
|
111
113
|
openepd/model/specs/singular/exterior_improvements.py,sha256=tf9lHxb5Mj9Sf3WGjR1wq-mKcyqlvvVKpZG2W6cLcxo,1711
|
112
|
-
openepd/model/specs/singular/finishes.py,sha256=
|
114
|
+
openepd/model/specs/singular/finishes.py,sha256=vAN6p9eA8ysdrJ0gAD7xteuKpURmGTruVskXh17N8-E,20631
|
113
115
|
openepd/model/specs/singular/fire_and_smoke_protection.py,sha256=1uyEGdMAsboYORHvSFN1wftRVAps_UJ1Ep3Dk9arT3s,3058
|
114
116
|
openepd/model/specs/singular/furnishings.py,sha256=4bReWm8FSWHRyq6vmjPm7ZixFIau7J8JF1gtZq6_jVA,5732
|
115
117
|
openepd/model/specs/singular/grouting.py,sha256=pg2tX3W7a2TQ3z_eyFYGlBJY3WEwn6JlZyqM3PQIJcU,934
|
116
|
-
openepd/model/specs/singular/manufacturing_inputs.py,sha256=
|
118
|
+
openepd/model/specs/singular/manufacturing_inputs.py,sha256=pUnd7oo20w8h1C0Jo-t1m2uayOYtlXJyuV26gVfkhlU,5488
|
117
119
|
openepd/model/specs/singular/masonry.py,sha256=f6nph-gscAmVeJ60bG-ebto5kz0fgh0LY27n0VutGFA,3165
|
118
120
|
openepd/model/specs/singular/material_handling.py,sha256=iEeUx1hNKla669y0zl-QAJn6xA7ceq75aRG8qT0p56Q,1274
|
119
121
|
openepd/model/specs/singular/mechanical.py,sha256=VvW9PQ3VI8GCaqu5MKUmxjmcaHkKDAHAIhLyK-DVlUw,9862
|
120
122
|
openepd/model/specs/singular/mechanical_insulation.py,sha256=h-Ir-jiLF-cpiHap4wx5G4fpvsRRKzqcGVXb5U5aqvQ,1607
|
121
123
|
openepd/model/specs/singular/mixins/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
124
|
+
openepd/model/specs/singular/mixins/access_flooring_mixin.py,sha256=z_e5TYK2dtRMz--GrWQDkyyDEM0DmERZZO9V-EzAs1o,2915
|
122
125
|
openepd/model/specs/singular/mixins/conduit_mixin.py,sha256=tj6p-MF84rg4LGxXPC65uMvmn6NlxmATuloe4TcuQdk,1928
|
123
126
|
openepd/model/specs/singular/network_infrastructure.py,sha256=eB3p1zu1u15Ly5iuyyJ4xl3Z1GuBCRVU18Wpz8FWZrg,8521
|
124
127
|
openepd/model/specs/singular/openings.py,sha256=UbdojHW3yxV9DdWECgyANKicdH5czz6pyFPKpzzLxmw,18941
|
@@ -141,7 +144,7 @@ openepd/model/validation/quantity.py,sha256=mP4gIkeOGZuHRhprsf_BX11Cic75NssYxOTk
|
|
141
144
|
openepd/model/versioning.py,sha256=wBZdOVL3ND9FMIRU9PS3vx9M_7MBiO70xYPQvPez6po,4522
|
142
145
|
openepd/patch_pydantic.py,sha256=bO7U5HqthFol0vfycb0a42UAGL3KOQ8-9MW4yCWOFP0,4150
|
143
146
|
openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
144
|
-
openepd-6.
|
145
|
-
openepd-6.
|
146
|
-
openepd-6.
|
147
|
-
openepd-6.
|
147
|
+
openepd-6.18.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
148
|
+
openepd-6.18.0.dist-info/METADATA,sha256=KbKTmRSBbq8LSANcUMXpAmBMIxjhstZUdafIKBKFXUU,9067
|
149
|
+
openepd-6.18.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
150
|
+
openepd-6.18.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|