openepd 6.7.1__tar.gz → 6.9.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.
Files changed (142) hide show
  1. {openepd-6.7.1 → openepd-6.9.0}/PKG-INFO +1 -1
  2. {openepd-6.7.1 → openepd-6.9.0}/pyproject.toml +1 -1
  3. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/__version__.py +1 -1
  4. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/base.py +1 -1
  5. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/epd.py +7 -2
  6. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/asphalt.py +4 -1
  7. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/enums.py +2 -0
  8. {openepd-6.7.1 → openepd-6.9.0}/LICENSE +0 -0
  9. {openepd-6.7.1 → openepd-6.9.0}/README.md +0 -0
  10. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/__init__.py +0 -0
  11. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/__init__.py +0 -0
  12. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/average_dataset/__init__.py +0 -0
  13. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/average_dataset/generic_estimate_sync_api.py +0 -0
  14. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/average_dataset/industry_epd_sync_api.py +0 -0
  15. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/base_sync_client.py +0 -0
  16. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/category/__init__.py +0 -0
  17. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/category/dto.py +0 -0
  18. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/category/sync_api.py +0 -0
  19. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/common.py +0 -0
  20. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/dto/__init__.py +0 -0
  21. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/dto/base.py +0 -0
  22. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/dto/common.py +0 -0
  23. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/dto/meta.py +0 -0
  24. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/dto/mf.py +0 -0
  25. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/dto/params.py +0 -0
  26. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/epd/__init__.py +0 -0
  27. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/epd/dto.py +0 -0
  28. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/epd/sync_api.py +0 -0
  29. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/errors.py +0 -0
  30. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/pcr/__init__.py +0 -0
  31. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/pcr/sync_api.py +0 -0
  32. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/sync_client.py +0 -0
  33. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/test/__init__.py +0 -0
  34. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/api/utils.py +0 -0
  35. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/bundle/__init__.py +0 -0
  36. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/bundle/base.py +0 -0
  37. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/bundle/model.py +0 -0
  38. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/bundle/reader.py +0 -0
  39. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/bundle/writer.py +0 -0
  40. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/compat/__init__.py +0 -0
  41. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/compat/compat_functional_validators.py +0 -0
  42. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/compat/pydantic.py +0 -0
  43. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/__init__.py +0 -0
  44. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/category.py +0 -0
  45. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/common.py +0 -0
  46. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/declaration.py +0 -0
  47. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/factory.py +0 -0
  48. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/generic_estimate.py +0 -0
  49. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/geography.py +0 -0
  50. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/industry_epd.py +0 -0
  51. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/lcia.py +0 -0
  52. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/org.py +0 -0
  53. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/pcr.py +0 -0
  54. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/README.md +0 -0
  55. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/__init__.py +0 -0
  56. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/base.py +0 -0
  57. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/concrete.py +0 -0
  58. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/__init__.py +0 -0
  59. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/accessories.py +0 -0
  60. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/aggregates.py +0 -0
  61. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/aluminium.py +0 -0
  62. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/asphalt.py +0 -0
  63. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/bulk_materials.py +0 -0
  64. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/cast_decks_and_underlayment.py +0 -0
  65. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/cladding.py +0 -0
  66. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/cmu.py +0 -0
  67. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/concrete.py +0 -0
  68. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/conveying_equipment.py +0 -0
  69. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/electrical.py +0 -0
  70. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py +0 -0
  71. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/electricity.py +0 -0
  72. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/finishes.py +0 -0
  73. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/fire_and_smoke_protection.py +0 -0
  74. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/furnishings.py +0 -0
  75. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/grouting.py +0 -0
  76. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/manufacturing_inputs.py +0 -0
  77. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/masonry.py +0 -0
  78. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/material_handling.py +0 -0
  79. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/mechanical.py +0 -0
  80. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/mechanical_insulation.py +0 -0
  81. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/network_infrastructure.py +0 -0
  82. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/openings.py +0 -0
  83. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/other_electrical_equipment.py +0 -0
  84. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/other_materials.py +0 -0
  85. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/plumbing.py +0 -0
  86. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/precast_concrete.py +0 -0
  87. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/sheathing.py +0 -0
  88. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/steel.py +0 -0
  89. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/thermal_moisture_protection.py +0 -0
  90. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/utility_piping.py +0 -0
  91. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/wood.py +0 -0
  92. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/range/wood_joists.py +0 -0
  93. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/__init__.py +0 -0
  94. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/accessories.py +0 -0
  95. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/aggregates.py +0 -0
  96. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/aluminium.py +0 -0
  97. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/asphalt.py +0 -0
  98. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/bulk_materials.py +0 -0
  99. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/cast_decks_and_underlayment.py +0 -0
  100. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/cladding.py +0 -0
  101. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/cmu.py +0 -0
  102. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/common.py +0 -0
  103. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/concrete.py +0 -0
  104. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/conveying_equipment.py +0 -0
  105. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/deprecated/__init__.py +0 -0
  106. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/deprecated/concrete.py +0 -0
  107. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/deprecated/steel.py +0 -0
  108. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/electrical.py +0 -0
  109. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/electrical_transmission_and_distribution_equipment.py +0 -0
  110. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/electricity.py +0 -0
  111. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/finishes.py +0 -0
  112. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/fire_and_smoke_protection.py +0 -0
  113. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/furnishings.py +0 -0
  114. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/grouting.py +0 -0
  115. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/manufacturing_inputs.py +0 -0
  116. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/masonry.py +0 -0
  117. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/material_handling.py +0 -0
  118. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/mechanical.py +0 -0
  119. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/mechanical_insulation.py +0 -0
  120. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/mixins/__init__.py +0 -0
  121. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/mixins/conduit_mixin.py +0 -0
  122. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/network_infrastructure.py +0 -0
  123. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/openings.py +0 -0
  124. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/other_electrical_equipment.py +0 -0
  125. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/other_materials.py +0 -0
  126. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/plumbing.py +0 -0
  127. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/precast_concrete.py +0 -0
  128. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/sheathing.py +0 -0
  129. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/steel.py +0 -0
  130. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/thermal_moisture_protection.py +0 -0
  131. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/utility_piping.py +0 -0
  132. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/wood.py +0 -0
  133. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/specs/singular/wood_joists.py +0 -0
  134. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/standard.py +0 -0
  135. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/validation/__init__.py +0 -0
  136. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/validation/common.py +0 -0
  137. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/validation/enum.py +0 -0
  138. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/validation/numbers.py +0 -0
  139. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/validation/quantity.py +0 -0
  140. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/model/versioning.py +0 -0
  141. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/patch_pydantic.py +0 -0
  142. {openepd-6.7.1 → openepd-6.9.0}/src/openepd/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openepd
