openepd 6.13.1__py3-none-any.whl → 6.14.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/m49/__init__.py +2 -0
- openepd/m49/const.py +5 -2
- openepd/m49/{geo_converter.py → utils.py} +24 -2
- openepd/model/lcia.py +23 -0
- openepd/model/specs/range/furnishings.py +15 -15
- openepd/model/specs/singular/furnishings.py +10 -10
- {openepd-6.13.1.dist-info → openepd-6.14.0.dist-info}/METADATA +3 -1
- {openepd-6.13.1.dist-info → openepd-6.14.0.dist-info}/RECORD +11 -11
- {openepd-6.13.1.dist-info → openepd-6.14.0.dist-info}/WHEEL +1 -1
- {openepd-6.13.1.dist-info → openepd-6.14.0.dist-info}/LICENSE +0 -0
    
        openepd/__version__.py
    CHANGED
    
    
    
        openepd/m49/__init__.py
    CHANGED
    
    
    
        openepd/m49/const.py
    CHANGED
    
    | @@ -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 | 
            -
                 | 
| 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
         | 
    
        openepd/model/lcia.py
    CHANGED
    
    | @@ -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 | 
            -
                " | 
| 23 | 
            -
                " | 
| 24 | 
            -
                " | 
| 25 | 
            -
                " | 
| 26 | 
            -
                " | 
| 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  | 
| 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  | 
| 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  | 
| 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  | 
| 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  | 
| 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 | 
            -
                 | 
| 180 | 
            -
                 | 
| 181 | 
            -
                 | 
| 182 | 
            -
                 | 
| 183 | 
            -
                 | 
| 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  | 
| 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  | 
| 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  | 
| 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  | 
| 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  | 
| 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 | 
            -
                 | 
| 123 | 
            -
                 | 
| 124 | 
            -
                 | 
| 125 | 
            -
                 | 
| 126 | 
            -
                 | 
| 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,6 +1,6 @@ | |
| 1 1 | 
             
            Metadata-Version: 2.1
         | 
| 2 2 | 
             
            Name: openepd
         | 
| 3 | 
            -
            Version: 6. | 
| 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,5 +1,5 @@ | |
| 1 1 | 
             
            openepd/__init__.py,sha256=fhxfEyEurLvSfvQci-vb3njzl_lvhcLXiZrecCOaMU8,794
         | 
| 2 | 
            -
            openepd/__version__.py,sha256= | 
| 2 | 
            +
            openepd/__version__.py,sha256=j453SSnXhKMHPbf1O03SN8RtQbB3r2ZWnWQ2okYB0mw,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=KHCmSKMOJTQct6vhdhAatAENoouStc_yVRza5AFNoIo,7953
         | 
| @@ -32,9 +32,9 @@ openepd/bundle/writer.py,sha256=gHK1D-F-td2C18QFWerg666JUTLaGUkTUSQURJi9o74,8136 | |
| 32 32 | 
             
            openepd/compat/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
         | 
| 33 33 | 
             
            openepd/compat/compat_functional_validators.py,sha256=aWg3a80fqT8zjN0S260N-Ad2WFKAaB8ByN7ArBW3NMA,834
         | 
| 34 34 | 
             
            openepd/compat/pydantic.py,sha256=dNwPXK1X5xq9sdkd0kcbKQAUIter1GAfcxXOl6hmITQ,1146
         | 
| 35 | 
            -
            openepd/m49/__init__.py,sha256= | 
| 36 | 
            -
            openepd/m49/const.py,sha256= | 
| 37 | 
            -
            openepd/m49/ | 
| 35 | 
            +
            openepd/m49/__init__.py,sha256=vkXC6i8OeCl5K88JUIRN_NKfsAIpNIaN-fyPmmd-Lfk,689
         | 
| 36 | 
            +
            openepd/m49/const.py,sha256=buspTHOOWhkBXWUIS0oqvQ0y1L7y70Y_PXilkiBIKD4,31819
         | 
| 37 | 
            +
            openepd/m49/utils.py,sha256=Qm8HvxAZlQncsyUYDO0lG0feMFFnT4HQPNSMp78W4zU,7111
         | 
| 38 38 | 
             
            openepd/model/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
         | 
| 39 39 | 
             
            openepd/model/base.py,sha256=1GeaEDn-ppy94GaOaZI1y6Yew_0eBBho1COaxfzzLCw,9834
         | 
| 40 40 | 
             
            openepd/model/category.py,sha256=reeOVRDuZPYU77EMwG0K5VjnK2H9yOGxT0PJXXqrjEk,1639
         | 
| @@ -45,7 +45,7 @@ openepd/model/factory.py,sha256=doexyqZXJVGd45T1JsbjuyGUjEykW-MerKUq4SQHhRY,2656 | |
| 45 45 | 
             
            openepd/model/generic_estimate.py,sha256=zLGTyf4Uzmp2C0m-J1ePWItSz2RGdZ0OiGPWC5nhKHk,3992
         | 
| 46 46 | 
             
            openepd/model/geography.py,sha256=Jx7NIDdk_sIvwyh-7YxnIjAwIHW2HCQK7UtFGM2xKtw,42095
         | 
| 47 47 | 
             
            openepd/model/industry_epd.py,sha256=QZr7OhgGkzqZ8H5p6dCIVk9zSHEYtK3y9Nk-DvkFMyk,4011
         | 
