openepd 6.5.1__py3-none-any.whl → 6.7.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 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 = "6.5.1"
16
+ VERSION = "6.7.0"
@@ -15,8 +15,10 @@
15
15
  #
16
16
  from typing import Literal
17
17
 
18
+ from pydantic.v1 import NonNegativeInt
19
+
18
20
  from openepd.compat.pydantic import pyd
19
- from openepd.model.base import BaseDocumentFactory, OpenEpdDoctypes
21
+ from openepd.model.base import BaseDocumentFactory, BaseOpenEpdSchema, OpenEpdDoctypes
20
22
  from openepd.model.common import WithAltIdsMixin, WithAttachmentsMixin
21
23
  from openepd.model.declaration import (
22
24
  AverageDatasetMixin,
@@ -31,6 +33,22 @@ from openepd.model.org import Org
31
33
  from openepd.model.versioning import OpenEpdVersions, Version
32
34
 
33
35
 
36
+ class SampleSize(BaseOpenEpdSchema):
37
+ """Sample size."""
38
+
39
+ products: NonNegativeInt | None = pyd.Field(
40
+ default=None,
41
+ description="Count of separate products or results that were included in this industry EPD, "
42
+ "and over which the standard deviation was calculated",
43
+ )
44
+ plants: NonNegativeInt | None = pyd.Field(
45
+ default=None, description="Count of unique manufacturing plants that submitted data for this Industry EPD"
46
+ )
47
+ manufacturers: NonNegativeInt | None = pyd.Field(
48
+ default=None, description="Count of unique manufacturing companies that submitted data for this Industry EPD"
49
+ )
50
+
51
+
34
52
  class IndustryEpdRef(RefBase, title="Industry EPD (Ref)"):
35
53
  """Reference (short) version of Industry average EPD object."""
36
54
 
@@ -58,6 +76,8 @@ class IndustryEpdPreviewV0(
58
76
  default="openIndustryEpd",
59
77
  )
60
78
 
79
+ sample_size: SampleSize | None = None
80
+
61
81
  publishers: list[Org] | None = pyd.Field(description="")
62
82
  manufacturers: list[Org] | None = pyd.Field(description="Participating manufacturers")
63
83
 
openepd/model/org.py CHANGED
@@ -63,8 +63,8 @@ class Org(WithAttachmentsMixin, WithAltIdsMixin, OrgRef):
63
63
  )
64
64
 
65
65
 
66
- class Plant(WithAttachmentsMixin, WithAltIdsMixin, BaseOpenEpdSchema):
67
- """Represent a manufacturing plant."""
66
+ class PlantRef(BaseOpenEpdSchema):
67
+ """Represents Plant with minimal data."""
68
68
 
69
69
  id: str | None = pyd.Field(
70
70
  description="Plus code (aka Open Location Code) of plant's location and "
@@ -72,6 +72,22 @@ class Plant(WithAttachmentsMixin, WithAltIdsMixin, BaseOpenEpdSchema):
72
72
  example="865P2W3V+3W.interface.com",
73
73
  default=None,
74
74
  )
75
+ name: str | None = pyd.Field(
76
+ max_length=200,
77
+ description="Manufacturer's name for plant. Recommended < 40 chars",
78
+ example="Dalton, GA",
79
+ default=None,
80
+ )
81
+ ref: ReferenceStr | None = pyd.Field(
82
+ default=None,
83
+ example="https://openepd.buildingtransparency.org/api/orgs/c-change-labs.com",
84
+ description="Reference to this Plant's JSON object",
85
+ )
86
+
87
+
88
+ class Plant(PlantRef, WithAttachmentsMixin, WithAltIdsMixin):
89
+ """Represent a manufacturing plant."""
90
+
75
91
  pluscode: str | None = pyd.Field(
76
92
  default=None,
77
93
  description="(deprecated) Plus code (aka Open Location Code) of plant's location",
@@ -85,12 +101,6 @@ class Plant(WithAttachmentsMixin, WithAltIdsMixin, BaseOpenEpdSchema):
85
101
  default=None, description="(deprecated) Longitude of the plant location. Use 'location' fields instead."
86
102
  )
87
103
  owner: Org | None = pyd.Field(description="Organization that owns the plant", default=None)