3
- Version: 6.7.1
3
+ Version: 6.9.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,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "openepd"
3
- version = "6.7.1"
3
+ version = "6.9.0"
4
4
  license = "Apache-2.0"
5
5
  description = "Python library to work with OpenEPD format"
6
6
  authors = ["C-Change Labs <support@c-change-labs.com>"]
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- VERSION = "6.7.1"
16
+ VERSION = "6.9.0"
@@ -18,7 +18,7 @@ from enum import StrEnum
18
18
  import json
19
19
  from typing import Any, Callable, ClassVar, Generic, Optional, Type, TypeAlias, TypeVar
20
20
 
21
- from cqd import open_xpd_uuid # type:ignore[import-untyped]
21
+ from cqd import open_xpd_uuid # type:ignore[import-untyped,ignore-not-found]
22
22
 
23
23
  from openepd.compat.pydantic import pyd, pyd_generics
24
24
  from openepd.model.validation.common import validate_version_compatibility, validate_version_format
@@ -15,7 +15,7 @@
15
15
  #
16
16
 
17
17
  from openepd.compat.pydantic import pyd
18
- from openepd.model.base import BaseDocumentFactory, BaseOpenEpdSchema, OpenEpdDoctypes
18
+ from openepd.model.base import BaseDocumentFactory, OpenEpdDoctypes, OpenEpdExtension
19
19
  from openepd.model.common import Ingredient, WithAltIdsMixin, WithAttachmentsMixin
20
20
  from openepd.model.declaration import (
21
21
  DEVELOPER_DESCRIPTION,
@@ -61,13 +61,18 @@ PLANT_DESCRIPTION = "List of object(s) for one or more plant(s) that this declar
61
61
  #
62
62
 
63
63
 
64
- class Ec3EpdExtension(BaseOpenEpdSchema):
64
+ class Ec3EpdExtension(OpenEpdExtension):
65
65
  """Extension for EC3 specific fields on openEPD."""
66
66
 
67
67
  # While the extensions should be stored under the 'ext' key - extension point of the BaseOpenepdModel - the EC3
68
68
  # extension was started before the introduction of extension management, and so is located at the root of the EPD
69
69
  # object.
70
70
 
71
+ @classmethod
72
+ def get_extension_name(cls) -> str:
73
+ """Return the name of the extension."""
74
+ return "ec3"
75
+
71
76
  uaGWP_a1a2a3_traci21: float | None = pyd.Field(
72
77
  default=None,
73
78
  description="""The A1A2A3 uncertainty-adjusted GWP, in kgCO2e per declared unit, calculated for the TRACI 2.1
@@ -35,12 +35,15 @@ class AsphaltGradation(StrEnum):
35
35
  Dense_graded = "Dense-graded"
36
36
  Open_graded = "Open-graded"
37
37
  Gap_graded = "Gap-graded"
38
+ Permeable = "Permeable"
39
+ Porous = "Porous"
40
+ Other = "Other"
38
41
 
39
42
 
40
43
  class AsphaltV1(BaseOpenEpdHierarchicalSpec):
41
44
  """Asphalt spec."""
42
45
 
43
- _EXT_VERSION = "1.0"
46
+ _EXT_VERSION = "1.1"
44
47
 
45
48
  asphalt_aggregate_size_max: LengthMmStr | None = pyd.Field(
46
49
  default=None, example="5mm", description="Max aggregate size"
@@ -1479,11 +1479,13 @@ class AsphaltMixType(StrEnum):
1479
1479
 
1480
1480
  - WMA: WMA
1481
1481
  - HMA: HMA
1482
+ - CCPR: CCPR
1482
1483
 
1483
1484
  """
1484
1485
 
1485
1486
  WMA = "WMA"
1486
1487
  HMA = "HMA"
1488
+ CCPR = "CCPR"
1487
1489
 
1488
1490
 
1489
1491
  class EngineeredTimberSpecies(StrEnum):
File without changes
File without changes
File without changes
File without changes