openepd 3.2.0__py3-none-any.whl → 3.4.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 CHANGED
@@ -17,4 +17,4 @@
17
17
  # Charles Pankow Foundation, Microsoft Sustainability Fund, Interface, MKA Foundation, and others.
18
18
  # Find out more at www.BuildingTransparency.org
19
19
  #
20
- VERSION = "3.2.0"
20
+ VERSION = "3.4.0"
openepd/model/common.py CHANGED
@@ -153,3 +153,4 @@ class OpenEPDUnit(StrEnum):
153
153
  use = "use"
154
154
  degree_c = "°C"
155
155
  kg_co2 = "kgCO2e"
156
+ hour = "hour"
@@ -20,7 +20,35 @@
20
20
  from openepd.compat.pydantic import pyd
21
21
  from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
22
22
  from openepd.model.specs.generated.enums import ElevatorsBuildingRise, ElevatorsUsageIntensity
23
- from openepd.model.validation.quantity import LengthMStr, MassKgStr, SpeedStr
23
+ from openepd.model.validation.quantity import CapacityPerHourStr, LengthMStr, MassKgStr, SpeedStr
24
+
25
+
26
+ class EscalatorsV1(BaseOpenEpdHierarchicalSpec):
27
+ """
28
+ Escalators category performance specification.
29
+
30
+ A moving staircase consisting of a circulating belt of steps driven by a motor,
31
+ which conveys people between the floors of a building.
32
+ """
33
+
34
+ vertical_rize: LengthMStr | None = pyd.Field(
35
+ default=None,
36
+ description="The vertical distance between the top and bottom landings of an escalator",
37
+ example="1 m",
38
+ )
39
+ speed: SpeedStr | None = pyd.Field(default=None, description="Reference speed of the escalator", example="1 m / s")
40
+ step_width: LengthMStr | None = pyd.Field(default=None, description="Width of the escalator steps", example="1 m")
41
+ max_capacity: CapacityPerHourStr | None = pyd.Field(
42
+ default=None, description="Max capacity of escalator in persons per hour", example="1 hour^-1"
43
+ )
44
+ indoor: bool | None = pyd.Field(
45
+ default=None, description="Escalator can be used for indoor applications", example=True
46
+ )
47
+ outdoor: bool | None = pyd.Field(
48
+ default=None, description="Escalator can be used for outdoor applications", example=True
49
+ )
50
+
51
+ _EXT_VERSION = "1.0"
24
52
 
25
53
 
26
54
  class ElevatorsV1(BaseOpenEpdHierarchicalSpec):
@@ -41,7 +69,8 @@ class ElevatorsV1(BaseOpenEpdHierarchicalSpec):
41
69
  class ConveyingEquipmentV1(BaseOpenEpdHierarchicalSpec):
42
70
  """Conveying Equipment."""
43
71
 
44
- _EXT_VERSION = "1.0"
72
+ _EXT_VERSION = "1.1"
45
73
 
46
74
  # Nested specs:
47
75
  Elevators: ElevatorsV1 | None = None
76
+ Escalators: EscalatorsV1 | None = None
@@ -18,33 +18,170 @@
18
18
  # Find out more at www.BuildingTransparency.org
19
19
  #
20
20
  from openepd.compat.pydantic import pyd
21
- from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
21
+ from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec, BaseOpenEpdSpec
22
22
  from openepd.model.validation.numbers import RatioFloat
23
23
  from openepd.model.validation.quantity import PressureMPaStr
24
24
 
25
25
 
