openepd 6.13.1__tar.gz → 6.14.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 (146) hide show
  1. {openepd-6.13.1 → openepd-6.14.0}/PKG-INFO +3 -1
  2. {openepd-6.13.1 → openepd-6.14.0}/pyproject.toml +1 -1
  3. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/__version__.py +1 -1
  4. openepd-6.14.0/src/openepd/m49/__init__.py +17 -0
  5. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/m49/const.py +5 -2
  6. openepd-6.13.1/src/openepd/m49/geo_converter.py → openepd-6.14.0/src/openepd/m49/utils.py +24 -2
  7. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/lcia.py +23 -0
  8. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/furnishings.py +15 -15
  9. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/furnishings.py +10 -10
  10. openepd-6.13.1/src/openepd/model/validation/__init__.py +0 -15
  11. {openepd-6.13.1 → openepd-6.14.0}/LICENSE +0 -0
  12. {openepd-6.13.1 → openepd-6.14.0}/README.md +0 -0
  13. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/__init__.py +0 -0
  14. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/__init__.py +0 -0
  15. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/average_dataset/__init__.py +0 -0
  16. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/average_dataset/generic_estimate_sync_api.py +0 -0
  17. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/average_dataset/industry_epd_sync_api.py +0 -0
  18. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/base_sync_client.py +0 -0
  19. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/category/__init__.py +0 -0
  20. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/category/dto.py +0 -0
  21. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/category/sync_api.py +0 -0
  22. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/common.py +0 -0
  23. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/dto/__init__.py +0 -0
  24. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/dto/base.py +0 -0
  25. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/dto/common.py +0 -0
  26. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/dto/meta.py +0 -0
  27. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/dto/mf.py +0 -0
  28. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/dto/params.py +0 -0
  29. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/epd/__init__.py +0 -0
  30. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/epd/dto.py +0 -0
  31. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/epd/sync_api.py +0 -0
  32. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/errors.py +0 -0
  33. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/pcr/__init__.py +0 -0
  34. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/pcr/sync_api.py +0 -0
  35. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/sync_client.py +0 -0
  36. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/test/__init__.py +0 -0
  37. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/api/utils.py +0 -0
  38. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/bundle/__init__.py +0 -0
  39. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/bundle/base.py +0 -0
  40. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/bundle/model.py +0 -0
  41. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/bundle/reader.py +0 -0
  42. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/bundle/writer.py +0 -0
  43. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/compat/__init__.py +0 -0
  44. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/compat/compat_functional_validators.py +0 -0
  45. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/compat/pydantic.py +0 -0
  46. {openepd-6.13.1/src/openepd/m49 → openepd-6.14.0/src/openepd/model}/__init__.py +0 -0
  47. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/base.py +0 -0
  48. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/category.py +0 -0
  49. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/common.py +0 -0
  50. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/declaration.py +0 -0
  51. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/epd.py +0 -0
  52. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/factory.py +0 -0
  53. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/generic_estimate.py +0 -0
  54. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/geography.py +0 -0
  55. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/industry_epd.py +0 -0
  56. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/org.py +0 -0
  57. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/pcr.py +0 -0
  58. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/README.md +0 -0
  59. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/__init__.py +0 -0
  60. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/asphalt.py +0 -0
  61. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/base.py +0 -0
  62. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/concrete.py +0 -0
  63. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/enums.py +0 -0
  64. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/__init__.py +0 -0
  65. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/accessories.py +0 -0
  66. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/aggregates.py +0 -0
  67. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/aluminium.py +0 -0
  68. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/asphalt.py +0 -0
  69. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/bulk_materials.py +0 -0
  70. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/cast_decks_and_underlayment.py +0 -0
  71. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/cladding.py +0 -0
  72. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/cmu.py +0 -0
  73. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/concrete.py +0 -0
  74. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/conveying_equipment.py +0 -0
  75. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/electrical.py +0 -0
  76. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py +0 -0
  77. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/electricity.py +0 -0
  78. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/finishes.py +0 -0
  79. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/fire_and_smoke_protection.py +0 -0
  80. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/grouting.py +0 -0
  81. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/manufacturing_inputs.py +0 -0
  82. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/masonry.py +0 -0
  83. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/material_handling.py +0 -0
  84. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/mechanical.py +0 -0
  85. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/mechanical_insulation.py +0 -0
  86. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/network_infrastructure.py +0 -0
  87. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/openings.py +0 -0
  88. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/other_electrical_equipment.py +0 -0
  89. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/other_materials.py +0 -0
  90. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/plumbing.py +0 -0
  91. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/precast_concrete.py +0 -0
  92. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/sheathing.py +0 -0
  93. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/steel.py +0 -0
  94. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/thermal_moisture_protection.py +0 -0
  95. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/utility_piping.py +0 -0
  96. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/wood.py +0 -0
  97. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/range/wood_joists.py +0 -0
  98. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/__init__.py +0 -0
  99. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/accessories.py +0 -0
  100. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/aggregates.py +0 -0
  101. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/aluminium.py +0 -0
  102. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/asphalt.py +0 -0
  103. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/bulk_materials.py +0 -0
  104. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/cast_decks_and_underlayment.py +0 -0
  105. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/cladding.py +0 -0
  106. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/cmu.py +0 -0
  107. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/common.py +0 -0
  108. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/concrete.py +0 -0
  109. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/conveying_equipment.py +0 -0
  110. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/deprecated/__init__.py +0 -0
  111. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/deprecated/concrete.py +0 -0
  112. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/deprecated/steel.py +0 -0
  113. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/electrical.py +0 -0
  114. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/electrical_transmission_and_distribution_equipment.py +0 -0
  115. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/electricity.py +0 -0
  116. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/finishes.py +0 -0
  117. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/fire_and_smoke_protection.py +0 -0
  118. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/grouting.py +0 -0
  119. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/manufacturing_inputs.py +0 -0
  120. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/masonry.py +0 -0
  121. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/material_handling.py +0 -0
  122. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/mechanical.py +0 -0
  123. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/mechanical_insulation.py +0 -0
  124. {openepd-6.13.1/src/openepd/model → openepd-6.14.0/src/openepd/model/specs/singular/mixins}/__init__.py +0 -0
  125. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/mixins/conduit_mixin.py +0 -0
  126. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/network_infrastructure.py +0 -0
  127. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/openings.py +0 -0
  128. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/other_electrical_equipment.py +0 -0
  129. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/other_materials.py +0 -0
  130. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/plumbing.py +0 -0
  131. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/precast_concrete.py +0 -0
  132. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/sheathing.py +0 -0
  133. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/steel.py +0 -0
  134. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/thermal_moisture_protection.py +0 -0
  135. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/utility_piping.py +0 -0
  136. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/wood.py +0 -0
  137. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/specs/singular/wood_joists.py +0 -0
  138. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/standard.py +0 -0
  139. {openepd-6.13.1/src/openepd/model/specs/singular/mixins → openepd-6.14.0/src/openepd/model/validation}/__init__.py +0 -0
  140. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/validation/common.py +0 -0
  141. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/validation/enum.py +0 -0
  142. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/validation/numbers.py +0 -0
  143. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/validation/quantity.py +0 -0
  144. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/model/versioning.py +0 -0
  145. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/patch_pydantic.py +0 -0
  146. {openepd-6.13.1 → openepd-6.14.0}/src/openepd/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openepd
