openepd 4.9.0__py3-none-any.whl → 4.10.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/model/base.py +1 -0
 - openepd/model/declaration.py +80 -1
 - openepd/model/epd.py +18 -30
 - openepd/model/factory.py +2 -0
 - openepd/model/generic_estimate.py +7 -31
 - openepd/model/geography.py +273 -271
 - openepd/model/industry_epd.py +98 -0
 - openepd/model/specs/generated/electrical.py +3 -2
 - openepd/model/specs/generated/enums.py +24 -0
 - openepd/model/specs/generated/mixins/__init__.py +15 -0
 - openepd/model/specs/generated/mixins/conduit_mixin.py +50 -0
 - openepd/model/specs/generated/network_infrastructure.py +3 -2
 - openepd/model/specs/generated/steel.py +4 -1
 - {openepd-4.9.0.dist-info → openepd-4.10.0.dist-info}/METADATA +1 -1
 - {openepd-4.9.0.dist-info → openepd-4.10.0.dist-info}/RECORD +18 -15
 - {openepd-4.9.0.dist-info → openepd-4.10.0.dist-info}/LICENSE +0 -0
 - {openepd-4.9.0.dist-info → openepd-4.10.0.dist-info}/WHEEL +0 -0
 
    
        openepd/__version__.py
    CHANGED
    
    
    
        openepd/model/base.py
    CHANGED
    
    
    
        openepd/model/declaration.py
    CHANGED
    
    | 
         @@ -17,10 +17,17 @@ import abc 
     | 
|
| 
       17 
17 
     | 
    
         
             
            import datetime
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            from openepd.compat.pydantic import pyd
         
     | 
| 
       20 
     | 
    
         
            -
            from openepd.model.base import RootDocument
         
     | 
| 
      
 20 
     | 
    
         
            +
            from openepd.model.base import BaseOpenEpdSchema, RootDocument
         
     | 
| 
       21 
21 
     | 
    
         
             
            from openepd.model.common import Amount
         
     | 
| 
      
 22 
     | 
    
         
            +
            from openepd.model.geography import Geography
         
     | 
| 
      
 23 
     | 
    
         
            +
            from openepd.model.org import Org
         
     | 
| 
       22 
24 
     | 
    
         
             
            from openepd.model.pcr import Pcr
         
     | 
| 
       23 
25 
     | 
    
         
             
            from openepd.model.standard import Standard
         
     | 
| 
      
 26 
     | 
    
         
            +
            from openepd.model.validation.common import ReferenceStr
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            DEVELOPER_DESCRIPTION = "The organization responsible for the underlying LCA (and subsequent summarization as EPD)."
         
     | 
| 
      
 29 
     | 
    
         
            +
            PROGRAM_OPERATOR_DESCRIPTION = "JSON object for program operator Org"
         
     | 
| 
      
 30 
     | 
    
         
            +
            THIRD_PARTY_VERIFIER_DESCRIPTION = "JSON object for Org that performed a critical review of the EPD data"
         
     | 
| 
       24 
31 
     | 
    
         | 
| 
       25 
32 
     | 
    
         | 
| 
       26 
33 
     | 
    
         
             
            class BaseDeclaration(RootDocument, abc.ABC):
         
     | 
| 
         @@ -111,3 +118,75 @@ class BaseDeclaration(RootDocument, abc.ABC): 
     | 
|
| 
       111 
118 
     | 
    
         
             
                In the absence of primary data, cleaning assumptions shall be documented.
         
     | 
| 
       112 
119 
     | 
    
         
             
                """,
         
     | 
| 
       113 
120 
     | 
    
         
             
                )
         
     | 
| 
      
 121 
     | 
    
         
            +
             
     | 
| 
      
 122 
     | 
    
         
            +
             
     | 
| 
      
 123 
     | 
    
         
            +
            class AverageDatasetMixin(pyd.BaseModel, title="Average Dataset"):
         
     | 
| 
      
 124 
     | 
    
         
            +
                """Fields common for average dataset (Industry-wide EPDs, Generic Estimates)."""
         
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
      
 126 
     | 
    
         
            +
                description: str | None = pyd.Field(
         
     | 
| 
      
 127 
     | 
    
         
            +
                    max_length=2000,
         
     | 
| 
      
 128 
     | 
    
         
            +
                    description="1-paragraph description of the average dataset. Supports plain text or github flavored markdown.",
         
     | 
| 
      
 129 
     | 
    
         
            +
                )
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
                geography: list[Geography] | None = pyd.Field(
         
     | 
| 
      
 132 
     | 
    
         
            +
                    "Jurisdiction(s) in which the LCA result is applicable.  An empty array, or absent properties, implies global applicability."
         
     | 
| 
      
 133 
     | 
    
         
            +
                )
         
     | 
| 
      
 134 
     | 
    
         
            +
             
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
            class WithProgramOperatorMixin(pyd.BaseModel):
         
     | 
| 
      
 137 
     | 
    
         
            +
                """Object which has a connection to ProgramOperator."""
         
     | 
| 
      
 138 
     | 
    
         
            +
             
     | 
| 
      
 139 
     | 
    
         
            +
                program_operator: Org | None = pyd.Field(description=PROGRAM_OPERATOR_DESCRIPTION)
         
     | 
| 
      
 140 
     | 
    
         
            +
                program_operator_doc_id: str | None = pyd.Field(
         
     | 
| 
      
 141 
     | 
    
         
            +
                    max_length=200, description="Document identifier from Program Operator.", example="123-456.789/b"
         
     | 
| 
      
 142 
     | 
    
         
            +
                )
         
     | 
| 
      
 143 
     | 
    
         
            +
                program_operator_version: str | None = pyd.Field(
         
     | 
| 
      
 144 
     | 
    
         
            +
                    max_length=200, description="Document version number from Program Operator.", example="4.3.0"
         
     | 
| 
      
 145 
     | 
    
         
            +
                )
         
     | 
| 
      
 146 
     | 
    
         
            +
             
     | 
| 
      
 147 
     | 
    
         
            +
             
     | 
| 
      
 148 
     | 
    
         
            +
            class WithVerifierMixin(pyd.BaseModel):
         
     | 
| 
      
 149 
     | 
    
         
            +
                """Set of fields related to verifier."""
         
     | 
| 
      
 150 
     | 
    
         
            +
             
     | 
| 
      
 151 
     | 
    
         
            +
                third_party_verifier: Org | None = pyd.Field(description=THIRD_PARTY_VERIFIER_DESCRIPTION)
         
     | 
| 
      
 152 
     | 
    
         
            +
                third_party_verification_url: pyd.AnyUrl | None = pyd.Field(
         
     | 
| 
      
 153 
     | 
    
         
            +
                    description="Optional link to a verification statement.",
         
     | 
| 
      
 154 
     | 
    
         
            +
                    example="https://we-verify-epds.com/en/letters/123-456.789b.pdf",
         
     | 
| 
      
 155 
     | 
    
         
            +
                )
         
     | 
| 
      
 156 
     | 
    
         
            +
                third_party_verifier_email: pyd.EmailStr | None = pyd.Field(
         
     | 
| 
      
 157 
     | 
    
         
            +
                    description="Email address of the third party verifier", example="john.doe@example.com", default=None
         
     | 
| 
      
 158 
     | 
    
         
            +
                )
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
             
     | 
| 
      
 161 
     | 
    
         
            +
            class WithEpdDeveloperMixin(pyd.BaseModel):
         
     | 
| 
      
 162 
     | 
    
         
            +
                """Set of fields related to EPD Developer."""
         
     | 
| 
      
 163 
     | 
    
         
            +
             
     | 
| 
      
 164 
     | 
    
         
            +
                epd_developer: Org | None = pyd.Field(
         
     | 
| 
      
 165 
     | 
    
         
            +
                    description=DEVELOPER_DESCRIPTION,
         
     | 
| 
      
 166 
     | 
    
         
            +
                    default=None,
         
     | 
| 
      
 167 
     | 
    
         
            +
                )
         
     | 
| 
      
 168 
     | 
    
         
            +
                epd_developer_email: pyd.EmailStr | None = pyd.Field(
         
     | 
| 
      
 169 
     | 
    
         
            +
                    default=None,
         
     | 
| 
      
 170 
     | 
    
         
            +
                    example="john.doe@we-do-lca.com",
         
     | 
| 
      
 171 
     | 
    
         
            +
                    description="Email contact for inquiries about development of this EPD. "
         
     | 
| 
      
 172 
     | 
    
         
            +
                    "This must be an email which can be publicly shared.",
         
     | 
| 
      
 173 
     | 
    
         
            +
                )
         
     | 
| 
      
 174 
     | 
    
         
            +
             
     | 
| 
      
 175 
     | 
    
         
            +
             
     | 
| 
      
 176 
     | 
    
         
            +
            class RefBase(BaseOpenEpdSchema, title="Ref Object"):
         
     | 
| 
      
 177 
     | 
    
         
            +
                """Base class for reference-style objects."""
         
     | 
| 
      
 178 
     | 
    
         
            +
             
     | 
| 
      
 179 
     | 
    
         
            +
                id: str | None = pyd.Field(
         
     | 
| 
      
 180 
     | 
    
         
            +
                    description="The unique ID for this object. To ensure global uniqueness, should be registered at "
         
     | 
| 
      
 181 
     | 
    
         
            +
                    "open-xpd-uuid.cqd.io/register or a coordinating registry.",
         
     | 
| 
      
 182 
     | 
    
         
            +
                    example="1u7zsed8",
         
     | 
| 
      
 183 
     | 
    
         
            +
                    default=None,
         
     | 
| 
      
 184 
     | 
    
         
            +
                )
         
     | 
| 
      
 185 
     | 
    
         
            +
             
     | 
| 
      
 186 
     | 
    
         
            +
                name: str | None = pyd.Field(max_length=200, description="Name of the object", default=None)
         
     | 
| 
      
 187 
     | 
    
         
            +
             
     | 
| 
      
 188 
     | 
    
         
            +
                ref: ReferenceStr | None = pyd.Field(
         
     | 
| 
      
 189 
     | 
    
         
            +
                    default=None,
         
     | 
| 
      
 190 
     | 
    
         
            +
                    example="https://openepd.buildingtransparency.org/api/generic_estimates/EC300001",
         
     | 
| 
      
 191 
     | 
    
         
            +
                    description="Reference to this JSON object",
         
     | 
| 
      
 192 
     | 
    
         
            +
                )
         
     | 
    
        openepd/model/epd.py
    CHANGED
    
    | 
         @@ -18,7 +18,15 @@ from typing import Annotated 
     | 
|
| 
       18 
18 
     | 
    
         
             
            from openepd.compat.pydantic import pyd
         
     | 
| 
       19 
19 
     | 
    
         
             
            from openepd.model.base import BaseDocumentFactory, OpenEpdDoctypes
         
     | 
| 
       20 
20 
     | 
    
         
             
            from openepd.model.common import Amount, Ingredient, WithAltIdsMixin, WithAttachmentsMixin
         
     | 
| 
       21 
     | 
    
         
            -
            from openepd.model.declaration import  
     | 
| 
      
 21 
     | 
    
         
            +
            from openepd.model.declaration import (
         
     | 
| 
      
 22 
     | 
    
         
            +
                DEVELOPER_DESCRIPTION,
         
     | 
| 
      
 23 
     | 
    
         
            +
                PROGRAM_OPERATOR_DESCRIPTION,
         
     | 
| 
      
 24 
     | 
    
         
            +
                THIRD_PARTY_VERIFIER_DESCRIPTION,
         
     | 
| 
      
 25 
     | 
    
         
            +
                BaseDeclaration,
         
     | 
| 
      
 26 
     | 
    
         
            +
                WithEpdDeveloperMixin,
         
     | 
| 
      
 27 
     | 
    
         
            +
                WithProgramOperatorMixin,
         
     | 
| 
      
 28 
     | 
    
         
            +
                WithVerifierMixin,
         
     | 
| 
      
 29 
     | 
    
         
            +
            )
         
     | 
| 
       22 
30 
     | 
    
         
             
            from openepd.model.lcia import WithLciaMixin
         
     | 
| 
       23 
31 
     | 
    
         
             
            from openepd.model.org import Org, Plant
         
     | 
| 
       24 
32 
     | 
    
         
             
            from openepd.model.specs import Specs
         
     | 
| 
         @@ -27,12 +35,17 @@ from openepd.model.versioning import OpenEpdVersions, Version 
     | 
|
| 
       27 
35 
     | 
    
         
             
            MANUFACTURER_DESCRIPTION = (
         
     | 
| 
       28 
36 
     | 
    
         
             
                'JSON object for declaring Org. Sometimes called the "Declaration Holder" or "Declaration Owner".'
         
     | 
| 
       29 
37 
     | 
    
         
             
            )
         
     | 
| 
       30 
     | 
    
         
            -
            DEVELOPER_DESCRIPTION = "The organization responsible for the underlying LCA (and subsequent summarization as EPD)."
         
     | 
| 
       31 
     | 
    
         
            -
            PROGRAM_OPERATOR_DESCRIPTION = "JSON object for program operator Org"
         
     | 
| 
       32 
     | 
    
         
            -
            THIRD_PARTY_VERIFIER_DESCRIPTION = "JSON object for Org that performed a critical review of the EPD data"
         
     | 
| 
       33 
38 
     | 
    
         | 
| 
       34 
39 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
            class EpdPreviewV0( 
     | 
| 
      
 40 
     | 
    
         
            +
            class EpdPreviewV0(
         
     | 
| 
      
 41 
     | 
    
         
            +
                WithAttachmentsMixin,
         
     | 
| 
      
 42 
     | 
    
         
            +
                WithProgramOperatorMixin,
         
     | 
| 
      
 43 
     | 
    
         
            +
                WithEpdDeveloperMixin,
         
     | 
| 
      
 44 
     | 
    
         
            +
                WithVerifierMixin,
         
     | 
| 
      
 45 
     | 
    
         
            +
                WithAltIdsMixin,
         
     | 
| 
      
 46 
     | 
    
         
            +
                BaseDeclaration,
         
     | 
| 
      
 47 
     | 
    
         
            +
                title="EPD (Preview)",
         
     | 
| 
      
 48 
     | 
    
         
            +
            ):
         
     | 
| 
       36 
49 
     | 
    
         
             
                """
         
     | 