26
+ class StructuralPrecastElementType(BaseOpenEpdSpec):
27
+ """Precast element types for Structural Precast Concrete."""
28
+
29
+ wall: bool | None = pyd.Field(
30
+ description="Precast solid wall elements, including thin shell",
31
+ example=True,
32
+ default=None,
33
+ )
34
+ solid_slab: bool | None = pyd.Field(
35
+ description="Precast slabs used for floor or roof applications",
36
+ example=True,
37
+ default=None,
38
+ )
39
+ hollowcore: bool | None = pyd.Field(
40
+ description="Precast slabs with tubular voids, typically used flooring applications",
41
+ example=True,
42
+ default=None,
43
+ )
44
+ beam: bool | None = pyd.Field(
45
+ description="Precast structural beams for carrying or transferring loads; includes girders",
46
+ example=True,
47
+ default=None,
48
+ )
49
+ column: bool | None = pyd.Field(
50
+ description="Precast structural columns for carrying or transferring loads",
51
+ example=True,
52
+ default=None,
53
+ )
54
+ stairs: bool | None = pyd.Field(
55
+ description="Staircases made of precast concrete components",
56
+ example=True,
57
+ default=None,
58
+ )
59
+ balcony: bool | None = pyd.Field(
60
+ description="Balcony slabs made from precast concrete",
61
+ example=True,
62
+ default=None,
63
+ )
64
+ pile: bool | None = pyd.Field(
65
+ description="Precast concrete structural foundation elements used to support offshore structures such as bridges, oil rigs, and floating airports",
66
+ example=True,
67
+ default=None,
68
+ )
69
+
70
+
71
+ class UtilityPrecastElementType(BaseOpenEpdSpec):
72
+ """Precast element types for Utility Underground Precast Concrete."""
73
+
74
+ manhole: bool | None = pyd.Field(
75
+ description="Precast barrel-shaped chambers used for wastewater management and access management",
76
+ example=True,
77
+ default=None,
78
+ )
79
+ retaining_wall: bool | None = pyd.Field(
80
+ description="Precast concrete structures for retaining soil",
81
+ example=True,
82
+ default=None,
83
+ )
84
+ box_culvert: bool | None = pyd.Field(
85
+ description="A precast concrete structure commonly used to channel water, primarily as part of a drainage system",
86
+ example=True,
87
+ default=None,
88
+ )
89
+
90
+
91
+ class ArchitecturalPrecastElementType(BaseOpenEpdSpec):
92
+ """Precast element types for Architectural Precast Concrete."""
93
+
94
+ wall: bool | None = pyd.Field(
95
+ description="Precast solid wall elements, including thin shell",
96
+ example=True,
97
+ default=None,
98
+ )
99
+
100
+
101
+ class CivilPrecastElementType(BaseOpenEpdSpec):
102
+ """Precast element types for Civil Precast Concrete."""
103
+
104
+ beam: bool | None = pyd.Field(
105
+ description="Precast structural beams for carrying or transferring loads; includes girders",
106
+ example=True,
107
+ default=None,
108
+ )
109
+ manhole: bool | None = pyd.Field(
110
+ description="Precast barrel-shaped chambers used for wastewater management and access management",
111
+ example=True,
112
+ default=None,
113
+ )
114
+ retaining_wall: bool | None = pyd.Field(
115
+ description="Precast concrete structures for retaining soil",
116
+ example=True,
117
+ default=None,
118
+ )
119
+ rail_sleeper: bool | None = pyd.Field(
120
+ description="Rectangular supports for the rails on railroad tracks, which transfer loads to the track ballast and subgrade and keep the rails spaced to the correct gauge. Also called railroad ties",
121
+ example=True,
122
+ default=None,
123
+ )
124
+ box_culvert: bool | None = pyd.Field(
125
+ description="A precast concrete structure commonly used to channel water, primarily as part of a drainage system",
126
+ example=True,
127
+ default=None,
128
+ )
129
+ pile: bool | None = pyd.Field(
130
+ description="Precast concrete structural foundation elements used to support offshore structures such as bridges, oil rigs, and floating airports",
131
+ example=True,
132
+ default=None,
133
+ )
134
+ road_barriers: bool | None = pyd.Field(
135
+ description="Precast Vehicle and Traffic Barriers",
136
+ example=True,
137
+ default=None,
138
+ )
139
+
140
+
26
141
  class ArchitecturalPrecastV1(BaseOpenEpdHierarchicalSpec):
27
142
  """Precast concrete cladding used for architectural purposes."""
28
143
 
29
- _EXT_VERSION = "1.0"
144
+ _EXT_VERSION = "1.1"
145
+
146
+ element_type: ArchitecturalPrecastElementType | None = pyd.Field(
147
+ default=None, description="Precast element type used for architectural applications."
148
+ )
30
149
 
31
150
 
32
151
  class StructuralPrecastV1(BaseOpenEpdHierarchicalSpec):
33
152
  """Precast concrete used for structural purposes."""
34
153
 
35
- _EXT_VERSION = "1.0"
154
+ _EXT_VERSION = "1.1"
155
+
156
+ element_type: StructuralPrecastElementType | None = pyd.Field(
157
+ default=None, description="Precast element type used for structural applications."
158
+ )
36
159
 
37
160
 
38
161
  class UtilityUndergroundPrecastV1(BaseOpenEpdHierarchicalSpec):
39
162
  """Precast concrete for utility vaults, manhole, drain inlets. Excludes piping."""
40
163
 