3
- Version: 6.13.1
3
+ Version: 6.14.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
@@ -15,6 +15,8 @@ Classifier: License :: OSI Approved :: Apache Software License
15
15
  Classifier: Operating System :: OS Independent
16
16
  Classifier: Programming Language :: Python :: 3
17
17
  Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
18
20
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
21
  Provides-Extra: api-client
20
22
  Requires-Dist: email-validator (>=1.3.1)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "openepd"
3
- version = "6.13.1"
3
+ version = "6.14.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.13.1"
16
+ VERSION = "6.14.0"
@@ -0,0 +1,17 @@
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
+
17
+ from . import utils as geo_converter # for backwards compatibility
@@ -13,8 +13,8 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
-
17
16
  from typing import NamedTuple
17
+ import warnings
18
18
 
19
19
  M49_CODE_WORLD = "001"
20
20
  M49_CODE_AFRICA = "002"
@@ -1169,4 +1169,7 @@ def is_m49_code(to_check: str) -> bool:
1169
1169
  :param to_check: any string
1170
1170
  :return: `True` if passed string is M49 code, `False` otherwise
1171
1171
  """
1172
- return to_check in M49_AREAS or to_check in M49_TO_ISO3166_ALPHA2
1172
+ warnings.warn("Use m49.utils.is_m49_code instead.", DeprecationWarning)
1173
+ from . import utils
1174
+
1175
+ return utils.is_m49_code(to_check)
@@ -13,11 +13,21 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
+ __all__ = [
17
+ "iso_to_m49",
18
+ "m49_to_iso",
19
+ "region_and_country_names_to_m49",
20
+ "m49_to_region_and_country_names",
21
+ "openepd_to_m49",
22
+ "m49_to_openepd",
23
+ "is_m49_code",
24
+ ]
16
25
  from typing import Collection
17
26
 
18
27
  from openepd.m49.const import (
19
28
  COUNTRY_VERBOSE_NAME_TO_M49,
20
29
  ISO3166_ALPHA2_TO_M49,
30
+ M49_AREAS,
21
31
  M49_TO_COUNTRY_VERBOSE_NAME,
22
32
  M49_TO_ISO3166_ALPHA2,
23
33
  M49_TO_REGION_VERBOSE_NAME,
@@ -122,10 +132,10 @@ def openepd_to_m49(regions: Collection[str]) -> set[str]:
122
132
  Convert OpenEPD geography definitions to pure M49 region codes.
123
133
 
124
134
  :param regions: list of OpenEPD geography definitions including letter codes and aliases
125
- like "EU27" or "NAFTA" (e.g., ["EU27", "NAFTA"], ["US", "CA, MX"])
135
+ like "EU27" or "NAFTA" (e.g., ["EU27", "NAFTA"], ["US", "CA, MX"], ["NAFTA", "051"])
126
136
  :return: Set of M49 region codes (e.g., {"040", "056", "100", "191", "196", "203", "208", "233", "246", "250",
127
137
  "276", "300", "348", "372", "380", "428", "440", "442", "470", "528", "616", "620", "642", "703", "705", "724",
128
- "752", "840", "124", "484"}, {"840", "124", "484"})
138
+ "752", "840", "124", "484"}, {"840", "124", "484"}, {"840", "124", "484", "051"})
129
139
  :raises ValueError: If a region or country name is not found in ISO3166 or OpenEPD special regions.
130
140
  """
