openepd 4.6.0__py3-none-any.whl → 4.6.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
openepd/__version__.py CHANGED
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- VERSION = "4.6.0"
16
+ VERSION = "4.6.1"
openepd/model/base.py CHANGED
@@ -16,7 +16,7 @@
16
16
  import abc
17
17
  from enum import StrEnum
18
18
  import json
19
- from typing import Any, Callable, Generic, Optional, Type, TypeAlias, TypeVar
19
+ from typing import Any, Callable, ClassVar, Generic, Optional, Type, TypeAlias, TypeVar
20
20
 
21
21
  from openepd.compat.pydantic import pyd, pyd_generics
22
22
  from openepd.model.validation.common import validate_version_compatibility, validate_version_format
@@ -177,7 +177,7 @@ TOpenEpdObjectClass = TypeVar("TOpenEpdObjectClass", bound=Type[BaseOpenEpdSchem
177
177
  class RootDocument(abc.ABC, BaseOpenEpdSchema):
178
178
  """Base class for all objects representing openEPD root element. E.g. Epd, IndustryEpd, GenericEstimate, etc."""
179
179
 
180
- _FORMAT_VERSION: str
180
+ _FORMAT_VERSION: ClassVar[str]
181
181
  """Version of this document format. Must be defined in the concrete class."""
182
182
 
183
183
  doctype: str = pyd.Field(
openepd/model/epd.py CHANGED
@@ -20,7 +20,7 @@ from openepd.model.base import BaseDocumentFactory, OpenEpdDoctypes
20
20
  from openepd.model.common import Amount, Ingredient, WithAltIdsMixin, WithAttachmentsMixin
21
21
  from openepd.model.declaration import BaseDeclaration
22
22
  from openepd.model.lcia import WithLciaMixin
23
- from openepd.model.org import Org, OrgRef, Plant
23
+ from openepd.model.org import Org, Plant
24
24
  from openepd.model.specs import Specs
25
25
  from openepd.model.versioning import OpenEpdVersions, Version
26
26
 
@@ -66,8 +66,8 @@ class EpdPreviewV0(WithAttachmentsMixin, WithAltIdsMixin, BaseDeclaration, title
66
66
  description="Link to data object on original registrar's site",
67
67
  example="https://epd-online.com/EmbeddedEpdList/Download/6029",
68
68
  )
69
- manufacturer: OrgRef | None = pyd.Field(description=MANUFACTURER_DESCRIPTION)
70
- epd_developer: OrgRef | None = pyd.Field(
69
+ manufacturer: Org | None = pyd.Field(description=MANUFACTURER_DESCRIPTION)
70
+ epd_developer: Org | None = pyd.Field(
71
71
  description=DEVELOPER_DESCRIPTION,
72
72
  default=None,
73
73
  )
@@ -82,14 +82,14 @@ class EpdPreviewV0(WithAttachmentsMixin, WithAltIdsMixin, BaseDeclaration, title
82
82
  description="List of object(s) for one or more plant(s) that this declaration applies to.",
83
83
  default_factory=list,
84
84
  )
85
- program_operator: OrgRef | None = pyd.Field(description=PROGRAM_OPERATOR_DESCRIPTION)
85
+ program_operator: Org | None = pyd.Field(description=PROGRAM_OPERATOR_DESCRIPTION)
86
86
  program_operator_doc_id: str | None = pyd.Field(
87
87
  max_length=200, description="Document identifier from Program Operator.", example="123-456.789/b"
88
88
  )
89
89
  program_operator_version: str | None = pyd.Field(
90
90
  max_length=200, description="Document version number from Program Operator.", example="4.3.0"
91
91
  )
92
- third_party_verifier: OrgRef | None = pyd.Field(description=THIRD_PARTY_VERIFIER_DESCRIPTION)
92
+ third_party_verifier: Org | None = pyd.Field(description=THIRD_PARTY_VERIFIER_DESCRIPTION)
93
93
  third_party_verification_url: pyd.AnyUrl | None = pyd.Field(
94
94
  description="Optional link to a verification statement.",
95
95
  example="https://we-verify-epds.com/en/letters/123-456.789b.pdf",
@@ -204,6 +204,8 @@ class EpdWithDepsV0(EpdV0, title="EPD (with Dependencies)"):
204
204
  Expanded version of the EPD.
205
205
 
206
206
  Contains related entities - orgs - with full fields, to support object matching in implementations.
207
+ For now the implementation matches the above EpdV0 entity, but they will diverge as normal Epd would have
208
+ some required fields in Org (like web_domain), and WithDeps would not.
207
209
  """
208
210
 
209
211
  manufacturer: Org | None = pyd.Field(description=MANUFACTURER_DESCRIPTION)
@@ -21,7 +21,7 @@ from openepd.model.common import WithAltIdsMixin, WithAttachmentsMixin
21
21
  from openepd.model.declaration import BaseDeclaration
22
22
  from openepd.model.geography import Geography
23
23
  from openepd.model.lcia import WithLciaMixin
24
- from openepd.model.org import Org, OrgRef
24
+ from openepd.model.org import Org
25
25
  from openepd.model.versioning import OpenEpdVersions, Version
26
26
 
27
27
 
@@ -65,11 +65,11 @@ class GenericEstimatePreviewV0(WithAttachmentsMixin, BaseDeclaration, title="Gen
65
65
  description="1-paragraph description of the Generic Estimate. Supports plain text or github flavored markdown.",
66
66
  )
67
67
 
68
- publisher: OrgRef | None = pyd.Field(description="Organization that published the LCA results.")
68
+ publisher: Org | None = pyd.Field(description="Organization that published the LCA results.")
69
69
  reviewer_email: pyd.EmailStr | None = pyd.Field(
70
70
  description="Email address of the third party verifier", example="john.doe@example.com", default=None
71
71
  )
72
- reviewer: OrgRef | None = pyd.Field(description="Org that performed a critical review of the LCA.")
72
+ reviewer: Org | None = pyd.Field(description="Org that performed a critical review of the LCA.")
73
73
  license_terms: LicenseTerms | None = pyd.Field(description="The license terms for use of the data.")
74
74
  geography: list[Geography] | None = pyd.Field(
75
75
  "Jurisdiction(s) in which the LCA result is applicable. An empty array, or absent properties, implies global applicability."
@@ -102,6 +102,10 @@ class GenericEstimateWithDepsV0(GenericEstimateV0, title="Generic Estimate (with
102
102
  Expanded version of the GenericEstimate.
103
103
 
104
104
  Contains related entities - orgs - with full fields, to support object matching in implementations.
105
+
106
+ For now the implementation matches the above GenericEstimate entity, but they will diverge as normal GE would have
107
+ some required fields in Org (like web_domain), and WithDeps would not.
108
+
105
109
  """
106
110
 
107
111
  publisher: Org | None = pyd.Field(description="Organization that published the LCA results.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openepd
3
- Version: 4.6.0
3
+ Version: 4.6.1
4
4
  Summary: Python library to work with OpenEPD format
5
5
  Home-page: https://github.com/cchangelabs/openepd
6
6
  License: Apache-2.0
@@ -1,5 +1,5 @@
1
1
  openepd/__init__.py,sha256=Shkfh0Kun0YRhmRDw7LkUj2eQL3X-HnP55u2THOEALw,794
2
- openepd/__version__.py,sha256=Bxj3Ca48hb_OiFMyeAxnZuIFNvhflavMRqNuZEV96-4,638
2
+ openepd/__version__.py,sha256=DXakfiUA1effLWRpKMRN1IPK6Lee3hgHwn2AMgqmsuw,638
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,13 +30,13 @@ 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=uVEGndgLm8JFwffsCXdusfRE01DQSKJUJLxsd-GXba0,8988
33
+ openepd/model/base.py,sha256=Uy2Fh7Z9nPzrXrOn2aHPoJjktQfVOQ7UBCXiATkPfEQ,9008
34
34
  openepd/model/category.py,sha256=IQXNGQFQmFZ_H9PRONloX_UOSf1sTMDq1rM1yz8JR0Y,1639
35
35
  openepd/model/common.py,sha256=aa_bfotPybPoYyzHtwj5E5X1T-fCEyznMfVUWvpUhiM,5460
36
36
  openepd/model/declaration.py,sha256=5mzX24KpsezqBuGFAr-InsgB4FFNqI7HPJeDHQ93ZCI,5322
37
- openepd/model/epd.py,sha256=3fg6ex8hC4PLALEzYNp62kPKWXZuBwu86fdlv6-6PA4,10159
37
+ openepd/model/epd.py,sha256=bhmPNWQQ28uhaoxE7sW8_mxyswSCEvGovQ2tH69jzUo,10324
38
38
  openepd/model/factory.py,sha256=StQUH7GNmRqskMnnRYkr_PLCl5X5sSLEPiYZOIQI9eo,2541
39
- openepd/model/generic_estimate.py,sha256=aNduYJ0oR1RCXamlbz1erORGKK-7jWIvl4eBJTmbq7g,4582
39
+ openepd/model/generic_estimate.py,sha256=RSpQ4F4uVpwLg7NeymoX-V7c4vw3vbR5O4oObFON62A,4764
40
40
  openepd/model/geography.py,sha256=OngHXz-Dkg-NrVPIwNPP53xu4-HkQ_fnEfX5fYIVEfA,37417
41
41
  openepd/model/lcia.py,sha256=Cw4dwEy5Fb13XyYxpqQyGNhkuZNdjsjucAC7L1TAn7I,17560
42
42
  openepd/model/org.py,sha256=FHcYh2WOOQrCMyzm0Ow-iP79jMTBPcneidjH6NXIklA,3760
@@ -91,7 +91,7 @@ openepd/model/validation/quantity.py,sha256=kzug0MZ3Ao0zeVzN-aleyxUg5hA_7D5tNOOe
91
91
  openepd/model/versioning.py,sha256=R_zm6rCrgF3vlJQYbpyWhirdS_Oek16cv_mvZmpuE8I,4473
92
92
  openepd/patch_pydantic.py,sha256=xrkzblatmU9HBzukWkp1cPq9ZSuohoz1p0pQqVKSlKs,4122
93
93
  openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
- openepd-4.6.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
95
- openepd-4.6.0.dist-info/METADATA,sha256=qMG2uMUbdxqQf34jmCjDmHJI1nfG1R-37hDUpN_-jtg,8534
96
- openepd-4.6.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
97
- openepd-4.6.0.dist-info/RECORD,,
94
+ openepd-4.6.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
95
+ openepd-4.6.1.dist-info/METADATA,sha256=pvos-C9saphU8DSs1JnDZ9pTtMR3Mut_D-EUwQiMD9U,8534
96
+ openepd-4.6.1.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
97
+ openepd-4.6.1.dist-info/RECORD,,