164
+ _EXT_VERSION = "1.1"
165
+
166
+ element_type: UtilityPrecastElementType | None = pyd.Field(
167
+ default=None, description="Precast element type used for utility underground applications."
168
+ )
169
+
170
+
171
+ class CivilPrecastV1(BaseOpenEpdHierarchicalSpec):
172
+ """Precast concrete used for civil engineering applications including bridges, highways, and railroads."""
173
+
41
174
  _EXT_VERSION = "1.0"
42
175
 
176
+ element_type: CivilPrecastElementType | None = pyd.Field(
177
+ default=None, description="Precast element type used as civil engineering components."
178
+ )
179
+
43
180
 
44
181
  class PrecastConcreteV1(BaseOpenEpdHierarchicalSpec):
45
182
  """General category for precast concrete components."""
46
183
 
47
- _EXT_VERSION = "1.0"
184
+ _EXT_VERSION = "1.1"
48
185
 
49
186
  # Own fields:
50
187
  lightweight: bool | None = pyd.Field(default=None, description="", example=True)
@@ -62,3 +199,4 @@ class PrecastConcreteV1(BaseOpenEpdHierarchicalSpec):
62
199
  ArchitecturalPrecast: ArchitecturalPrecastV1 | None = None
63
200
  StructuralPrecast: StructuralPrecastV1 | None = None
64
201
  UtilityUndergroundPrecast: UtilityUndergroundPrecastV1 | None = None
202
+ CivilPrecast: CivilPrecastV1 | None = None
@@ -214,6 +214,12 @@ class GwpKgCo2eStr(QuantityStr):
214
214
  unit = OpenEPDUnit.kg_co2
215
215
 
216
216
 
217
+ class CapacityPerHourStr(QuantityStr):
218
+ """Capacity per-hour quantity type."""
219
+
220
+ unit = f"{OpenEPDUnit.hour}^-1"
221
+
222
+
217
223
  class RValueStr(QuantityStr):
218
224
  """R-Value quantity type."""
219
225
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openepd
3
- Version: 3.2.0
3
+ Version: 3.4.0
4
4
  Summary: Python library to work with OpenEPD format
5
5
  Home-page: https://github.com/cchangelabs/openepd
6
6
  License: Apache-2.0
@@ -1,5 +1,5 @@
1
1
  openepd/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
2
- openepd/__version__.py,sha256=60RZ9xOqxI0Z0PoViRzW8dOgDi0Nz5AACe5l18DyKjk,855
2
+ openepd/__version__.py,sha256=KzuDKx4gbFjfoTKlUbpn3_0N9TagCAlD-dfZJOwpuJU,855
3
3
  openepd/api/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
4
4
  openepd/api/base_sync_client.py,sha256=JcNpWsGoIK_1Eg27CAQd7nIjbcfD56jQ1nS6B48Q0cI,21142
5
5
  openepd/api/category/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
@@ -32,7 +32,7 @@ openepd/compat/pydantic.py,sha256=fk-6umbMBbKvNDCwsF1AA4Z63C7dYamt5U5A_bFLAXc,13
32
32
  openepd/model/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
33
33
  openepd/model/base.py,sha256=Yerebn3KP8-CdeeKOuQ1h16qkZnNGn7yvZNiAWutpsI,9154
34
34
  openepd/model/category.py,sha256=NhQzKYi02DcdDy83qI_WZuGfYAUcZgsEPEXRa0nGqxs,1856
35
- openepd/model/common.py,sha256=Uuc-Rbo89Xw89YWbiMtqggvWeFptbgNw6KWdZI8f7wg,5659
35
+ openepd/model/common.py,sha256=J3BehX54r5zS3GBriNAA4VhywvUvdsSgsfERSWuKQoI,5677
36
36
  openepd/model/epd.py,sha256=WWWZU1c7HWkZZqkhUNMjyaHJYThboN6ZjmZ2L4UNM6I,14299
37
37
  openepd/model/factory.py,sha256=qQZNb4yFN1EQWHHVS-fHnJ2gB-vsKz9hVmXXJE7YaRU,1918
38
38
  openepd/model/lcia.py,sha256=MTNbNoTiZn_11XIx9m5D_iyTr0mnfIJYAyfnc1CHaSY,17165
@@ -54,7 +54,7 @@ openepd/model/specs/generated/cladding.py,sha256=LZoS5FHkaCPRJ6B2Tx7ej_tMjmrEvJ_
54
54
  openepd/model/specs/generated/cmu.py,sha256=K4WvXVBVwz4VItow_1nb3EOFUlg7Fj_AB7Vbka5D9DI,2011
55
55
  openepd/model/specs/generated/common.py,sha256=n_wuE-VtNFytpE-uLZrSXeeIIoNl2lSutPodiGKH94E,1117