| 48 | 
            -
            openepd/model/lcia.py,sha256= | 
| 48 | 
            +
            openepd/model/lcia.py,sha256=sUuVOJivfyx1m2l83YdPyTgkJBOn7mJGVFxvbCo_bCk,26107
         | 
| 49 49 | 
             
            openepd/model/org.py,sha256=MtaUrD8IdSbcMJEwL2lnXOIXNfE8wpzrepFSe2qh2uc,5342
         | 
| 50 50 | 
             
            openepd/model/pcr.py,sha256=b8WmeII8MZ3rJFWxugqv_Z0ETan8NMWj9L6mSrhneJk,5494
         | 
| 51 51 | 
             
            openepd/model/specs/README.md,sha256=UGhSiFJ9hOxT1mZl-5ZrhkOrPKf1W_gcu5CI9hzV7LU,2430
         | 
| @@ -70,7 +70,7 @@ openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py, | |
| 70 70 | 
             
            openepd/model/specs/range/electricity.py,sha256=yn_S25C_tZqseb8hiJ1yiHszu2mQ49FOFWWCqNpOBY0,997
         | 
| 71 71 | 
             
            openepd/model/specs/range/finishes.py,sha256=oCaPVYJja1KYxwEzTHCl7HtxQ2mokzeyahjyP33zHSg,21291
         | 
| 72 72 | 
             
            openepd/model/specs/range/fire_and_smoke_protection.py,sha256=u5veICQznf-woYlh49S_IbvPA23CLWEy7Ngvic2FIpw,3337
         | 
| 73 | 
            -
            openepd/model/specs/range/furnishings.py,sha256= | 
| 73 | 
            +
            openepd/model/specs/range/furnishings.py,sha256=FOGfaaA2mGtlWuBuzJLxkHU3JSKzhtCDZVgpfEtR85Y,6703
         | 
| 74 74 | 
             
            openepd/model/specs/range/grouting.py,sha256=BQPxH6BvlXpdhLEZBui9zTuY93K_9syjoa6rdnF8GGY,1095
         | 
| 75 75 | 
             
            openepd/model/specs/range/manufacturing_inputs.py,sha256=xzgkNz7yG8cp715hxS0LtJX9nfJ5RQR8GxlD2bAduwE,5574
         | 
| 76 76 | 
             
            openepd/model/specs/range/masonry.py,sha256=IyjQMb8Mx3tpJlHIIam0OrMkFsJXKvc0WXRLRBupozY,2867
         | 
| @@ -109,7 +109,7 @@ openepd/model/specs/singular/electrical_transmission_and_distribution_equipment. | |
| 109 109 | 
             
            openepd/model/specs/singular/electricity.py,sha256=f1cJ9eklNUf97khCIZiT5-z8V_TbOcvH2me_1UTQVrE,823
         | 
| 110 110 | 
             
            openepd/model/specs/singular/finishes.py,sha256=bAlNZiUP-HwePaJyC1D4j2fpv0xnMp3V5mhtAs9iaxQ,22571
         | 
| 111 111 | 
             
            openepd/model/specs/singular/fire_and_smoke_protection.py,sha256=1uyEGdMAsboYORHvSFN1wftRVAps_UJ1Ep3Dk9arT3s,3058
         | 
| 112 | 
            -
            openepd/model/specs/singular/furnishings.py,sha256= | 
| 112 | 
            +
            openepd/model/specs/singular/furnishings.py,sha256=4bReWm8FSWHRyq6vmjPm7ZixFIau7J8JF1gtZq6_jVA,5732
         | 
| 113 113 | 
             
            openepd/model/specs/singular/grouting.py,sha256=pg2tX3W7a2TQ3z_eyFYGlBJY3WEwn6JlZyqM3PQIJcU,934
         | 
| 114 114 | 
             
            openepd/model/specs/singular/manufacturing_inputs.py,sha256=9WSDOVN0mUqvFXqWf82lkpHi-XRQSMcEpe9bweegwhU,5093
         | 
| 115 115 | 
             
            openepd/model/specs/singular/masonry.py,sha256=f6nph-gscAmVeJ60bG-ebto5kz0fgh0LY27n0VutGFA,3165
         | 
| @@ -139,7 +139,7 @@ openepd/model/validation/quantity.py,sha256=vfSe-3DGQf84bCp_sMIU0ZPAA1wIilodpTjL | |
| 139 139 | 
             
            openepd/model/versioning.py,sha256=cm3LaAUODnbbu3W3pC6baJzxKusTQ1kZH-PwwScCj3c,4473
         | 
| 140 140 | 
             
            openepd/patch_pydantic.py,sha256=LVqDMKn723VYYf_V-RgTLxIb1xiUtYOfPYCQP6-7RoM,4122
         | 
| 141 141 | 
             
            openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 142 | 
            -
            openepd-6. | 
| 143 | 
            -
            openepd-6. | 
| 144 | 
            -
            openepd-6. | 
| 145 | 
            -
            openepd-6. | 
| 142 | 
            +
            openepd-6.14.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
         | 
| 143 | 
            +
            openepd-6.14.0.dist-info/METADATA,sha256=h-mIxr7O0iGai5O1phDjpdwakuWYzUtnrTzEW9BzX3U,9141
         | 
| 144 | 
            +
            openepd-6.14.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
         | 
| 145 | 
            +
            openepd-6.14.0.dist-info/RECORD,,
         | 
| 
            File without changes
         |