openepd 3.3.0__py3-none-any.whl → 3.4.1__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.3.0"
20
+ VERSION = "3.4.1"
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_rise: 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.1"
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
@@ -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.3.0
3
+ Version: 3.4.1
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=-Ng8pcaeBzfupdGm3pQHDa3op6P6Hhxrg-1GsHC6NRQ,855
2
+ openepd/__version__.py,sha256=DdUhENE_Rj2ainzzn04RUz_vT4uQb2nyRUQl8dSVwRs,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=Bs4UrpTnIItowUNactvHDvf4L2NS8PYzcjNps_J8Ueg,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
@@ -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.3.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
91
- openepd-3.3.0.dist-info/METADATA,sha256=7TSRRw-SeFOp8ro-YhlZx04GZeqTLrhFuc9PqqhWQ_4,7790
92
- openepd-3.3.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
93
- openepd-3.3.0.dist-info/RECORD,,
90
+ openepd-3.4.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
91
+ openepd-3.4.1.dist-info/METADATA,sha256=3zZ30_PTYo32JEOPqEHEOqnXug-fjH4vhXz2pzeSGOQ,7790
92
+ openepd-3.4.1.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
93
+ openepd-3.4.1.dist-info/RECORD,,