56
56
  openepd/model/specs/generated/concrete.py,sha256=EPyT87aid75q9WGxmOX8k4ik4I9SfoL_fbvhYHsfbEo,7204
57
- openepd/model/specs/generated/conveying_equipment.py,sha256=RqtQz-TgB9zx3Oz8Cx3S4S8UEtuRAvB1joiQJ5kWqPo,2034
57
+ openepd/model/specs/generated/conveying_equipment.py,sha256=wdS4Ln7LPAMy_hX4fXoSuv0eQtd2gO47PvLODNnhlmc,3269
58
58
  openepd/model/specs/generated/electrical.py,sha256=sDmi_uHGt6WuP0Alno6HVwSVQiOVLYLQUvfqXwCP7sk,10972
59
59
  openepd/model/specs/generated/electrical_transmission_and_distribution_equipment.py,sha256=EQDSVWsy5OGTUpDnZtKG6f6ATNFMWEHd3QtxF-K9XHc,2195
60
60
  openepd/model/specs/generated/electricity.py,sha256=A25htITXhTYhisXgwUS4zdDlKYaMXWgRbYTeOlGE4O4,1040
@@ -73,7 +73,7 @@ openepd/model/specs/generated/openings.py,sha256=QVPbHP3yMHBPFrAo_fk6CYcJ3OltlMI
73
73
  openepd/model/specs/generated/other_electrical_equipment.py,sha256=E-SkM07IfdZ_CHMcDsDF5PQpnsimTodMBFRS2yt_GAo,1031
74
74
  openepd/model/specs/generated/other_materials.py,sha256=ACMMvECjnkQka4HGm6A9tSWTjkROml7kOog7SwtcrQw,3715
75
75
  openepd/model/specs/generated/plumbing.py,sha256=DHgRLbNWO7se97YfY8y6Zol4acjokFJeb-gNGC1Ufmk,4795
76
- openepd/model/specs/generated/precast_concrete.py,sha256=TfYEfpder5Pay68UO9ydPuszm4Tgs4wAqsUr-p19OD4,2529
76
+ openepd/model/specs/generated/precast_concrete.py,sha256=W6eNlkvVslTs6TG3RzQlrJXlpnFS_9hsw-i8n6QxwUU,7544
77
77
  openepd/model/specs/generated/sheathing.py,sha256=bB3nzuLKHNO1S0yAFNIVjncVAwbDT2pVfkfcyJojtqI,3853
78
78
  openepd/model/specs/generated/steel.py,sha256=rDrAxzqbb0LsvVPUS1-mXhoTu-SmgleXBRx0kh_J5Tw,10118
79
79
  openepd/model/specs/generated/thermal_moisture_protection.py,sha256=tX_fuj4fNoaxox6pZQRhiIygJzmtM6_atdpktSYnxyE,8422
@@ -84,10 +84,10 @@ openepd/model/standard.py,sha256=8F70DCagplBe7IvkGJOUmt7td-uh_8zzdpvuVpjk0GY,153
84
84
  openepd/model/validation/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
85
85
  openepd/model/validation/common.py,sha256=TPxIUtTNqNLiDsvuSE_dVREtNBe6XsagVMH4u1MYfpA,2652
86
86
  openepd/model/validation/numbers.py,sha256=4gkMS35zKnGyfdFyLTgHncNmKpg8-WOYX9qaUr5scE4,1105
87
- openepd/model/validation/quantity.py,sha256=1RR482ARLOMLiprXbKrw0VhVv_Eye9JGKud4j_pVatM,7402
87
+ openepd/model/validation/quantity.py,sha256=cmOLg_DCKuzusbF--7AAC_GGhRZ9u2R-4eww3PZVb6I,7523
88
88
  openepd/model/versioning.py,sha256=1gqeeAhc2lVonq9ErOD3Ws7XZ0CgZnmlFpKHKrc9IwI,4690
89
89
  openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
- openepd-3.2.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
91
- openepd-3.2.0.dist-info/METADATA,sha256=DOcxVWluso70H3139uazDlNnWHLQETy5W3mt759SHCU,7790
92
- openepd-3.2.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
93
- openepd-3.2.0.dist-info/RECORD,,
90
+ openepd-3.4.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
91
+ openepd-3.4.0.dist-info/METADATA,sha256=dnB34TXOEn6xl8haOJ46fXpNQ2HhlWkqYGxZsz4iRN0,7790
92
+ openepd-3.4.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
93
+ openepd-3.4.0.dist-info/RECORD,,