88
- name: str | None = pyd.Field(
89
- max_length=200,
90
- description="Manufacturer's name for plant. Recommended < 40 chars",
91
- example="Dalton, GA",
92
- default=None,
93
- )
94
104
  address: str | None = pyd.Field(
95
105
  max_length=200,
96
106
  default=None,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openepd
3
- Version: 6.5.1
3
+ Version: 6.7.0
4
4
  Summary: Python library to work with OpenEPD format
5
5
  Home-page: https://github.com/cchangelabs/openepd
6
6
  License: Apache-2.0
@@ -1,5 +1,5 @@
1
1
  openepd/__init__.py,sha256=Shkfh0Kun0YRhmRDw7LkUj2eQL3X-HnP55u2THOEALw,794
2
- openepd/__version__.py,sha256=SDtt4eDlbrwk3deDGPXaZFX4pCfNzDWPk91cD4Qqgwo,638
2
+ openepd/__version__.py,sha256=4gnODThekFJwXNHfdYsu7FCdS-28EDHtQ3CWAlc16Dc,638
3
3
  openepd/api/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
4
4
  openepd/api/average_dataset/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
5
5
  openepd/api/average_dataset/generic_estimate_sync_api.py,sha256=mxWwDokEGMe87Px8C_aHvIdVKZVHrEAuVtaSA1zJchU,7953
@@ -41,9 +41,9 @@ openepd/model/epd.py,sha256=I8pGcvvsVzbwyQYRrqGQa7tGyRw55T_sIQn1VJ9568g,12165
41
41
  openepd/model/factory.py,sha256=XP7eeQNW5tqwX_4hfuEb3lK6BFQDb4KB0fSN0r8-lCU,2656
42
42
  openepd/model/generic_estimate.py,sha256=bbU0cR4izSqjZcfxUHNbdO4pllqqd8OaUFikrEgCFoA,3992
43
43
  openepd/model/geography.py,sha256=G3Oz3QBw5n-RiSCAv-vAGxrOZBhwIT5rASnPlo9dkcs,42095
44
- openepd/model/industry_epd.py,sha256=rgXhCUDAgzZ9eGio7ExqE3ymP3zTXnrrwcIDvg5YP1A,3285
44
+ openepd/model/industry_epd.py,sha256=hLQJBqku_PdM-X-6lRA4QMyIPb7VYEnC4EIZY7yLXLA,4039
45
45
  openepd/model/lcia.py,sha256=a0OZQzZBtXNx_6O1jMnC1WQrlU3rdFrDN-Y3UchfgGM,25507
46
- openepd/model/org.py,sha256=PtG4-EgjKvNSt7446lV60HhDC3YyRx2E-yJ8MMs5raE,5049
46
+ openepd/model/org.py,sha256=zySCWBFxCz8ymEuSgThYruLFhylYdxouMPV7_oRvAJY,5342
47
47
  openepd/model/pcr.py,sha256=QknLtTn6Y14JORWKQ1qBqGgKnZpbKgqNiYF3Axl4U4c,5494
48
48
  openepd/model/specs/README.md,sha256=UGhSiFJ9hOxT1mZl-5ZrhkOrPKf1W_gcu5CI9hzV7LU,2430
49
49
  openepd/model/specs/__init__.py,sha256=IAevXqqYrCWlTH4z4Fy9o77vaOLinX56G05iIJJfm0M,3094
@@ -136,7 +136,7 @@ openepd/model/validation/quantity.py,sha256=1z-G46dlryJEm4W-O0QiEJuFYICz7CPTM6gL
136
136
  openepd/model/versioning.py,sha256=R_zm6rCrgF3vlJQYbpyWhirdS_Oek16cv_mvZmpuE8I,4473
137
137
  openepd/patch_pydantic.py,sha256=xrkzblatmU9HBzukWkp1cPq9ZSuohoz1p0pQqVKSlKs,4122
138
138
  openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
- openepd-6.5.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
140
- openepd-6.5.1.dist-info/METADATA,sha256=Wx13GlbWE3azND7-uZ90Bk-m9U6j3JKcuGLZFomOqjw,9038
141
- openepd-6.5.1.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
142
- openepd-6.5.1.dist-info/RECORD,,
139
+ openepd-6.7.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
140
+ openepd-6.7.0.dist-info/METADATA,sha256=Iyf-1pV9bb1T9i2iY0oCm4Yaw1vvL39gaO9UEK21AKo,9038
141
+ openepd-6.7.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
142
+ openepd-6.7.0.dist-info/RECORD,,