131
141
 
@@ -140,6 +150,8 @@ def openepd_to_m49(regions: Collection[str]) -> set[str]:
140
150
  m49_code = ISO3166_ALPHA2_TO_M49.get(region.upper())
141
151
  if m49_code:
142
152
  result.add(m49_code)
153
+ elif is_m49_code(region):
154
+ result.add(region)
143
155
  else:
144
156
  raise ValueError(f"Region '{region}' not found in ISO3166 or OpenEPD special regions.")
145
157
  return result
@@ -176,3 +188,13 @@ def m49_to_openepd(regions: list[str]) -> set[str]:
176
188
  raise ValueError(f"Region code '{code}' not found in ISO3166 or OpenEPD special regions.")
177
189
 
178
190
  return result
191
+
192
+
193
+ def is_m49_code(to_check: str) -> bool:
194
+ """
195
+ Check if passed string is M49 code.
196
+
197
+ :param to_check: any string
198
+ :return: `True` if passed string is M49 code, `False` otherwise
199
+ """
200
+ return to_check in M49_AREAS or to_check in M49_TO_ISO3166_ALPHA2
@@ -359,6 +359,18 @@ class ScopeSetCTUe(ScopeSet):
359
359
  allowed_units = "CTUe"
360
360
 
361
361
 
362
+ class ScopeSetKgSbe(ScopeSet):
363
+ """ScopeSet measured in kgSbe."""
364
+
365
+ allowed_units = "kgSbe"
366
+
367
+
368
+ class ScopeSetMJ(ScopeSet):
369
+ """ScopeSet measured in MJ."""
370
+
371
+ allowed_units = "MJ"
372
+
373
+
362
374
  class ScopeSetDiseaseIncidence(ScopeSet):