| 
       37 
50 
     | 
    
         
             
                EPD preview, used in API list responses and where there is no need for a full object.
         
     | 
| 
       38 
51 
     | 
    
         | 
| 
         @@ -67,36 +80,11 @@ class EpdPreviewV0(WithAttachmentsMixin, WithAltIdsMixin, BaseDeclaration, title 
     | 
|
| 
       67 
80 
     | 
    
         
             
                    example="https://epd-online.com/EmbeddedEpdList/Download/6029",
         
     | 
| 
       68 
81 
     | 
    
         
             
                )
         
     | 
| 
       69 
82 
     | 
    
         
             
                manufacturer: Org | None = pyd.Field(description=MANUFACTURER_DESCRIPTION)
         
     | 
| 
       70 
     | 
    
         
            -
                epd_developer: Org | None = pyd.Field(
         
     | 
| 
       71 
     | 
    
         
            -
                    description=DEVELOPER_DESCRIPTION,
         
     | 
| 
       72 
     | 
    
         
            -
                    default=None,
         
     | 
| 
       73 
     | 
    
         
            -
                )
         
     | 
| 
       74 
     | 
    
         
            -
                epd_developer_email: pyd.EmailStr | None = pyd.Field(
         
     | 
| 
       75 
     | 
    
         
            -
                    default=None,
         
     | 
| 
       76 
     | 
    
         
            -
                    example="john.doe@we-do-lca.com",
         
     | 
| 
       77 
     | 
    
         
            -
                    description="Email contact for inquiries about development of this EPD. "
         
     | 
| 
       78 
     | 
    
         
            -
                    "This must be an email which can be publicly shared.",
         
     | 
| 
       79 
     | 
    
         
            -
                )
         
     | 
| 
       80 
83 
     | 
    
         
             
                plants: list[Plant] = pyd.Field(
         
     | 
| 
       81 
84 
     | 
    
         
             
                    max_items=32,
         
     | 
| 
       82 
85 
     | 
    
         
             
                    description="List of object(s) for one or more plant(s) that this declaration applies to.",
         
     | 
| 
       83 
86 
     | 
    
         
             
                    default_factory=list,
         
     | 
| 
       84 
87 
     | 
    
         
             
                )
         
     | 
| 
       85 
     | 
    
         
            -
                program_operator: Org | None = pyd.Field(description=PROGRAM_OPERATOR_DESCRIPTION)
         
     | 
| 
       86 
     | 
    
         
            -
                program_operator_doc_id: str | None = pyd.Field(
         
     | 
| 
       87 
     | 
    
         
            -
                    max_length=200, description="Document identifier from Program Operator.", example="123-456.789/b"
         
     | 
| 
       88 
     | 
    
         
            -
                )
         
     | 
| 
       89 
     | 
    
         
            -
                program_operator_version: str | None = pyd.Field(
         
     | 
| 
       90 
     | 
    
         
            -
                    max_length=200, description="Document version number from Program Operator.", example="4.3.0"
         
     | 
| 
       91 
     | 
    
         
            -
                )
         
     | 
| 
       92 
     | 
    
         
            -
                third_party_verifier: Org | None = pyd.Field(description=THIRD_PARTY_VERIFIER_DESCRIPTION)
         
     | 
| 
       93 
     | 
    
         
            -
                third_party_verification_url: pyd.AnyUrl | None = pyd.Field(
         
     | 
| 
       94 
     | 
    
         
            -
                    description="Optional link to a verification statement.",
         
     | 
| 
       95 
     | 
    
         
            -
                    example="https://we-verify-epds.com/en/letters/123-456.789b.pdf",
         
     | 
| 
       96 
     | 
    
         
            -
                )
         
     | 
| 
       97 
     | 
    
         
            -
                third_party_verifier_email: pyd.EmailStr | None = pyd.Field(
         
     | 
| 
       98 
     | 
    
         
            -
                    description="Email address of the third party verifier", example="john.doe@example.com", default=None
         
     | 
| 
       99 
     | 
    
         
            -
                )
         
     | 
| 
       100 
88 
     | 
    
         
             
                kg_C_per_declared_unit: Amount | None = pyd.Field(
         
     | 
| 
       101 
89 
     | 
    
         
             
                    default=None,
         
     | 
| 
       102 
90 
     | 
    
         
             
                    description="Mass of elemental carbon, per declared unit, contained in the product itself at the manufacturing "
         
     | 
    
        openepd/model/factory.py
    CHANGED
    
    | 
         @@ -16,6 +16,7 @@ 
     | 
|
| 
       16 
16 
     | 
    
         
             
            from openepd.model.base import BaseDocumentFactory, OpenEpdDoctypes, RootDocument
         
     | 
| 
       17 
17 
     | 
    
         
             
            from openepd.model.epd import EpdFactory
         
     | 
| 
       18 
18 
     | 
    
         
             
            from openepd.model.generic_estimate import GenericEstimateFactory
         
     | 
| 
      
 19 
     | 
    
         
            +
            from openepd.model.industry_epd import IndustryEpdFactory
         
     | 
| 
       19 
20 
     | 
    
         | 
| 
       20 
21 
     | 
    
         | 
| 
       21 
22 
     | 
    
         
             
            class DocumentFactory:
         
     | 
| 
         @@ -24,6 +25,7 @@ class DocumentFactory: 
     | 
|
| 
       24 
25 
     | 
    
         
             
                DOCTYPE_TO_FACTORY: dict[OpenEpdDoctypes, type[BaseDocumentFactory]] = {
         
     | 
| 
       25 
26 
     | 
    
         
             
                    OpenEpdDoctypes.Epd: EpdFactory,
         
     | 
| 
       26 
27 
     | 
    
         
             
                    OpenEpdDoctypes.GenericEstimate: GenericEstimateFactory,
         
     | 
| 
      
 28 
     | 
    
         
            +
                    OpenEpdDoctypes.IndustryEpd: IndustryEpdFactory,
         
     | 
| 
       27 
29 
     | 
    
         
             
                }
         
     | 
| 
       28 
30 
     | 
    
         | 
| 
       29 
31 
     | 
    
         
             
                @classmethod
         
     | 
| 
         @@ -16,13 +16,11 @@ 
     | 
|
| 
       16 
16 
     | 
    
         
             
            from enum import StrEnum
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
            from openepd.compat.pydantic import pyd
         
     | 
| 
       19 
     | 
    
         
            -
            from openepd.model.base import BaseDocumentFactory,  
     | 
| 
      
 19 
     | 
    
         
            +
            from openepd.model.base import BaseDocumentFactory, OpenEpdDoctypes
         
     | 
| 
       20 
20 
     | 
    
         
             
            from openepd.model.common import WithAltIdsMixin, WithAttachmentsMixin
         
     | 
| 
       21 
     | 
    
         
            -
            from openepd.model.declaration import BaseDeclaration
         
     | 
| 
       22 
     | 
    
         
            -
            from openepd.model.geography import Geography
         
     | 
| 
      
 21 
     | 
    
         
            +
            from openepd.model.declaration import AverageDatasetMixin, BaseDeclaration, RefBase
         
     | 
| 
       23 
22 
     | 
    
         
             
            from openepd.model.lcia import WithLciaMixin
         
     | 
| 
       24 
23 
     | 
    
         
             
            from openepd.model.org import Org
         
     | 
| 
       25 
     | 
    
         
            -
            from openepd.model.validation.common import ReferenceStr
         
     | 
| 
       26 
24 
     | 
    
         
             
            from openepd.model.versioning import OpenEpdVersions, Version
         
     | 
| 
       27 
25 
     | 
    
         | 
| 
       28 
26 
     | 
    
         | 
| 
         @@ -47,27 +45,12 @@ class LicenseTerms(StrEnum): 
     | 
|
| 
       47 
45 
     | 
    
         
             
                """
         
     | 
| 
       48 
46 
     | 
    
         | 
| 
       49 
47 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
            class GenericEstimateRef( 
     | 
| 
      
 48 
     | 
    
         
            +
            class GenericEstimateRef(RefBase, title="Generic Estimate (Ref)"):
         
     | 
| 
       51 
49 
     | 
    
         
             
                """Reference (short) version of Generic Estimate object."""
         
     | 
| 
       52 
50 
     | 
    
         | 
| 
       53 
     | 
    
         
            -
                id: str | None = pyd.Field(
         
     | 
| 
       54 
     | 
    
         
            -
                    description="The unique ID for this document.  To ensure global uniqueness, should be registered at "
         
     | 
| 
       55 
     | 
    
         
            -
                    "open-xpd-uuid.cqd.io/register or a coordinating registry.",
         
     | 
| 
       56 
     | 
    
         
            -
                    example="1u7zsed8",
         
     | 
| 
       57 
     | 
    
         
            -
                    default=None,
         
     | 
| 
       58 
     | 
    
         
            -
                )
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                name: str | None = pyd.Field(max_length=200, description="Name of the generic estimate", default=None)
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
                ref: ReferenceStr | None = pyd.Field(
         
     | 
| 
       63 
     | 
    
         
            -
                    default=None,
         
     | 
| 
       64 
     | 
    
         
            -
                    example="https://openepd.buildingtransparency.org/api/generic_estimates/EC300001",
         
     | 
| 
       65 
     | 
    
         
            -
                    description="Reference to this GenericEstimate JSON object",
         
     | 
| 
       66 
     | 
    
         
            -
                )
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
51 
     | 
    
         | 
| 
       69 
52 
     | 
    
         
             
            class GenericEstimatePreviewV0(
         
     | 
| 
       70 
     | 
    
         
            -
                WithAttachmentsMixin, GenericEstimateRef, BaseDeclaration, title="Generic Estimate (preview)"
         
     | 
| 
      
 53 
     | 
    
         
            +
                WithAttachmentsMixin, AverageDatasetMixin, GenericEstimateRef, BaseDeclaration, title="Generic Estimate (preview)"
         
     | 
| 
       71 
54 
     | 
    
         
             
            ):
         
     | 
| 
       72 
55 
     | 
    
         
             
                """
         
     | 
| 
       73 
56 
     | 
    
         
             
                Generic Estimate preview, used in API list responses and where there is no need for a full object.
         
     | 
| 
         @@ -80,20 +63,13 @@ class GenericEstimatePreviewV0( 
     | 
|
| 
       80 
63 
     | 
    
         
             
                    default="openGenericEstimate",
         
     | 
| 
       81 
64 
     | 
    
         
             
                )
         
     | 
| 
       82 
65 
     | 
    
         | 
| 
       83 
     | 
    
         
            -
                description: str | None = pyd.Field(
         
     | 
| 
       84 
     | 
    
         
            -
                    max_length=2000,
         
     | 
| 
       85 
     | 
    
         
            -
                    description="1-paragraph description of the Generic Estimate. Supports plain text or github flavored markdown.",
         
     | 
| 
       86 
     | 
    
         
            -
                )
         
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
66 
     | 
    
         
             
                publisher: Org | None = pyd.Field(description="Organization that published the LCA results.")
         
     | 
| 
      
 67 
     | 
    
         
            +
                reviewer: Org | None = pyd.Field(description="Org that performed a critical review of the LCA.")
         
     | 
| 
       89 
68 
     | 
    
         
             
                reviewer_email: pyd.EmailStr | None = pyd.Field(
         
     | 
| 
       90 
69 
     | 
    
         
             
                    description="Email address of the third party verifier", example="john.doe@example.com", default=None
         
     | 
| 
       91 
70 
     | 
    
         
             
                )
         
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
       93 
72 
     | 
    
         
             
                license_terms: LicenseTerms | None = pyd.Field(description="The license terms for use of the data.")
         
     | 
| 
       94 
     | 
    
         
            -
                geography: list[Geography] | None = pyd.Field(
         
     | 
| 
       95 
     | 
    
         
            -
                    "Jurisdiction(s) in which the LCA result is applicable.  An empty array, or absent properties, implies global applicability."
         
     | 
| 
       96 
     | 
    
         
            -
                )
         
     | 
| 
       97 
73 
     | 
    
         
             
                model_repository: pyd.AnyUrl | None = pyd.Field(
         
     | 
| 
       98 
74 
     | 
    
         
             
                    default=None, description="A link to the shared git repository containing the LCA model used for this estimate."
         
     | 
| 
       99 
75 
     | 
    
         
             
                )
         
     | 
| 
         @@ -104,7 +80,7 @@ GenericEstimatePreview = GenericEstimatePreviewV0 
     | 
|
| 
       104 
80 
     | 
    
         | 
| 
       105 
81 
     | 
    
         
             
            class GenericEstimateV0(GenericEstimatePreviewV0, WithLciaMixin, WithAltIdsMixin, title="Generic Estimate (Full)"):
         
     | 
| 
       106 
82 
     | 
    
         
             
                """
         
     | 
| 
       107 
     | 
    
         
            -
                 
     | 
| 
      
 83 
     | 
    
         
            +
                Full Generic Estimate object.
         
     | 
| 
       108 
84 
     | 
    
         | 
| 
       109 
85 
     | 
    
         
             
                This is considered the most complete valid openEPD object for GenericEstimate. In addition to it, several related
         
     | 
| 
       110 
86 
     | 
    
         
             
                models are defined, either with fewer fields (to be used in APIs for list requests) or with more relaxed structure
         
     | 
    
        openepd/model/geography.py
    CHANGED
    
    | 
         @@ -356,6 +356,7 @@ class Geography(StrEnum): 
     | 
|
| 
       356 
356 
     | 
    
         
             
                See https://unstats.un.org/unsd/methodology/m49/overview/
         
     | 
| 
       357 
357 
     | 
    
         | 
| 
       358 
358 
     | 
    
         
             
                 * m49_001: Global
         
     | 
| 
      
 359 
     | 
    
         
            +
                 * m49_003: North America. The continent of North America (numerical code 003) comprises Northern America (numerical code 021), Caribbean (numerical code 029), and Central America (numerical code 013).
         
     | 
| 
       359 
360 
     | 
    
         
             
                 * m49_002: Africa
         
     | 
| 
       360 
361 
     | 
    
         
             
                 * m49_015: Northern Africa
         
     | 
| 
       361 
362 
     | 
    
         
             
                 * m49_202: Sub-Saharan Africa
         
     | 
| 
         @@ -957,277 +958,278 @@ class Geography(StrEnum): 
     | 
|
| 
       957 
958 
     | 
    
         
             
                US_WY = "US-WY"
         
     | 
| 
       958 
959 
     | 
    
         | 
| 
       959 
960 
     | 
    
         
             
                # m49 codification
         
     | 
| 
       960 
     | 
    
         
            -
                m49_001 = "001"
         
     | 
| 
       961 
     | 
    
         
            -
                 
     | 
| 
       962 
     | 
    
         
            -
                 
     | 
| 
       963 
     | 
    
         
            -
                 
     | 
| 
       964 
     | 
    
         
            -
                 
     | 
| 
       965 
     | 
    
         
            -
                 
     | 
| 
       966 
     | 
    
         
            -
                 
     | 
| 
       967 
     | 
    
         
            -
                 
     | 
| 
       968 
     | 
    
         
            -
                 
     | 
| 
       969 
     | 
    
         
            -
                 
     | 
| 
       970 
     | 
    
         
            -
                 
     | 
| 
       971 
     | 
    
         
            -
                 
     | 
| 
       972 
     | 
    
         
            -
                 
     | 
| 
       973 
     | 
    
         
            -
                 
     | 
| 
       974 
     | 
    
         
            -
                 
     | 
| 
       975 
     | 
    
         
            -
                 
     | 
| 
       976 
     | 
    
         
            -
                 
     | 
| 
       977 
     | 
    
         
            -
                 
     | 
| 
       978 
     | 
    
         
            -
                 
     | 
| 
       979 
     | 
    
         
            -
                 
     | 
| 
       980 
     | 
    
         
            -
                 
     | 
| 
       981 
     | 
    
         
            -
                 
     | 
| 
       982 
     | 
    
         
            -
                 
     | 
| 
       983 
     | 
    
         
            -
                 
     | 
| 
       984 
     | 
    
         
            -
                 
     | 
| 
       985 
     | 
    
         
            -
                 
     | 
| 
       986 
     | 
    
         
            -
                 
     | 
| 
       987 
     | 
    
         
            -
                 
     | 
| 
       988 
     | 
    
         
            -
                 
     | 
| 
       989 
     | 
    
         
            -
                 
     | 
| 
       990 
     | 
    
         
            -
                 
     | 
| 
       991 
     | 
    
         
            -
                 
     | 
| 
       992 
     | 
    
         
            -
                 
     | 
| 
       993 
     | 
    
         
            -
                 
     | 
| 
       994 
     | 
    
         
            -
                 
     | 
| 
       995 
     | 
    
         
            -
                 
     | 
| 
       996 
     | 
    
         
            -
                 
     | 
| 
       997 
     | 
    
         
            -
                 
     | 
| 
       998 
     | 
    
         
            -
                 
     | 
| 
       999 
     | 
    
         
            -
                 
     | 
| 
       1000 
     | 
    
         
            -
                 
     | 
| 
       1001 
     | 
    
         
            -
                 
     | 
| 
       1002 
     | 
    
         
            -
                 
     | 
| 
       1003 
     | 
    
         
            -
                 
     | 
| 
       1004 
     | 
    
         
            -
                 
     | 
| 
       1005 
     | 
    
         
            -
                 
     | 
| 
       1006 
     | 
    
         
            -
                 
     | 
| 
       1007 
     | 
    
         
            -
                 
     | 
| 
       1008 
     | 
    
         
            -
                 
     | 
| 
       1009 
     | 
    
         
            -
                 
     | 
| 
       1010 
     | 
    
         
            -
                 
     | 
| 
       1011 
     | 
    
         
            -
                 
     | 
| 
       1012 
     | 
    
         
            -
                 
     | 
| 
       1013 
     | 
    
         
            -
                 
     | 
| 
       1014 
     | 
    
         
            -
                 
     | 
| 
       1015 
     | 
    
         
            -
                 
     | 
| 
       1016 
     | 
    
         
            -
                 
     | 
| 
       1017 
     | 
    
         
            -
                 
     | 
| 
       1018 
     | 
    
         
            -
                 
     | 
| 
       1019 
     | 
    
         
            -
                 
     | 
| 
       1020 
     | 
    
         
            -
                 
     | 
| 
       1021 
     | 
    
         
            -
                 
     | 
| 
       1022 
     | 
    
         
            -
                 
     | 
| 
       1023 
     | 
    
         
            -
                 
     | 
| 
       1024 
     | 
    
         
            -
                 
     | 
| 
       1025 
     | 
    
         
            -
                 
     | 
| 
       1026 
     | 
    
         
            -
                 
     | 
| 
       1027 
     | 
    
         
            -
                 
     | 
| 
       1028 
     | 
    
         
            -
                 
     | 
| 
       1029 
     | 
    
         
            -
                 
     | 
| 
       1030 
     | 
    
         
            -
                 
     | 
| 
       1031 
     | 
    
         
            -
                 
     | 
| 
       1032 
     | 
    
         
            -
                 
     | 
| 
       1033 
     | 
    
         
            -
                 
     | 
| 
       1034 
     | 
    
         
            -
                 
     | 
| 
       1035 
     | 
    
         
            -
                 
     | 
| 
       1036 
     | 
    
         
            -
                 
     | 
| 
       1037 
     | 
    
         
            -
                 
     | 
| 
       1038 
     | 
    
         
            -
                 
     | 
| 
       1039 
     | 
    
         
            -
                 
     | 
| 
       1040 
     | 
    
         
            -
                 
     | 
| 
       1041 
     | 
    
         
            -
                 
     | 
| 
       1042 
     | 
    
         
            -
                 
     | 
| 
       1043 
     | 
    
         
            -
                 
     | 
| 
       1044 
     | 
    
         
            -
                 
     | 
| 
       1045 
     | 
    
         
            -
                 
     | 
| 
       1046 
     | 
    
         
            -
                 
     | 
| 
       1047 
     | 
    
         
            -
                 
     | 
| 
       1048 
     | 
    
         
            -
                 
     | 
| 
       1049 
     | 
    
         
            -
                 
     | 
| 
       1050 
     | 
    
         
            -
                 
     | 
| 
       1051 
     | 
    
         
            -
                 
     | 
| 
       1052 
     | 
    
         
            -
                 
     | 
| 
       1053 
     | 
    
         
            -
                 
     | 
| 
       1054 
     | 
    
         
            -
                 
     | 
| 
       1055 
     | 
    
         
            -
                 
     | 
| 
       1056 
     | 
    
         
            -
                 
     | 
| 
       1057 
     | 
    
         
            -
                 
     | 
| 
       1058 
     | 
    
         
            -
                 
     | 
| 
       1059 
     | 
    
         
            -
                 
     | 
| 
       1060 
     | 
    
         
            -
                 
     | 
| 
       1061 
     | 
    
         
            -
                 
     | 
| 
       1062 
     | 
    
         
            -
                 
     | 
| 
       1063 
     | 
    
         
            -
                 
     | 
| 
       1064 
     | 
    
         
            -
                 
     | 
| 
       1065 
     | 
    
         
            -
                 
     | 
| 
       1066 
     | 
    
         
            -
                 
     | 
| 
       1067 
     | 
    
         
            -
                 
     | 
| 
       1068 
     | 
    
         
            -
                 
     | 
| 
       1069 
     | 
    
         
            -
                 
     | 
| 
       1070 
     | 
    
         
            -
                 
     | 
| 
       1071 
     | 
    
         
            -
                 
     | 
| 
       1072 
     | 
    
         
            -
                 
     | 
| 
       1073 
     | 
    
         
            -
                 
     | 
| 
       1074 
     | 
    
         
            -
                 
     | 
| 
       1075 
     | 
    
         
            -
                 
     | 
| 
       1076 
     | 
    
         
            -
                 
     | 
| 
       1077 
     | 
    
         
            -
                 
     | 
| 
       1078 
     | 
    
         
            -
                 
     | 
| 
       1079 
     | 
    
         
            -
                 
     | 
| 
       1080 
     | 
    
         
            -
                 
     | 
| 
       1081 
     | 
    
         
            -
                 
     | 
| 
       1082 
     | 
    
         
            -
                 
     | 
| 
       1083 
     | 
    
         
            -
                 
     | 
| 
       1084 
     | 
    
         
            -
                 
     | 
| 
       1085 
     | 
    
         
            -
                 
     | 
| 
       1086 
     | 
    
         
            -
                 
     | 
| 
       1087 
     | 
    
         
            -
                 
     | 
| 
       1088 
     | 
    
         
            -
                 
     | 
| 
       1089 
     | 
    
         
            -
                 
     | 
| 
       1090 
     | 
    
         
            -
                 
     | 
| 
       1091 
     | 
    
         
            -
                 
     | 
| 
       1092 
     | 
    
         
            -
                 
     | 
| 
       1093 
     | 
    
         
            -
                 
     | 
| 
       1094 
     | 
    
         
            -
                 
     | 
| 
       1095 
     | 
    
         
            -
                 
     | 
| 
       1096 
     | 
    
         
            -
                 
     | 
| 
       1097 
     | 
    
         
            -
                 
     | 
| 
       1098 
     | 
    
         
            -
                 
     | 
| 
       1099 
     | 
    
         
            -
                 
     | 
| 
       1100 
     | 
    
         
            -
                 
     | 
| 
       1101 
     | 
    
         
            -
                 
     | 
| 
       1102 
     | 
    
         
            -
                 
     | 
| 
       1103 
     | 
    
         
            -
                 
     | 
| 
       1104 
     | 
    
         
            -
                 
     | 
| 
       1105 
     | 
    
         
            -
                 
     | 
| 
       1106 
     | 
    
         
            -
                 
     | 
| 
       1107 
     | 
    
         
            -
                 
     | 
| 
       1108 
     | 
    
         
            -
                 
     | 
| 
       1109 
     | 
    
         
            -
                 
     | 
| 
       1110 
     | 
    
         
            -
                 
     | 
| 
       1111 
     | 
    
         
            -
                 
     | 
| 
       1112 
     | 
    
         
            -
                 
     | 
| 
       1113 
     | 
    
         
            -
                 
     | 
| 
       1114 
     | 
    
         
            -
                 
     | 
| 
       1115 
     | 
    
         
            -
                 
     | 
| 
       1116 
     | 
    
         
            -
                 
     | 
| 
       1117 
     | 
    
         
            -
                 
     | 
| 
       1118 
     | 
    
         
            -
                 
     | 
| 
       1119 
     | 
    
         
            -
                 
     | 
| 
       1120 
     | 
    
         
            -
                 
     | 
| 
       1121 
     | 
    
         
            -
                 
     | 
| 
       1122 
     | 
    
         
            -
                 
     | 
| 
       1123 
     | 
    
         
            -
                 
     | 
| 
       1124 
     | 
    
         
            -
                 
     | 
| 
       1125 
     | 
    
         
            -
                 
     | 
| 
       1126 
     | 
    
         
            -
                 
     | 
| 
       1127 
     | 
    
         
            -
                 
     | 
| 
       1128 
     | 
    
         
            -
                 
     | 
| 
       1129 
     | 
    
         
            -
                 
     | 
| 
       1130 
     | 
    
         
            -
                 
     | 
| 
       1131 
     | 
    
         
            -
                 
     | 
| 
       1132 
     | 
    
         
            -
                 
     | 
| 
       1133 
     | 
    
         
            -
                 
     | 
| 
       1134 
     | 
    
         
            -
                 
     | 
| 
       1135 
     | 
    
         
            -
                 
     | 
| 
       1136 
     | 
    
         
            -
                 
     | 
| 
       1137 
     | 
    
         
            -
                 
     | 
| 
       1138 
     | 
    
         
            -
                 
     | 
| 
       1139 
     | 
    
         
            -
                 
     | 
| 
       1140 
     | 
    
         
            -
                 
     | 
| 
       1141 
     | 
    
         
            -
                 
     | 
| 
       1142 
     | 
    
         
            -
                 
     | 
| 
       1143 
     | 
    
         
            -
                 
     | 
| 
       1144 
     | 
    
         
            -
                 
     | 
| 
       1145 
     | 
    
         
            -
                 
     | 
| 
       1146 
     | 
    
         
            -
                 
     | 
| 
       1147 
     | 
    
         
            -
                 
     | 
| 
       1148 
     | 
    
         
            -
                 
     | 
| 
       1149 
     | 
    
         
            -
                 
     | 
| 
       1150 
     | 
    
         
            -
                 
     | 
| 
       1151 
     | 
    
         
            -
                 
     | 
| 
       1152 
     | 
    
         
            -
                 
     | 
| 
       1153 
     | 
    
         
            -
                 
     | 
| 
       1154 
     | 
    
         
            -
                 
     | 
| 
       1155 
     | 
    
         
            -
                 
     | 
| 
       1156 
     | 
    
         
            -
                 
     | 
| 
       1157 
     | 
    
         
            -
                 
     | 
| 
       1158 
     | 
    
         
            -
                 
     | 
| 
       1159 
     | 
    
         
            -
                 
     | 
| 
       1160 
     | 
    
         
            -
                 
     | 
| 
       1161 
     | 
    
         
            -
                 
     | 
| 
       1162 
     | 
    
         
            -
                 
     | 
| 
       1163 
     | 
    
         
            -
                 
     | 
| 
       1164 
     | 
    
         
            -
                 
     | 
| 
       1165 
     | 
    
         
            -
                 
     | 
| 
       1166 
     | 
    
         
            -
                 
     | 
| 
       1167 
     | 
    
         
            -
                 
     | 
| 
       1168 
     | 
    
         
            -
                 
     | 
| 
       1169 
     | 
    
         
            -
                 
     | 
| 
       1170 
     | 
    
         
            -
                 
     | 
| 
       1171 
     | 
    
         
            -
                 
     | 
| 
       1172 
     | 
    
         
            -
                 
     | 
| 
       1173 
     | 
    
         
            -
                 
     | 
| 
       1174 
     | 
    
         
            -
                 
     | 
| 
       1175 
     | 
    
         
            -
                 
     | 
| 
       1176 
     | 
    
         
            -
                 
     | 
| 
       1177 
     | 
    
         
            -
                 
     | 
| 
       1178 
     | 
    
         
            -
                 
     | 
| 
       1179 
     | 
    
         
            -
                 
     | 
| 
       1180 
     | 
    
         
            -
                 
     | 
| 
       1181 
     | 
    
         
            -
                 
     | 
| 
       1182 
     | 
    
         
            -
                 
     | 
| 
       1183 
     | 
    
         
            -
                 
     | 
| 
       1184 
     | 
    
         
            -
                 
     | 
| 
       1185 
     | 
    
         
            -
                 
     | 
| 
       1186 
     | 
    
         
            -
                 
     | 
| 
       1187 
     | 
    
         
            -
                 
     | 
| 
       1188 
     | 
    
         
            -
                 
     | 
| 
       1189 
     | 
    
         
            -
                 
     | 
| 
       1190 
     | 
    
         
            -
                 
     | 
| 
       1191 
     | 
    
         
            -
                 
     | 
| 
       1192 
     | 
    
         
            -
                 
     | 
| 
       1193 
     | 
    
         
            -
                 
     | 
| 
       1194 
     | 
    
         
            -
                 
     | 
| 
       1195 
     | 
    
         
            -
                 
     | 
| 
       1196 
     | 
    
         
            -
                 
     | 
| 
       1197 
     | 
    
         
            -
                 
     | 
| 
       1198 
     | 
    
         
            -
                 
     | 
| 
       1199 
     | 
    
         
            -
                 
     | 
| 
       1200 
     | 
    
         
            -
                 
     | 
| 
       1201 
     | 
    
         
            -
                 
     | 
| 
       1202 
     | 
    
         
            -
                 
     | 
| 
       1203 
     | 
    
         
            -
                 
     | 
| 
       1204 
     | 
    
         
            -
                 
     | 
| 
       1205 
     | 
    
         
            -
                 
     | 
| 
       1206 
     | 
    
         
            -
                 
     | 
| 
       1207 
     | 
    
         
            -
                 
     | 
| 
       1208 
     | 
    
         
            -
                 
     | 
| 
       1209 
     | 
    
         
            -
                 
     | 
| 
       1210 
     | 
    
         
            -
                 
     | 
| 
       1211 
     | 
    
         
            -
                 
     | 
| 
       1212 
     | 
    
         
            -
                 
     | 
| 
       1213 
     | 
    
         
            -
                 
     | 
| 
       1214 
     | 
    
         
            -
                 
     | 
| 
       1215 
     | 
    
         
            -
                 
     | 
| 
       1216 
     | 
    
         
            -
                 
     | 
| 
       1217 
     | 
    
         
            -
                 
     | 
| 
       1218 
     | 
    
         
            -
                 
     | 
| 
       1219 
     | 
    
         
            -
                 
     | 
| 
       1220 
     | 
    
         
            -
                 
     | 
| 
       1221 
     | 
    
         
            -
                 
     | 
| 
       1222 
     | 
    
         
            -
                 
     | 
| 
       1223 
     | 
    
         
            -
                 
     | 
| 
       1224 
     | 
    
         
            -
                 
     | 
| 
       1225 
     | 
    
         
            -
                 
     | 
| 
       1226 
     | 
    
         
            -
                 
     | 
| 
       1227 
     | 
    
         
            -
                 
     | 
| 
       1228 
     | 
    
         
            -
                 
     | 
| 
       1229 
     | 
    
         
            -
                 
     | 
| 
       1230 
     | 
    
         
            -
                 
     | 
| 
      
 961 
     | 
    
         
            +
                m49_001 = "001"  # Global
         
     | 
| 
      
 962 
     | 
    
         
            +
                m49_003 = "003"  # North America. The continent of North America (numerical code 003) comprises Northern America (numerical code 021), Caribbean (numerical code 029), and Central America (numerical code 013).
         
     | 
| 
      
 963 
     | 
    
         
            +
                m49_002 = "002"  # Africa
         
     | 
| 
      
 964 
     | 
    
         
            +
                m49_015 = "015"  # Northern Africa
         
     | 
| 
      
 965 
     | 
    
         
            +
                m49_202 = "202"  # Sub-Saharan Africa
         
     | 
| 
      
 966 
     | 
    
         
            +
                m49_019 = "019"  # Americas
         
     | 
| 
      
 967 
     | 
    
         
            +
                m49_419 = "419"  # Latin America and the Caribbean
         
     | 
| 
      
 968 
     | 
    
         
            +
                m49_021 = "021"  # Northern America
         
     | 
| 
      
 969 
     | 
    
         
            +
                m49_142 = "142"  # Asia
         
     | 
| 
      
 970 
     | 
    
         
            +
                m49_143 = "143"  # Central Asia
         
     | 
| 
      
 971 
     | 
    
         
            +
                m49_030 = "030"  # Eastern Asia
         
     | 
| 
      
 972 
     | 
    
         
            +
                m49_035 = "035"  # South-eastern Asia
         
     | 
| 
      
 973 
     | 
    
         
            +
                m49_034 = "034"  # Southern Asia
         
     | 
| 
      
 974 
     | 
    
         
            +
                m49_145 = "145"  # Western Asia
         
     | 
| 
      
 975 
     | 
    
         
            +
                m49_150 = "150"  # Europe
         
     | 
| 
      
 976 
     | 
    
         
            +
                m49_151 = "151"  # Eastern Europe
         
     | 
| 
      
 977 
     | 
    
         
            +
                m49_154 = "154"  # Northern Europe
         
     | 
| 
      
 978 
     | 
    
         
            +
                m49_039 = "039"  # Southern Europe
         
     | 
| 
      
 979 
     | 
    
         
            +
                m49_155 = "155"  # Western Europe
         
     | 
| 
      
 980 
     | 
    
         
            +
                m49_009 = "009"  # Oceania
         
     | 
| 
      
 981 
     | 
    
         
            +
                m49_053 = "053"  # Australia and New Zealand
         
     | 
| 
      
 982 
     | 
    
         
            +
                m49_054 = "054"  # Melanesia
         
     | 
| 
      
 983 
     | 
    
         
            +
                m49_057 = "057"  # Micronesia
         
     | 
| 
      
 984 
     | 
    
         
            +
                m49_061 = "061"  # Polynesia
         
     | 
| 
      
 985 
     | 
    
         
            +
                m49_012 = "012"  # Algeria
         
     | 
| 
      
 986 
     | 
    
         
            +
                m49_818 = "818"  # Egypt
         
     | 
| 
      
 987 
     | 
    
         
            +
                m49_434 = "434"  # Libya
         
     | 
| 
      
 988 
     | 
    
         
            +
                m49_504 = "504"  # Morocco
         
     | 
| 
      
 989 
     | 
    
         
            +
                m49_729 = "729"  # Sudan
         
     | 
| 
      
 990 
     | 
    
         
            +
                m49_788 = "788"  # Tunisia
         
     | 
| 
      
 991 
     | 
    
         
            +
                m49_732 = "732"  # Western Sahara
         
     | 
| 
      
 992 
     | 
    
         
            +
                m49_086 = "086"  # British Indian Ocean Territory
         
     | 
| 
      
 993 
     | 
    
         
            +
                m49_108 = "108"  # Burundi
         
     | 
| 
      
 994 
     | 
    
         
            +
                m49_174 = "174"  # Comoros
         
     | 
| 
      
 995 
     | 
    
         
            +
                m49_262 = "262"  # Djibouti
         
     | 
| 
      
 996 
     | 
    
         
            +
                m49_232 = "232"  # Eritrea
         
     | 
| 
      
 997 
     | 
    
         
            +
                m49_231 = "231"  # Ethiopia
         
     | 
| 
      
 998 
     | 
    
         
            +
                m49_260 = "260"  # French Southern Territories
         
     | 
| 
      
 999 
     | 
    
         
            +
                m49_404 = "404"  # Kenya
         
     | 
| 
      
 1000 
     | 
    
         
            +
                m49_450 = "450"  # Madagascar
         
     | 
| 
      
 1001 
     | 
    
         
            +
                m49_454 = "454"  # Malawi
         
     | 
| 
      
 1002 
     | 
    
         
            +
                m49_480 = "480"  # Mauritius
         
     | 
| 
      
 1003 
     | 
    
         
            +
                m49_175 = "175"  # Mayotte
         
     | 
| 
      
 1004 
     | 
    
         
            +
                m49_508 = "508"  # Mozambique
         
     | 
| 
      
 1005 
     | 
    
         
            +
                m49_638 = "638"  # Réunion
         
     | 
| 
      
 1006 
     | 
    
         
            +
                m49_646 = "646"  # Rwanda
         
     | 
| 
      
 1007 
     | 
    
         
            +
                m49_690 = "690"  # Seychelles
         
     | 
| 
      
 1008 
     | 
    
         
            +
                m49_706 = "706"  # Somalia
         
     | 
| 
      
 1009 
     | 
    
         
            +
                m49_728 = "728"  # South Sudan
         
     | 
| 
      
 1010 
     | 
    
         
            +
                m49_800 = "800"  # Uganda
         
     | 
| 
      
 1011 
     | 
    
         
            +
                m49_834 = "834"  # United Republic of Tanzania
         
     | 
| 
      
 1012 
     | 
    
         
            +
                m49_894 = "894"  # Zambia
         
     | 
| 
      
 1013 
     | 
    
         
            +
                m49_716 = "716"  # Zimbabwe
         
     | 
| 
      
 1014 
     | 
    
         
            +
                m49_024 = "024"  # Angola
         
     | 
| 
      
 1015 
     | 
    
         
            +
                m49_120 = "120"  # Cameroon
         
     | 
| 
      
 1016 
     | 
    
         
            +
                m49_140 = "140"  # Central African Republic
         
     | 
| 
      
 1017 
     | 
    
         
            +
                m49_148 = "148"  # Chad
         
     | 
| 
      
 1018 
     | 
    
         
            +
                m49_178 = "178"  # Congo
         
     | 
| 
      
 1019 
     | 
    
         
            +
                m49_180 = "180"  # Democratic Republic of the Congo
         
     | 
| 
      
 1020 
     | 
    
         
            +
                m49_226 = "226"  # Equatorial Guinea
         
     | 
| 
      
 1021 
     | 
    
         
            +
                m49_266 = "266"  # Gabon
         
     | 
| 
      
 1022 
     | 
    
         
            +
                m49_678 = "678"  # Sao Tome and Principe
         
     | 
| 
      
 1023 
     | 
    
         
            +
                m49_072 = "072"  # Botswana
         
     | 
| 
      
 1024 
     | 
    
         
            +
                m49_748 = "748"  # Eswatini
         
     | 
| 
      
 1025 
     | 
    
         
            +
                m49_426 = "426"  # Lesotho
         
     | 
| 
      
 1026 
     | 
    
         
            +
                m49_516 = "516"  # Namibia
         
     | 
| 
      
 1027 
     | 
    
         
            +
                m49_710 = "710"  # South Africa
         
     | 
| 
      
 1028 
     | 
    
         
            +
                m49_204 = "204"  # Benin
         
     | 
| 
      
 1029 
     | 
    
         
            +
                m49_854 = "854"  # Burkina Faso
         
     | 
| 
      
 1030 
     | 
    
         
            +
                m49_132 = "132"  # Cabo Verde
         
     | 
| 
      
 1031 
     | 
    
         
            +
                m49_384 = "384"  # Côte d’Ivoire
         
     | 
| 
      
 1032 
     | 
    
         
            +
                m49_270 = "270"  # Gambia
         
     | 
| 
      
 1033 
     | 
    
         
            +
                m49_288 = "288"  # Ghana
         
     | 
| 
      
 1034 
     | 
    
         
            +
                m49_324 = "324"  # Guinea
         
     | 
| 
      
 1035 
     | 
    
         
            +
                m49_624 = "624"  # Guinea-Bissau
         
     | 
| 
      
 1036 
     | 
    
         
            +
                m49_430 = "430"  # Liberia
         
     | 
| 
      
 1037 
     | 
    
         
            +
                m49_466 = "466"  # Mali
         
     | 
| 
      
 1038 
     | 
    
         
            +
                m49_478 = "478"  # Mauritania
         
     | 
| 
      
 1039 
     | 
    
         
            +
                m49_562 = "562"  # Niger
         
     | 
| 
      
 1040 
     | 
    
         
            +
                m49_566 = "566"  # Nigeria
         
     | 
| 
      
 1041 
     | 
    
         
            +
                m49_654 = "654"  # Saint Helena
         
     | 
| 
      
 1042 
     | 
    
         
            +
                m49_686 = "686"  # Senegal
         
     | 
| 
      
 1043 
     | 
    
         
            +
                m49_694 = "694"  # Sierra Leone
         
     | 
| 
      
 1044 
     | 
    
         
            +
                m49_768 = "768"  # Togo
         
     | 
| 
      
 1045 
     | 
    
         
            +
                m49_660 = "660"  # Anguilla
         
     | 
| 
      
 1046 
     | 
    
         
            +
                m49_028 = "028"  # Antigua and Barbuda
         
     | 
| 
      
 1047 
     | 
    
         
            +
                m49_533 = "533"  # Aruba
         
     | 
| 
      
 1048 
     | 
    
         
            +
                m49_044 = "044"  # Bahamas
         
     | 
| 
      
 1049 
     | 
    
         
            +
                m49_052 = "052"  # Barbados
         
     | 
| 
      
 1050 
     | 
    
         
            +
                m49_535 = "535"  # Bonaire, Sint Eustatius and Saba
         
     | 
| 
      
 1051 
     | 
    
         
            +
                m49_092 = "092"  # British Virgin Islands
         
     | 
| 
      
 1052 
     | 
    
         
            +
                m49_136 = "136"  # Cayman Islands
         
     | 
| 
      
 1053 
     | 
    
         
            +
                m49_192 = "192"  # Cuba
         
     | 
| 
      
 1054 
     | 
    
         
            +
                m49_531 = "531"  # Curaçao
         
     | 
| 
      
 1055 
     | 
    
         
            +
                m49_212 = "212"  # Dominica
         
     | 
| 
      
 1056 
     | 
    
         
            +
                m49_214 = "214"  # Dominican Republic
         
     | 
| 
      
 1057 
     | 
    
         
            +
                m49_308 = "308"  # Grenada
         
     | 
| 
      
 1058 
     | 
    
         
            +
                m49_312 = "312"  # Guadeloupe
         
     | 
| 
      
 1059 
     | 
    
         
            +
                m49_332 = "332"  # Haiti
         
     | 
| 
      
 1060 
     | 
    
         
            +
                m49_388 = "388"  # Jamaica
         
     | 
| 
      
 1061 
     | 
    
         
            +
                m49_474 = "474"  # Martinique
         
     | 
| 
      
 1062 
     | 
    
         
            +
                m49_500 = "500"  # Montserrat
         
     | 
| 
      
 1063 
     | 
    
         
            +
                m49_630 = "630"  # Puerto Rico
         
     | 
| 
      
 1064 
     | 
    
         
            +
                m49_652 = "652"  # Saint Barthélemy
         
     | 
| 
      
 1065 
     | 
    
         
            +
                m49_659 = "659"  # Saint Kitts and Nevis
         
     | 
| 
      
 1066 
     | 
    
         
            +
                m49_662 = "662"  # Saint Lucia
         
     | 
| 
      
 1067 
     | 
    
         
            +
                m49_663 = "663"  # Saint Martin (French Part)
         
     | 
| 
      
 1068 
     | 
    
         
            +
                m49_670 = "670"  # Saint Vincent and the Grenadines
         
     | 
| 
      
 1069 
     | 
    
         
            +
                m49_534 = "534"  # Sint Maarten (Dutch part)
         
     | 
| 
      
 1070 
     | 
    
         
            +
                m49_780 = "780"  # Trinidad and Tobago
         
     | 
| 
      
 1071 
     | 
    
         
            +
                m49_796 = "796"  # Turks and Caicos Islands
         
     | 
| 
      
 1072 
     | 
    
         
            +
                m49_850 = "850"  # United States Virgin Islands
         
     | 
| 
      
 1073 
     | 
    
         
            +
                m49_084 = "084"  # Belize
         
     | 
| 
      
 1074 
     | 
    
         
            +
                m49_188 = "188"  # Costa Rica
         
     | 
| 
      
 1075 
     | 
    
         
            +
                m49_222 = "222"  # El Salvador
         
     | 
| 
      
 1076 
     | 
    
         
            +
                m49_320 = "320"  # Guatemala
         
     | 
| 
      
 1077 
     | 
    
         
            +
                m49_340 = "340"  # Honduras
         
     | 
| 
      
 1078 
     | 
    
         
            +
                m49_484 = "484"  # Mexico
         
     | 
| 
      
 1079 
     | 
    
         
            +
                m49_558 = "558"  # Nicaragua
         
     | 
| 
      
 1080 
     | 
    
         
            +
                m49_591 = "591"  # Panama
         
     | 
| 
      
 1081 
     | 
    
         
            +
                m49_032 = "032"  # Argentina
         
     | 
| 
      
 1082 
     | 
    
         
            +
                m49_068 = "068"  # Bolivia (Plurinational State of)
         
     | 
| 
      
 1083 
     | 
    
         
            +
                m49_074 = "074"  # Bouvet Island
         
     | 
| 
      
 1084 
     | 
    
         
            +
                m49_076 = "076"  # Brazil
         
     | 
| 
      
 1085 
     | 
    
         
            +
                m49_152 = "152"  # Chile
         
     | 
| 
      
 1086 
     | 
    
         
            +
                m49_170 = "170"  # Colombia
         
     | 
| 
      
 1087 
     | 
    
         
            +
                m49_218 = "218"  # Ecuador
         
     | 
| 
      
 1088 
     | 
    
         
            +
                m49_238 = "238"  # Falkland Islands (Malvinas)
         
     | 
| 
      
 1089 
     | 
    
         
            +
                m49_254 = "254"  # French Guiana
         
     | 
| 
      
 1090 
     | 
    
         
            +
                m49_328 = "328"  # Guyana
         
     | 
| 
      
 1091 
     | 
    
         
            +
                m49_600 = "600"  # Paraguay
         
     | 
| 
      
 1092 
     | 
    
         
            +
                m49_604 = "604"  # Peru
         
     | 
| 
      
 1093 
     | 
    
         
            +
                m49_239 = "239"  # South Georgia and the South Sandwich Islands
         
     | 
| 
      
 1094 
     | 
    
         
            +
                m49_740 = "740"  # Suriname
         
     | 
| 
      
 1095 
     | 
    
         
            +
                m49_858 = "858"  # Uruguay
         
     | 
| 
      
 1096 
     | 
    
         
            +
                m49_862 = "862"  # Venezuela (Bolivarian Republic of)
         
     | 
| 
      
 1097 
     | 
    
         
            +
                m49_060 = "060"  # Bermuda
         
     | 
| 
      
 1098 
     | 
    
         
            +
                m49_124 = "124"  # Canada
         
     | 
| 
      
 1099 
     | 
    
         
            +
                m49_304 = "304"  # Greenland
         
     | 
| 
      
 1100 
     | 
    
         
            +
                m49_666 = "666"  # Saint Pierre and Miquelon
         
     | 
| 
      
 1101 
     | 
    
         
            +
                m49_840 = "840"  # United States of America
         
     | 
| 
      
 1102 
     | 
    
         
            +
                m49_010 = "010"  # Antarctica
         
     | 
| 
      
 1103 
     | 
    
         
            +
                m49_398 = "398"  # Kazakhstan
         
     | 
| 
      
 1104 
     | 
    
         
            +
                m49_417 = "417"  # Kyrgyzstan
         
     | 
| 
      
 1105 
     | 
    
         
            +
                m49_762 = "762"  # Tajikistan
         
     | 
| 
      
 1106 
     | 
    
         
            +
                m49_795 = "795"  # Turkmenistan
         
     | 
| 
      
 1107 
     | 
    
         
            +
                m49_860 = "860"  # Uzbekistan
         
     | 
| 
      
 1108 
     | 
    
         
            +
                m49_156 = "156"  # China
         
     | 
| 
      
 1109 
     | 
    
         
            +
                m49_344 = "344"  # China, Hong Kong Special Administrative Region
         
     | 
| 
      
 1110 
     | 
    
         
            +
                m49_446 = "446"  # China, Macao Special Administrative Region
         
     | 
| 
      
 1111 
     | 
    
         
            +
                m49_408 = "408"  # Democratic People's Republic of Korea
         
     | 
| 
      
 1112 
     | 
    
         
            +
                m49_392 = "392"  # Japan
         
     | 
| 
      
 1113 
     | 
    
         
            +
                m49_496 = "496"  # Mongolia
         
     | 
| 
      
 1114 
     | 
    
         
            +
                m49_410 = "410"  # Republic of Korea
         
     | 
| 
      
 1115 
     | 
    
         
            +
                m49_096 = "096"  # Brunei Darussalam
         
     | 
| 
      
 1116 
     | 
    
         
            +
                m49_116 = "116"  # Cambodia
         
     | 
| 
      
 1117 
     | 
    
         
            +
                m49_360 = "360"  # Indonesia
         
     | 
| 
      
 1118 
     | 
    
         
            +
                m49_418 = "418"  # Lao People's Democratic Republic
         
     | 
| 
      
 1119 
     | 
    
         
            +
                m49_458 = "458"  # Malaysia
         
     | 
| 
      
 1120 
     | 
    
         
            +
                m49_104 = "104"  # Myanmar
         
     | 
| 
      
 1121 
     | 
    
         
            +
                m49_608 = "608"  # Philippines
         
     | 
| 
      
 1122 
     | 
    
         
            +
                m49_702 = "702"  # Singapore
         
     | 
| 
      
 1123 
     | 
    
         
            +
                m49_764 = "764"  # Thailand
         
     | 
| 
      
 1124 
     | 
    
         
            +
                m49_626 = "626"  # Timor-Leste
         
     | 
| 
      
 1125 
     | 
    
         
            +
                m49_704 = "704"  # Viet Nam
         
     | 
| 
      
 1126 
     | 
    
         
            +
                m49_004 = "004"  # Afghanistan
         
     | 
| 
      
 1127 
     | 
    
         
            +
                m49_050 = "050"  # Bangladesh
         
     | 
| 
      
 1128 
     | 
    
         
            +
                m49_064 = "064"  # Bhutan
         
     | 
| 
      
 1129 
     | 
    
         
            +
                m49_356 = "356"  # India
         
     | 
| 
      
 1130 
     | 
    
         
            +
                m49_364 = "364"  # Iran (Islamic Republic of)
         
     | 
| 
      
 1131 
     | 
    
         
            +
                m49_462 = "462"  # Maldives
         
     | 
| 
      
 1132 
     | 
    
         
            +
                m49_524 = "524"  # Nepal
         
     | 
| 
      
 1133 
     | 
    
         
            +
                m49_586 = "586"  # Pakistan
         
     | 
| 
      
 1134 
     | 
    
         
            +
                m49_144 = "144"  # Sri Lanka
         
     | 
| 
      
 1135 
     | 
    
         
            +
                m49_051 = "051"  # Armenia
         
     | 
| 
      
 1136 
     | 
    
         
            +
                m49_031 = "031"  # Azerbaijan
         
     | 
| 
      
 1137 
     | 
    
         
            +
                m49_048 = "048"  # Bahrain
         
     | 
| 
      
 1138 
     | 
    
         
            +
                m49_196 = "196"  # Cyprus
         
     | 
| 
      
 1139 
     | 
    
         
            +
                m49_268 = "268"  # Georgia
         
     | 
| 
      
 1140 
     | 
    
         
            +
                m49_368 = "368"  # Iraq
         
     | 
| 
      
 1141 
     | 
    
         
            +
                m49_376 = "376"  # Israel
         
     | 
| 
      
 1142 
     | 
    
         
            +
                m49_400 = "400"  # Jordan
         
     | 
| 
      
 1143 
     | 
    
         
            +
                m49_414 = "414"  # Kuwait
         
     | 
| 
      
 1144 
     | 
    
         
            +
                m49_422 = "422"  # Lebanon
         
     | 
| 
      
 1145 
     | 
    
         
            +
                m49_512 = "512"  # Oman
         
     | 
| 
      
 1146 
     | 
    
         
            +
                m49_634 = "634"  # Qatar
         
     | 
| 
      
 1147 
     | 
    
         
            +
                m49_682 = "682"  # Saudi Arabia
         
     | 
| 
      
 1148 
     | 
    
         
            +
                m49_275 = "275"  # State of Palestine
         
     | 
| 
      
 1149 
     | 
    
         
            +
                m49_760 = "760"  # Syrian Arab Republic
         
     | 
| 
      
 1150 
     | 
    
         
            +
                m49_792 = "792"  # Türkiye
         
     | 
| 
      
 1151 
     | 
    
         
            +
                m49_784 = "784"  # United Arab Emirates
         
     | 
| 
      
 1152 
     | 
    
         
            +
                m49_887 = "887"  # Yemen
         
     | 
| 
      
 1153 
     | 
    
         
            +
                m49_112 = "112"  # Belarus
         
     | 
| 
      
 1154 
     | 
    
         
            +
                m49_100 = "100"  # Bulgaria
         
     | 
| 
      
 1155 
     | 
    
         
            +
                m49_203 = "203"  # Czechia
         
     | 
| 
      
 1156 
     | 
    
         
            +
                m49_348 = "348"  # Hungary
         
     | 
| 
      
 1157 
     | 
    
         
            +
                m49_616 = "616"  # Poland
         
     | 
| 
      
 1158 
     | 
    
         
            +
                m49_498 = "498"  # Republic of Moldova
         
     | 
| 
      
 1159 
     | 
    
         
            +
                m49_642 = "642"  # Romania
         
     | 
| 
      
 1160 
     | 
    
         
            +
                m49_643 = "643"  # Russian Federation
         
     | 
| 
      
 1161 
     | 
    
         
            +
                m49_703 = "703"  # Slovakia
         
     | 
| 
      
 1162 
     | 
    
         
            +
                m49_804 = "804"  # Ukraine
         
     | 
| 
      
 1163 
     | 
    
         
            +
                m49_248 = "248"  # Åland Islands
         
     | 
| 
      
 1164 
     | 
    
         
            +
                m49_208 = "208"  # Denmark
         
     | 
| 
      
 1165 
     | 
    
         
            +
                m49_233 = "233"  # Estonia
         
     | 
| 
      
 1166 
     | 
    
         
            +
                m49_234 = "234"  # Faroe Islands
         
     | 
| 
      
 1167 
     | 
    
         
            +
                m49_246 = "246"  # Finland
         
     | 
| 
      
 1168 
     | 
    
         
            +
                m49_831 = "831"  # Guernsey
         
     | 
| 
      
 1169 
     | 
    
         
            +
                m49_352 = "352"  # Iceland
         
     | 
| 
      
 1170 
     | 
    
         
            +
                m49_372 = "372"  # Ireland
         
     | 
| 
      
 1171 
     | 
    
         
            +
                m49_833 = "833"  # Isle of Man
         
     | 
| 
      
 1172 
     | 
    
         
            +
                m49_832 = "832"  # Jersey
         
     | 
| 
      
 1173 
     | 
    
         
            +
                m49_428 = "428"  # Latvia
         
     | 
| 
      
 1174 
     | 
    
         
            +
                m49_440 = "440"  # Lithuania
         
     | 
| 
      
 1175 
     | 
    
         
            +
                m49_578 = "578"  # Norway
         
     | 
| 
      
 1176 
     | 
    
         
            +
                m49_744 = "744"  # Svalbard and Jan Mayen Islands
         
     | 
| 
      
 1177 
     | 
    
         
            +
                m49_752 = "752"  # Sweden
         
     | 
| 
      
 1178 
     | 
    
         
            +
                m49_826 = "826"  # United Kingdom of Great Britain and Northern Ireland
         
     | 
| 
      
 1179 
     | 
    
         
            +
                m49_008 = "008"  # Albania
         
     | 
| 
      
 1180 
     | 
    
         
            +
                m49_020 = "020"  # Andorra
         
     | 
| 
      
 1181 
     | 
    
         
            +
                m49_070 = "070"  # Bosnia and Herzegovina
         
     | 
| 
      
 1182 
     | 
    
         
            +
                m49_191 = "191"  # Croatia
         
     | 
| 
      
 1183 
     | 
    
         
            +
                m49_292 = "292"  # Gibraltar
         
     | 
| 
      
 1184 
     | 
    
         
            +
                m49_300 = "300"  # Greece
         
     | 
| 
      
 1185 
     | 
    
         
            +
                m49_336 = "336"  # Holy See
         
     | 
| 
      
 1186 
     | 
    
         
            +
                m49_380 = "380"  # Italy
         
     | 
| 
      
 1187 
     | 
    
         
            +
                m49_470 = "470"  # Malta
         
     | 
| 
      
 1188 
     | 
    
         
            +
                m49_499 = "499"  # Montenegro
         
     | 
| 
      
 1189 
     | 
    
         
            +
                m49_807 = "807"  # North Macedonia
         
     | 
| 
      
 1190 
     | 
    
         
            +
                m49_620 = "620"  # Portugal
         
     | 
| 
      
 1191 
     | 
    
         
            +
                m49_674 = "674"  # San Marino
         
     | 
| 
      
 1192 
     | 
    
         
            +
                m49_688 = "688"  # Serbia
         
     | 
| 
      
 1193 
     | 
    
         
            +
                m49_705 = "705"  # Slovenia
         
     | 
| 
      
 1194 
     | 
    
         
            +
                m49_724 = "724"  # Spain
         
     | 
| 
      
 1195 
     | 
    
         
            +
                m49_040 = "040"  # Austria
         
     | 
| 
      
 1196 
     | 
    
         
            +
                m49_056 = "056"  # Belgium
         
     | 
| 
      
 1197 
     | 
    
         
            +
                m49_250 = "250"  # France
         
     | 
| 
      
 1198 
     | 
    
         
            +
                m49_276 = "276"  # Germany
         
     | 
| 
      
 1199 
     | 
    
         
            +
                m49_438 = "438"  # Liechtenstein
         
     | 
| 
      
 1200 
     | 
    
         
            +
                m49_442 = "442"  # Luxembourg
         
     | 
| 
      
 1201 
     | 
    
         
            +
                m49_492 = "492"  # Monaco
         
     | 
| 
      
 1202 
     | 
    
         
            +
                m49_528 = "528"  # Netherlands (Kingdom of the)
         
     | 
| 
      
 1203 
     | 
    
         
            +
                m49_756 = "756"  # Switzerland
         
     | 
| 
      
 1204 
     | 
    
         
            +
                m49_036 = "036"  # Australia
         
     | 
| 
      
 1205 
     | 
    
         
            +
                m49_162 = "162"  # Christmas Island
         
     | 
| 
      
 1206 
     | 
    
         
            +
                m49_166 = "166"  # Cocos (Keeling) Islands
         
     | 
| 
      
 1207 
     | 
    
         
            +
                m49_334 = "334"  # Heard Island and McDonald Islands
         
     | 
| 
      
 1208 
     | 
    
         
            +
                m49_554 = "554"  # New Zealand
         
     | 
| 
      
 1209 
     | 
    
         
            +
                m49_574 = "574"  # Norfolk Island
         
     | 
| 
      
 1210 
     | 
    
         
            +
                m49_242 = "242"  # Fiji
         
     | 
| 
      
 1211 
     | 
    
         
            +
                m49_540 = "540"  # New Caledonia
         
     | 
| 
      
 1212 
     | 
    
         
            +
                m49_598 = "598"  # Papua New Guinea
         
     | 
| 
      
 1213 
     | 
    
         
            +
                m49_090 = "090"  # Solomon Islands
         
     | 
| 
      
 1214 
     | 
    
         
            +
                m49_548 = "548"  # Vanuatu
         
     | 
| 
      
 1215 
     | 
    
         
            +
                m49_316 = "316"  # Guam
         
     | 
| 
      
 1216 
     | 
    
         
            +
                m49_296 = "296"  # Kiribati
         
     | 
| 
      
 1217 
     | 
    
         
            +
                m49_584 = "584"  # Marshall Islands
         
     | 
| 
      
 1218 
     | 
    
         
            +
                m49_583 = "583"  # Micronesia (Federated States of)
         
     | 
| 
      
 1219 
     | 
    
         
            +
                m49_520 = "520"  # Nauru
         
     | 
| 
      
 1220 
     | 
    
         
            +
                m49_580 = "580"  # Northern Mariana Islands
         
     | 
| 
      
 1221 
     | 
    
         
            +
                m49_585 = "585"  # Palau
         
     | 
| 
      
 1222 
     | 
    
         
            +
                m49_581 = "581"  # United States Minor Outlying Islands
         
     | 
| 
      
 1223 
     | 
    
         
            +
                m49_016 = "016"  # American Samoa
         
     | 
| 
      
 1224 
     | 
    
         
            +
                m49_184 = "184"  # Cook Islands
         
     | 
| 
      
 1225 
     | 
    
         
            +
                m49_258 = "258"  # French Polynesia
         
     | 
| 
      
 1226 
     | 
    
         
            +
                m49_570 = "570"  # Niue
         
     | 
| 
      
 1227 
     | 
    
         
            +
                m49_612 = "612"  # Pitcairn
         
     | 
| 
      
 1228 
     | 
    
         
            +
                m49_882 = "882"  # Samoa
         
     | 
| 
      
 1229 
     | 
    
         
            +
                m49_772 = "772"  # Tokelau
         
     | 
| 
      
 1230 
     | 
    
         
            +
                m49_776 = "776"  # Tonga
         
     | 
| 
      
 1231 
     | 
    
         
            +
                m49_798 = "798"  # Tuvalu
         
     | 
| 
      
 1232 
     | 
    
         
            +
                m49_876 = "876"  # Wallis and Futuna Islands
         
     | 
| 
       1231 
1233 
     | 
    
         | 
| 
       1232 
1234 
     | 
    
         | 
| 
       1233 
1235 
     | 
    
         
             
            class Country(StrEnum):
         
     | 
| 
         @@ -0,0 +1,98 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #
         
     | 
| 
      
 2 
     | 
    
         
            +
            #  Copyright 2024 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 
     | 
    
         
            +
            from openepd.compat.pydantic import pyd
         
     | 
| 
      
 17 
     | 
    
         
            +
            from openepd.model.base import BaseDocumentFactory, OpenEpdDoctypes
         
     | 
| 
      
 18 
     | 
    
         
            +
            from openepd.model.common import WithAltIdsMixin, WithAttachmentsMixin
         
     | 
| 
      
 19 
     | 
    
         
            +
            from openepd.model.declaration import (
         
     | 
| 
      
 20 
     | 
    
         
            +
                AverageDatasetMixin,
         
     | 
| 
      
 21 
     | 
    
         
            +
                BaseDeclaration,
         
     | 
| 
      
 22 
     | 
    
         
            +
                RefBase,
         
     | 
| 
      
 23 
     | 
    
         
            +
                WithEpdDeveloperMixin,
         
     | 
| 
      
 24 
     | 
    
         
            +
                WithProgramOperatorMixin,
         
     | 
| 
      
 25 
     | 
    
         
            +
                WithVerifierMixin,
         
     | 
| 
      
 26 
     | 
    
         
            +
            )
         
     | 
| 
      
 27 
     | 
    
         
            +
            from openepd.model.lcia import WithLciaMixin
         
     | 
| 
      
 28 
     | 
    
         
            +
            from openepd.model.org import Org
         
     | 
| 
      
 29 
     | 
    
         
            +
            from openepd.model.versioning import OpenEpdVersions, Version
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            class IndustryEpdRef(RefBase, title="Industry EPD (Ref)"):
         
     | 
| 
      
 33 
     | 
    
         
            +
                """Reference (short) version of Industry average EPD object."""
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            class IndustryEpdPreviewV0(
         
     | 
| 
      
 37 
     | 
    
         
            +
                WithAttachmentsMixin,
         
     | 
| 
      
 38 
     | 
    
         
            +
                AverageDatasetMixin,
         
     | 
| 
      
 39 
     | 
    
         
            +
                WithEpdDeveloperMixin,
         
     | 
| 
      
 40 
     | 
    
         
            +
                WithVerifierMixin,
         
     | 
| 
      
 41 
     | 
    
         
            +
                WithProgramOperatorMixin,
         
     | 
| 
      
 42 
     | 
    
         
            +
                IndustryEpdRef,
         
     | 
| 
      
 43 
     | 
    
         
            +
                BaseDeclaration,
         
     | 
| 
      
 44 
     | 
    
         
            +
                title="Industry EPD (preview)",
         
     | 
| 
      
 45 
     | 
    
         
            +
            ):
         
     | 
| 
      
 46 
     | 
    
         
            +
                """
         
     | 
| 
      
 47 
     | 
    
         
            +
                Industry EPD Preview object.
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                Used in lists and other cases where full LCIA data is not required.
         
     | 
| 
      
 50 
     | 
    
         
            +
                """
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                doctype: str = pyd.Field(
         
     | 
| 
      
 53 
     | 
    
         
            +
                    description='Describes the type and schema of the document. Must always be "openIndustryEpd"',
         
     | 
| 
      
 54 
     | 
    
         
            +
                    default="openIndustryEpd",
         
     | 
| 
      
 55 
     | 
    
         
            +
                )
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                publishers: list[Org] | None = pyd.Field(description="")
         
     | 
| 
      
 58 
     | 
    
         
            +
                manufacturers: list[Org] | None = pyd.Field(description="Participating manufacturers")
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            IndustryEpdPreview = IndustryEpdPreviewV0
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
            class IndustryEpdV0(IndustryEpdPreviewV0, WithLciaMixin, WithAltIdsMixin, title="Industry EPD (Full)"):
         
     | 
| 
      
 65 
     | 
    
         
            +
                """
         
     | 
| 
      
 66 
     | 
    
         
            +
                Full Industry EPD object.
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                This is considered the most complete valid openEPD object for IndustryEpd. In addition to it, several related
         
     | 
| 
      
 69 
     | 
    
         
            +
                models are defined, either with fewer fields (to be used in APIs for list requests) or with more relaxed structure
         
     | 
| 
      
 70 
     | 
    
         
            +
                to support related entities matching.
         
     | 
| 
      
 71 
     | 
    
         
            +
                """
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                _FORMAT_VERSION = OpenEpdVersions.Version0.as_str()
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
            IndustryEpd = IndustryEpdV0
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
            class IndustryEpdWithDepsV0(IndustryEpdV0, title="Industry EPD (with Dependencies)"):
         
     | 
| 
      
 80 
     | 
    
         
            +
                """
         
     | 
| 
      
 81 
     | 
    
         
            +
                Expanded version of the IndustryEpd.
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
                Contains related entities - orgs - with full fields, to support object matching in implementations.
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
                For now the implementation matches the above Industry Epd entity, but they will diverge as normal GE would have
         
     | 
| 
      
 86 
     | 
    
         
            +
                some required fields in Org (like web_domain), and WithDeps would not.
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
                """
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
            IndustryEpdWithDeps = IndustryEpdWithDepsV0
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
            class IndustryEpdFactory(BaseDocumentFactory[IndustryEpd]):
         
     | 
| 
      
 95 
     | 
    
         
            +
                """Factory for EPD objects."""
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
                DOCTYPE_CONSTRAINT = OpenEpdDoctypes.IndustryEpd
         
     | 
| 
      
 98 
     | 
    
         
            +
                VERSION_MAP: dict[Version, type[IndustryEpd]] = {OpenEpdVersions.Version0: IndustryEpdV0}
         
     | 
| 
         @@ -16,6 +16,7 @@ 
     | 
|
| 
       16 
16 
     | 
    
         
             
            from openepd.compat.pydantic import pyd
         
     | 
| 
       17 
17 
     | 
    
         
             
            from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
         
     | 
| 
       18 
18 
     | 
    
         
             
            from openepd.model.specs.generated.enums import CableTraysMaterial, EnergySource, RacewaysMaterial
         
     | 
| 
      
 19 
     | 
    
         
            +
            from openepd.model.specs.generated.mixins.conduit_mixin import ConduitMixin
         
     | 
| 
       19 
20 
     | 
    
         
             
            from openepd.model.validation.quantity import (
         
     | 
| 
       20 
21 
     | 
    
         
             
                ColorTemperatureStr,
         
     | 
| 
       21 
22 
     | 
    
         
             
                LengthMmStr,
         
     | 
| 
         @@ -290,10 +291,10 @@ class LightingV1(BaseOpenEpdHierarchicalSpec): 
     | 
|
| 
       290 
291 
     | 
    
         
             
                TaskLighting: TaskLightingV1 | None = None
         
     | 
| 
       291 
292 
     | 
    
         | 
| 
       292 
293 
     | 
    
         | 
| 
       293 
     | 
    
         
            -
            class ElectricalConduitV1(BaseOpenEpdHierarchicalSpec):
         
     | 
| 
      
 294 
     | 
    
         
            +
            class ElectricalConduitV1(BaseOpenEpdHierarchicalSpec, ConduitMixin):
         
     | 
| 
       294 
295 
     | 
    
         
             
                """Tubing used to protect and route electrical wiring in a building or structure."""
         
     | 
| 
       295 
296 
     | 
    
         | 
| 
       296 
     | 
    
         
            -
                _EXT_VERSION = "1. 
     | 
| 
      
 297 
     | 
    
         
            +
                _EXT_VERSION = "1.1"
         
     | 
| 
       297 
298 
     | 
    
         | 
| 
       298 
299 
     | 
    
         | 
| 
       299 
300 
     | 
    
         
             
            class ElectricalV1(BaseOpenEpdHierarchicalSpec):
         
     | 
| 
         @@ -2491,3 +2491,27 @@ class PlasterComposition(StrEnum): 
     | 
|
| 
       2491 
2491 
     | 
    
         
             
                ACRYLIC = "Acrylic"
         
     | 
| 
       2492 
2492 
     | 
    
         
             
                LIME = "Lime"
         
     | 
| 
       2493 
2493 
     | 
    
         
             
                OTHER = "Other"
         
     | 
| 
      
 2494 
     | 
    
         
            +
             
     | 
| 
      
 2495 
     | 
    
         
            +
             
     | 
| 
      
 2496 
     | 
    
         
            +
            class ConduitMaterial(StrEnum):
         
     | 
| 
      
 2497 
     | 
    
         
            +
                """
         
     | 
| 
      
 2498 
     | 
    
         
            +
                Material of the conduit.
         
     | 
| 
      
 2499 
     | 
    
         
            +
             
     | 
| 
      
 2500 
     | 
    
         
            +
                - PVC: Polyvinyl chloride piping
         
     | 
| 
      
 2501 
     | 
    
         
            +
                - PEX: Cross-linked polethylene piping
         
     | 
| 
      
 2502 
     | 
    
         
            +
                - HDPE: High density polyethylene piping
         
     | 
| 
      
 2503 
     | 
    
         
            +
                - PP: Polypropylene
         
     | 
| 
      
 2504 
     | 
    
         
            +
                - Stainless Steel: Stainless steel conduit
         
     | 
| 
      
 2505 
     | 
    
         
            +
                - Galvanized Steel: Galvanized steel conduit
         
     | 
| 
      
 2506 
     | 
    
         
            +
                - Aluminum: Aluminum conduit
         
     | 
| 
      
 2507 
     | 
    
         
            +
                - Other: Other piping material
         
     | 
| 
      
 2508 
     | 
    
         
            +
                """
         
     | 
| 
      
 2509 
     | 
    
         
            +
             
     | 
| 
      
 2510 
     | 
    
         
            +
                PVC = "PVC"
         
     | 
| 
      
 2511 
     | 
    
         
            +
                PEX = "PEX"
         
     | 
| 
      
 2512 
     | 
    
         
            +
                HDPE = "HDPE"
         
     | 
| 
      
 2513 
     | 
    
         
            +
                PP = "PP"
         
     | 
| 
      
 2514 
     | 
    
         
            +
                STAINLESS_STEEL = "Stainless Steel"
         
     | 
| 
      
 2515 
     | 
    
         
            +
                GALVANIZED_STEEL = "Galvanized Steel"
         
     | 
| 
      
 2516 
     | 
    
         
            +
                ALUMINUM = "Aluminum"
         
     | 
| 
      
 2517 
     | 
    
         
            +
                OTHER = "Other"
         
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #
         
     | 
| 
      
 2 
     | 
    
         
            +
            #  Copyright 2024 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 
     | 
    
         
            +
            #
         
     | 
| 
         @@ -0,0 +1,50 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #
         
     | 
| 
      
 2 
     | 
    
         
            +
            #  Copyright 2024 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 
     | 
    
         
            +
            __all__ = ["ConduitMixin"]
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            from openepd.compat.pydantic import pyd
         
     | 
| 
      
 19 
     | 
    
         
            +
            from openepd.model.specs.base import BaseOpenEpdSpec
         
     | 
| 
      
 20 
     | 
    
         
            +
            from openepd.model.specs.generated.enums import ConduitMaterial
         
     | 
| 
      
 21 
     | 
    
         
            +
            from openepd.model.validation.quantity import LengthMmStr
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            class ConduitMixin(BaseOpenEpdSpec):
         
     | 
| 
      
 25 
     | 
    
         
            +
                """
         
     | 
| 
      
 26 
     | 
    
         
            +
                Properties of a conduit.
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                Those properties are the same for communication and electrical conduits.
         
     | 
| 
      
 29 
     | 
    
         
            +
                """
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                nominal_diameter: LengthMmStr | None = pyd.Field(
         
     | 
| 
      
 32 
     | 
    
         
            +
                    default=None,
         
     | 
| 
      
 33 
     | 
    
         
            +
                    description="Nominal Diameter is also known as the mean or average outside diameter.",
         
     | 
| 
      
 34 
     | 
    
         
            +
                    example="100 mm",
         
     | 
| 
      
 35 
     | 
    
         
            +
                )
         
     | 
| 
      
 36 
     | 
    
         
            +
                outer_diameter: LengthMmStr | None = pyd.Field(
         
     | 
| 
      
 37 
     | 
    
         
            +
                    default=None,
         
     | 
| 
      
 38 
     | 
    
         
            +
                    description="The measurement of the distance of a straight line between points on the outer walls of the pipe.",
         
     | 
| 
      
 39 
     | 
    
         
            +
                    example="100 mm",
         
     | 
| 
      
 40 
     | 
    
         
            +
                )
         
     | 
| 
      
 41 
     | 
    
         
            +
                inner_diameter: LengthMmStr | None = pyd.Field(
         
     | 
| 
      
 42 
     | 
    
         
            +
                    default=None,
         
     | 
| 
      
 43 
     | 
    
         
            +
                    description="The measurement of the distance of a straight line between points on the inner walls of the pipe.",
         
     | 
| 
      
 44 
     | 
    
         
            +
                    example="100 mm",
         
     | 
| 
      
 45 
     | 
    
         
            +
                )
         
     | 
| 
      
 46 
     | 
    
         
            +
                wall_thickness: LengthMmStr | None = pyd.Field(
         
     | 
| 
      
 47 
     | 
    
         
            +
                    default=None, description="Conduit wall thickness.", example="100 mm"
         
     | 
| 
      
 48 
     | 
    
         
            +
                )
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                material: ConduitMaterial | None = pyd.Field(default=None, description="Material of the conduit.", example="PVC")
         
     | 
| 
         @@ -27,6 +27,7 @@ from openepd.model.specs.generated.enums import ( 
     | 
|
| 
       27 
27 
     | 
    
         
             
                RacewaysMaterial,
         
     | 
| 
       28 
28 
     | 
    
         
             
                RackType,
         
     | 
| 
       29 
29 
     | 
    
         
             
            )
         
     | 
| 
      
 30 
     | 
    
         
            +
            from openepd.model.specs.generated.mixins.conduit_mixin import ConduitMixin
         
     | 
| 
       30 
31 
     | 
    
         
             
            from openepd.model.validation.quantity import ElectricalCurrentStr, LengthMmStr, MassKgStr, validate_unit_factory
         
     | 
| 
       31 
32 
     | 
    
         | 
| 
       32 
33 
     | 
    
         | 
| 
         @@ -166,10 +167,10 @@ class NetworkingRacewaysV1(BaseOpenEpdHierarchicalSpec): 
     | 
|
| 
       166 
167 
     | 
    
         
             
                raceways_material: RacewaysMaterial | None = pyd.Field(default=None, description="", example="Aluminum")
         
     | 
| 
       167 
168 
     | 
    
         | 
| 
       168 
169 
     | 
    
         | 
| 
       169 
     | 
    
         
            -
            class CommunicationsConduitV1(BaseOpenEpdHierarchicalSpec):
         
     | 
| 
      
 170 
     | 
    
         
            +
            class CommunicationsConduitV1(BaseOpenEpdHierarchicalSpec, ConduitMixin):
         
     | 
| 
       170 
171 
     | 
    
         
             
                """Tubing used to protect and route communications wiring in a building or structure."""
         
     | 
| 
       171 
172 
     | 
    
         | 
| 
       172 
     | 
    
         
            -
                _EXT_VERSION = "1. 
     | 
| 
      
 173 
     | 
    
         
            +
                _EXT_VERSION = "1.1"
         
     | 
| 
       173 
174 
     | 
    
         | 
| 
       174 
175 
     | 
    
         | 
| 
       175 
176 
     | 
    
         
             
            class NetworkInfrastructureV1(BaseOpenEpdHierarchicalSpec):
         
     | 
| 
         @@ -243,7 +243,10 @@ class SteelV1(BaseOpenEpdHierarchicalSpec): 
     | 
|
| 
       243 
243 
     | 
    
         | 
| 
       244 
244 
     | 
    
         
             
                # Own fields:
         
     | 
| 
       245 
245 
     | 
    
         
             
                yield_tensile_str: PressureMPaStr | None = pyd.Field(
         
     | 
| 
       246 
     | 
    
         
            -
                    default=None, 
     | 
| 
      
 246 
     | 
    
         
            +
                    default=None,
         
     | 
| 
      
 247 
     | 
    
         
            +
                    description="Yield Tensile strength (Mpa) per unit area. Yield strength is the point at which a material "
         
     | 
| 
      
 248 
     | 
    
         
            +
                    "begins to permanently deform or change shape due to applied stress.",
         
     | 
| 
      
 249 
     | 
    
         
            +
                    example="100 MPa",
         
     | 
| 
       247 
250 
     | 
    
         
             
                )
         
     | 
| 
       248 
251 
     | 
    
         
             
                bar_elongation: float | None = pyd.Field(
         
     | 
| 
       249 
252 
     | 
    
         
             
                    default=None, description="Increase in length at break, in percent. Typically 10%-20%", example=0.2
         
     | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            openepd/__init__.py,sha256=Shkfh0Kun0YRhmRDw7LkUj2eQL3X-HnP55u2THOEALw,794
         
     | 
| 
       2 
     | 
    
         
            -
            openepd/__version__.py,sha256= 
     | 
| 
      
 2 
     | 
    
         
            +
            openepd/__version__.py,sha256=v1iT7lM1VsfdI_pF-s9H_ZXF4x586x50rlNgWCMNKuA,639
         
     | 
| 
       3 
3 
     | 
    
         
             
            openepd/api/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
         
     | 
| 
       4 
4 
     | 
    
         
             
            openepd/api/base_sync_client.py,sha256=jviqtQgsOVdRq5x7_Yh_Tg8zIdWtVTIUqNCgebf6YDg,20925
         
     | 
| 
       5 
5 
     | 
    
         
             
            openepd/api/category/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
         
     | 
| 
         @@ -30,14 +30,15 @@ openepd/compat/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,62 
     | 
|
| 
       30 
30 
     | 
    
         
             
            openepd/compat/compat_functional_validators.py,sha256=yz6DfWeg7knBHEN_enpCGGTLRknEsecXfpzD1FDlywY,834
         
     | 
| 
       31 
31 
     | 
    
         
             
            openepd/compat/pydantic.py,sha256=DOjSixsylLqMtFAIARu50sGcT4VPXN_c473q_2JwZQ0,1146
         
     | 
| 
       32 
32 
     | 
    
         
             
            openepd/model/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
         
     | 
| 
       33 
     | 
    
         
            -
            openepd/model/base.py,sha256= 
     | 
| 
      
 33 
     | 
    
         
            +
            openepd/model/base.py,sha256=o6miTbb4d2BRQ6epN5Jn8mIMkAeoAucd_3op7aEMELc,9044
         
     | 
| 
       34 
34 
     | 
    
         
             
            openepd/model/category.py,sha256=IQXNGQFQmFZ_H9PRONloX_UOSf1sTMDq1rM1yz8JR0Y,1639
         
     | 
| 
       35 
35 
     | 
    
         
             
            openepd/model/common.py,sha256=aa_bfotPybPoYyzHtwj5E5X1T-fCEyznMfVUWvpUhiM,5460
         
     | 
| 
       36 
     | 
    
         
            -
            openepd/model/declaration.py,sha256= 
     | 
| 
       37 
     | 
    
         
            -
            openepd/model/epd.py,sha256= 
     | 
| 
       38 
     | 
    
         
            -
            openepd/model/factory.py,sha256= 
     | 
| 
       39 
     | 
    
         
            -
            openepd/model/generic_estimate.py,sha256= 
     | 
| 
       40 
     | 
    
         
            -
            openepd/model/geography.py,sha256= 
     | 
| 
      
 36 
     | 
    
         
            +
            openepd/model/declaration.py,sha256=zV1Xpv3a5jsQ62oN4Kg3gXFqsDpGr-9CncVwHB3ZugA,8578
         
     | 
| 
      
 37 
     | 
    
         
            +
            openepd/model/epd.py,sha256=RtUeDq1869JJe5fUu-aP31jl_HRAO21NXcLQvRYmQLs,9030
         
     | 
| 
      
 38 
     | 
    
         
            +
            openepd/model/factory.py,sha256=XP7eeQNW5tqwX_4hfuEb3lK6BFQDb4KB0fSN0r8-lCU,2656
         
     | 
| 
      
 39 
     | 
    
         
            +
            openepd/model/generic_estimate.py,sha256=xPZmzYzSrHLPSL_2evtAycQFOJAec_3fEPAKaxbppsM,4424
         
     | 
| 
      
 40 
     | 
    
         
            +
            openepd/model/geography.py,sha256=G3Oz3QBw5n-RiSCAv-vAGxrOZBhwIT5rASnPlo9dkcs,42095
         
     | 
| 
      
 41 
     | 
    
         
            +
            openepd/model/industry_epd.py,sha256=t6s9JrfHJVJo_egQt6RdyE9u3t8rZi32efM-MoaV8ag,3234
         
     | 
| 
       41 
42 
     | 
    
         
             
            openepd/model/lcia.py,sha256=sDZIxyggqHIISCUocgvIEgkmqPLGNSEA3-zUd7TEgsw,18430
         
     | 
| 
       42 
43 
     | 
    
         
             
            openepd/model/org.py,sha256=FHcYh2WOOQrCMyzm0Ow-iP79jMTBPcneidjH6NXIklA,3760
         
     | 
| 
       43 
44 
     | 
    
         
             
            openepd/model/pcr.py,sha256=SwqLWMj9k_jqIzxz5mh6ttqvtLCspKSpywF5YTBOMsA,5397
         
     | 
| 
         @@ -58,10 +59,10 @@ openepd/model/specs/generated/cmu.py,sha256=Vv-aiT4Q7Zl5XTkSCnTeGOpE_ufTy63zt2Z5 
     | 
|
| 
       58 
59 
     | 
    
         
             
            openepd/model/specs/generated/common.py,sha256=iNeJmVYZURVQWewx3zskwnwy7DBuaggCHFWQBThtY2A,1048
         
     | 
| 
       59 
60 
     | 
    
         
             
            openepd/model/specs/generated/concrete.py,sha256=wnR656XxF6b26aBP4TRijMJf5CdLUzbZtSLXsbE3Yxw,6987
         
     | 
| 
       60 
61 
     | 
    
         
             
            openepd/model/specs/generated/conveying_equipment.py,sha256=sQSnFccpTIw8sNGywW0KajE1lCHzbVBCISKyrYFW02U,3052
         
     | 
| 
       61 
     | 
    
         
            -
            openepd/model/specs/generated/electrical.py,sha256= 
     | 
| 
      
 62 
     | 
    
         
            +
            openepd/model/specs/generated/electrical.py,sha256=kM9lkNq4762VHUesWBPQ7P9RqMELxaaFH6yzZCEgUhA,11075
         
     | 
| 
       62 
63 
     | 
    
         
             
            openepd/model/specs/generated/electrical_transmission_and_distribution_equipment.py,sha256=h6UQixACOHrquhQ2GFqqYWel_zqOXT-vAkI0o_RLf0A,1978
         
     | 
| 
       63 
64 
     | 
    
         
             
            openepd/model/specs/generated/electricity.py,sha256=iGtN21K1MRVwoRfO6friVgiXc2b6cVdITbvnXqLmW3k,823
         
     | 
| 
       64 
     | 
    
         
            -
            openepd/model/specs/generated/enums.py,sha256= 
     | 
| 
      
 65 
     | 
    
         
            +
            openepd/model/specs/generated/enums.py,sha256=DD9eQbkSVkV4b8F10rn6_2k8Sn8H01mZmZX5aBnPtuc,61524
         
     | 
| 
       65 
66 
     | 
    
         
             
            openepd/model/specs/generated/finishes.py,sha256=Sq_jh3xnPlvLAiS6z7AIvWXIz31_bzW4SM_auXSxALE,22421
         
     | 
| 
       66 
67 
     | 
    
         
             
            openepd/model/specs/generated/fire_and_smoke_protection.py,sha256=zkOlnNCnAZ9MUWk2sDqUX14YxNEDU3MGfUlePG3su0Q,3068
         
     | 
| 
       67 
68 
     | 
    
         
             
            openepd/model/specs/generated/furnishings.py,sha256=QY_FDsFZaqjCiw2xHsD3kmyBGJA7jCHlSIvaw4TmqXI,2581
         
     | 
| 
         @@ -71,14 +72,16 @@ openepd/model/specs/generated/masonry.py,sha256=35yUySGoRCApdZSYWbCjZ_rTR7WRPssz 
     | 
|
| 
       71 
72 
     | 
    
         
             
            openepd/model/specs/generated/material_handling.py,sha256=hx8fisNcFw6GXC7uMfW-4wkGUS8xJA9gTk_WpZGHkqY,1274
         
     | 
| 
       72 
73 
     | 
    
         
             
            openepd/model/specs/generated/mechanical.py,sha256=qRKvOqRqn2DoyTCOnNwHClyoby0pa4YN8vXuE6CtY8A,9872
         
     | 
| 
       73 
74 
     | 
    
         
             
            openepd/model/specs/generated/mechanical_insulation.py,sha256=sbXTXT4xOOgvyDeLN4HZ3xCIwKkaPEjoQlRyCrq4tlM,1617
         
     | 
| 
       74 
     | 
    
         
            -
            openepd/model/specs/generated/ 
     | 
| 
      
 75 
     | 
    
         
            +
            openepd/model/specs/generated/mixins/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
         
     | 
| 
      
 76 
     | 
    
         
            +
            openepd/model/specs/generated/mixins/conduit_mixin.py,sha256=ONH8wZ19xqnIDH-mbRpa4m00LqkYVwdr6-tuSR7TgHE,1938
         
     | 
| 
      
 77 
     | 
    
         
            +
            openepd/model/specs/generated/network_infrastructure.py,sha256=k1sW_STLQZd9S-f687_KYeBLaPAnsCiyBxMeuvEycb4,8493
         
     | 
| 
       75 
78 
     | 
    
         
             
            openepd/model/specs/generated/openings.py,sha256=cpJr0Qk9FTLktM5hQAOsPBFL36CRP2sKpe_1v1EOVG4,18818
         
     | 
| 
       76 
79 
     | 
    
         
             
            openepd/model/specs/generated/other_electrical_equipment.py,sha256=HUOI_NfCXn_pmon0KEy11hBrILA5QYtpnme0YqWoEfk,814
         
     | 
| 
       77 
80 
     | 
    
         
             
            openepd/model/specs/generated/other_materials.py,sha256=ztaZHOr2HbiSpKdz4M1b2jsm_11fMDqZduEYWT1Q_rI,3498
         
     | 
| 
       78 
81 
     | 
    
         
             
            openepd/model/specs/generated/plumbing.py,sha256=2bd5K2V0BspEfymb_47nYzdP-6OpBgaRc4Oul8OS8jo,4578
         
     | 
| 
       79 
82 
     | 
    
         
             
            openepd/model/specs/generated/precast_concrete.py,sha256=Qwnm49sCXXmPoIckIUwldDvUq760FzTVaYnFOV6XOEY,7327
         
     | 
| 
       80 
83 
     | 
    
         
             
            openepd/model/specs/generated/sheathing.py,sha256=06Y9Dy7_9Iy3VfA6fQGr6AUq30u1K_4cIQOe36BCiOs,3636
         
     | 
| 
       81 
     | 
    
         
            -
            openepd/model/specs/generated/steel.py,sha256= 
     | 
| 
      
 84 
     | 
    
         
            +
            openepd/model/specs/generated/steel.py,sha256=k-zb_3DkS6SOY4B9nqRGLnVOrc69PttOPZjrDnqR9eM,10046
         
     | 
| 
       82 
85 
     | 
    
         
             
            openepd/model/specs/generated/thermal_moisture_protection.py,sha256=px1GPZyumr1w0r0ikKO1FefHNK66cxYp1PpmZvpTzPU,8205
         
     | 
| 
       83 
86 
     | 
    
         
             
            openepd/model/specs/generated/utility_piping.py,sha256=X0cHq5kQP41RH1iGWrkwUdFX0PI4V00WzxH9BA-i7SY,2493
         
     | 
| 
       84 
87 
     | 
    
         
             
            openepd/model/specs/generated/wood.py,sha256=RMNoPRS9K3XF2aXCbvRN3awpO23_5ugYhRCrnvCvI20,6341
         
     | 
| 
         @@ -91,7 +94,7 @@ openepd/model/validation/quantity.py,sha256=kzug0MZ3Ao0zeVzN-aleyxUg5hA_7D5tNOOe 
     | 
|
| 
       91 
94 
     | 
    
         
             
            openepd/model/versioning.py,sha256=R_zm6rCrgF3vlJQYbpyWhirdS_Oek16cv_mvZmpuE8I,4473
         
     | 
| 
       92 
95 
     | 
    
         
             
            openepd/patch_pydantic.py,sha256=xrkzblatmU9HBzukWkp1cPq9ZSuohoz1p0pQqVKSlKs,4122
         
     | 
| 
       93 
96 
     | 
    
         
             
            openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         
     | 
| 
       94 
     | 
    
         
            -
            openepd-4. 
     | 
| 
       95 
     | 
    
         
            -
            openepd-4. 
     | 
| 
       96 
     | 
    
         
            -
            openepd-4. 
     | 
| 
       97 
     | 
    
         
            -
            openepd-4. 
     | 
| 
      
 97 
     | 
    
         
            +
            openepd-4.10.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
         
     | 
| 
      
 98 
     | 
    
         
            +
            openepd-4.10.0.dist-info/METADATA,sha256=JFHSPXma_sUGfRJJjmbq_UJF6Cn_G8D-AmaSRErL3N4,8535
         
     | 
| 
      
 99 
     | 
    
         
            +
            openepd-4.10.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
         
     | 
| 
      
 100 
     | 
    
         
            +
            openepd-4.10.0.dist-info/RECORD,,
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     |