363
375
  """ScopeSet measuring disease incidence measured in AnnualPerCapita (cases)."""
364
376
 
@@ -474,6 +486,17 @@ class ImpactSet(ScopesetByNameBase):
474
486
  default=None,
475
487
  description="Land use related impacts / Soil quality, in potential soil quality parameters.",
476
488
  )
489
+ ADP_mineral: ScopeSetKgSbe | None = pyd.Field(
490
+ alias="ADP-mineral",
491
+ default=None,
492
+ description='Abiotic depletion potential for non-fossil resources. EN15804 calls this "ADP - minerals and metals".',
493
+ )
494
+
495
+ ADP_fossil: ScopeSetMJ | None = pyd.Field(
496
+ alias="ADP-fossil",
497
+ default=None,
498
+ description="Abiotic depletion potential for fossil resources",
499
+ )
477
500
 
478
501
 
479
502
  class LCIAMethod(StrEnum):
@@ -19,11 +19,11 @@ __all__ = (
19
19
  "CountertopsRangeV1",
20
20
  "DemountablePartitionsRangeV1",
21
21
  "OtherFurnishingsRangeV1",
22
- "OpenStorageRangeV1",
23
- "ClosedStorageRangeV1",
24
- "RetractableStorageRangeV1",
25
- "MobileStorageRangeV1",
26
- "WallMountedShelvingRangeV1",
22
+ "OpenStorageFurnitureRangeV1",
23
+ "ClosedStorageFurnitureRangeV1",
24
+ "RetractableStorageFurnitureRangeV1",
25
+ "MobileStorageFurnitureRangeV1",
26
+ "WallMountedStorageShelvingRangeV1",
27
27
  "OtherStorageFurnitureRangeV1",
28
28
  "StorageFurnitureRangeV1",
29
29
  "TablesRangeV1",
@@ -97,7 +97,7 @@ class OtherFurnishingsRangeV1(BaseOpenEpdHierarchicalSpec):
97
97
  _EXT_VERSION = "1.0"
98
98
 
99
99
 
100
- class OpenStorageRangeV1(BaseOpenEpdHierarchicalSpec):
100
+ class OpenStorageFurnitureRangeV1(BaseOpenEpdHierarchicalSpec):
101
101
  """
102
102
  Open Storage.
103
103
 
@@ -109,7 +109,7 @@ class OpenStorageRangeV1(BaseOpenEpdHierarchicalSpec):
109
109
  _EXT_VERSION = "1.0"
110
110
 
111
111
 
112
- class ClosedStorageRangeV1(BaseOpenEpdHierarchicalSpec):
112
+ class ClosedStorageFurnitureRangeV1(BaseOpenEpdHierarchicalSpec):
113
113
  """
114
114
  Closed Storage.
115
115
 
@@ -121,7 +121,7 @@ class ClosedStorageRangeV1(BaseOpenEpdHierarchicalSpec):
121
121
  _EXT_VERSION = "1.0"
122
122
 
123
123
 
124
- class RetractableStorageRangeV1(BaseOpenEpdHierarchicalSpec):
124
+ class RetractableStorageFurnitureRangeV1(BaseOpenEpdHierarchicalSpec):
125
125
  """
126
126
  Retractable Storage.
127
127
 
@@ -133,7 +133,7 @@ class RetractableStorageRangeV1(BaseOpenEpdHierarchicalSpec):
133
133
  _EXT_VERSION = "1.0"
134
134
 
135
135
 
136
- class MobileStorageRangeV1(BaseOpenEpdHierarchicalSpec):
136
+ class MobileStorageFurnitureRangeV1(BaseOpenEpdHierarchicalSpec):
137
137
  """
138
138
  Mobile Storage.
139
139
 
@@ -145,7 +145,7 @@ class MobileStorageRangeV1(BaseOpenEpdHierarchicalSpec):
145
145
  _EXT_VERSION = "1.0"
146
146
 
147
147
 
148
- class WallMountedShelvingRangeV1(BaseOpenEpdHierarchicalSpec):
148
+ class WallMountedStorageShelvingRangeV1(BaseOpenEpdHierarchicalSpec):
149
149
  """
150
150
  Wall Mounted Shelving.
151
151
 
@@ -176,11 +176,11 @@ class StorageFurnitureRangeV1(BaseOpenEpdHierarchicalSpec):
176
176
 
177
177
  _EXT_VERSION = "1.1"
178
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
179
+ OpenStorageFurniture: OpenStorageFurnitureRangeV1 | None = None
180
+ ClosedStorageFurniture: ClosedStorageFurnitureRangeV1 | None = None
181
+ RetractableStorageFurniture: RetractableStorageFurnitureRangeV1 | None = None
182
+ MobileStorageFurniture: MobileStorageFurnitureRangeV1 | None = None
183
+ WallMountedStorageShelving: WallMountedStorageShelvingRangeV1 | None = None
184
184
  OtherStorageFurniture: OtherStorageFurnitureRangeV1 | None = None
185
185
 
186
186
 
@@ -57,7 +57,7 @@ class OtherFurnishingsV1(BaseOpenEpdHierarchicalSpec):
57
57
  _EXT_VERSION = "1.0"
58
58
 
59
59
 
60
- class OpenStorageV1(BaseOpenEpdHierarchicalSpec):
60
+ class OpenStorageFurnitureV1(BaseOpenEpdHierarchicalSpec):
61
61
  """
62
62
  Open Storage.
63
63
 
@@ -67,7 +67,7 @@ class OpenStorageV1(BaseOpenEpdHierarchicalSpec):
67
67
  _EXT_VERSION = "1.0"
68
68
 
69
69
 
70
- class ClosedStorageV1(BaseOpenEpdHierarchicalSpec):
70
+ class ClosedStorageFurnitureV1(BaseOpenEpdHierarchicalSpec):
71
71
  """
72
72
  Closed Storage.
73
73
 
@@ -77,7 +77,7 @@ class ClosedStorageV1(BaseOpenEpdHierarchicalSpec):
77
77
  _EXT_VERSION = "1.0"
78
78
 
79
79
 
80
- class RetractableStorageV1(BaseOpenEpdHierarchicalSpec):
80
+ class RetractableStorageFurnitureV1(BaseOpenEpdHierarchicalSpec):
81
81
  """
82
82
  Retractable Storage.
83
83
 
@@ -87,7 +87,7 @@ class RetractableStorageV1(BaseOpenEpdHierarchicalSpec):
87
87
  _EXT_VERSION = "1.0"
88
88
 
89
89
 
90
- class MobileStorageV1(BaseOpenEpdHierarchicalSpec):
90
+ class MobileStorageFurnitureV1(BaseOpenEpdHierarchicalSpec):
91
91
  """
92
92
  Mobile Storage.
93
93
 
@@ -97,7 +97,7 @@ class MobileStorageV1(BaseOpenEpdHierarchicalSpec):
97
97
  _EXT_VERSION = "1.0"
98
98
 
99
99
 
100
- class WallMountedShelvingV1(BaseOpenEpdHierarchicalSpec):
100
+ class WallMountedStorageShelvingV1(BaseOpenEpdHierarchicalSpec):
101
101
  """
102
102
  Wall Mounted Shelving.
103
103
 
@@ -119,11 +119,11 @@ class StorageFurnitureV1(BaseOpenEpdHierarchicalSpec):
119
119
  _EXT_VERSION = "1.1"
120
120
 
121
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
122
+ OpenStorageFurniture: OpenStorageFurnitureV1 | None = None
123
+ ClosedStorageFurniture: ClosedStorageFurnitureV1 | None = None
124
+ RetractableStorageFurniture: RetractableStorageFurnitureV1 | None = None
125
+ MobileStorageFurniture: MobileStorageFurnitureV1 | None = None
126
+ WallMountedStorageShelving: WallMountedStorageShelvingV1 | None = None
127
127
  OtherStorageFurniture: OtherStorageFurnitureV1 | None = None
128
128
 
129
129
 
@@ -1,15 +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
- #
File without changes
File without changes
File without changes