openepd 6.5.0__tar.gz → 6.6.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. {openepd-6.5.0 → openepd-6.6.0}/PKG-INFO +1 -1
  2. {openepd-6.5.0 → openepd-6.6.0}/pyproject.toml +1 -1
  3. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/__version__.py +1 -1
  4. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/epd.py +2 -0
  5. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/industry_epd.py +21 -1
  6. {openepd-6.5.0 → openepd-6.6.0}/LICENSE +0 -0
  7. {openepd-6.5.0 → openepd-6.6.0}/README.md +0 -0
  8. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/__init__.py +0 -0
  9. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/__init__.py +0 -0
  10. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/average_dataset/__init__.py +0 -0
  11. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/average_dataset/generic_estimate_sync_api.py +0 -0
  12. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/average_dataset/industry_epd_sync_api.py +0 -0
  13. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/base_sync_client.py +0 -0
  14. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/category/__init__.py +0 -0
  15. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/category/dto.py +0 -0
  16. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/category/sync_api.py +0 -0
  17. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/common.py +0 -0
  18. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/dto/__init__.py +0 -0
  19. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/dto/base.py +0 -0
  20. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/dto/common.py +0 -0
  21. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/dto/meta.py +0 -0
  22. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/dto/mf.py +0 -0
  23. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/dto/params.py +0 -0
  24. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/epd/__init__.py +0 -0
  25. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/epd/dto.py +0 -0
  26. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/epd/sync_api.py +0 -0
  27. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/errors.py +0 -0
  28. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/pcr/__init__.py +0 -0
  29. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/pcr/sync_api.py +0 -0
  30. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/sync_client.py +0 -0
  31. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/test/__init__.py +0 -0
  32. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/api/utils.py +0 -0
  33. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/bundle/__init__.py +0 -0
  34. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/bundle/base.py +0 -0
  35. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/bundle/model.py +0 -0
  36. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/bundle/reader.py +0 -0
  37. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/bundle/writer.py +0 -0
  38. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/compat/__init__.py +0 -0
  39. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/compat/compat_functional_validators.py +0 -0
  40. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/compat/pydantic.py +0 -0
  41. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/__init__.py +0 -0
  42. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/base.py +0 -0
  43. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/category.py +0 -0
  44. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/common.py +0 -0
  45. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/declaration.py +0 -0
  46. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/factory.py +0 -0
  47. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/generic_estimate.py +0 -0
  48. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/geography.py +0 -0
  49. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/lcia.py +0 -0
  50. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/org.py +0 -0
  51. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/pcr.py +0 -0
  52. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/README.md +0 -0
  53. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/__init__.py +0 -0
  54. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/asphalt.py +0 -0
  55. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/base.py +0 -0
  56. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/concrete.py +0 -0
  57. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/enums.py +0 -0
  58. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/__init__.py +0 -0
  59. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/accessories.py +0 -0
  60. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/aggregates.py +0 -0
  61. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/aluminium.py +0 -0
  62. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/asphalt.py +0 -0
  63. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/bulk_materials.py +0 -0
  64. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/cast_decks_and_underlayment.py +0 -0
  65. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/cladding.py +0 -0
  66. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/cmu.py +0 -0
  67. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/concrete.py +0 -0
  68. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/conveying_equipment.py +0 -0
  69. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/electrical.py +0 -0
  70. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py +0 -0
  71. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/electricity.py +0 -0
  72. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/finishes.py +0 -0
  73. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/fire_and_smoke_protection.py +0 -0
  74. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/furnishings.py +0 -0
  75. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/grouting.py +0 -0
  76. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/manufacturing_inputs.py +0 -0
  77. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/masonry.py +0 -0
  78. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/material_handling.py +0 -0
  79. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/mechanical.py +0 -0
  80. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/mechanical_insulation.py +0 -0
  81. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/network_infrastructure.py +0 -0
  82. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/openings.py +0 -0
  83. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/other_electrical_equipment.py +0 -0
  84. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/other_materials.py +0 -0
  85. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/plumbing.py +0 -0
  86. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/precast_concrete.py +0 -0
  87. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/sheathing.py +0 -0
  88. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/steel.py +0 -0
  89. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/thermal_moisture_protection.py +0 -0
  90. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/utility_piping.py +0 -0
  91. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/wood.py +0 -0
  92. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/range/wood_joists.py +0 -0
  93. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/__init__.py +0 -0
  94. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/accessories.py +0 -0
  95. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/aggregates.py +0 -0
  96. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/aluminium.py +0 -0
  97. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/asphalt.py +0 -0
  98. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/bulk_materials.py +0 -0
  99. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/cast_decks_and_underlayment.py +0 -0
  100. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/cladding.py +0 -0
  101. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/cmu.py +0 -0
  102. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/common.py +0 -0
  103. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/concrete.py +0 -0
  104. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/conveying_equipment.py +0 -0
  105. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/deprecated/__init__.py +0 -0
  106. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/deprecated/concrete.py +0 -0
  107. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/deprecated/steel.py +0 -0
  108. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/electrical.py +0 -0
  109. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/electrical_transmission_and_distribution_equipment.py +0 -0
  110. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/electricity.py +0 -0
  111. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/finishes.py +0 -0
  112. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/fire_and_smoke_protection.py +0 -0
  113. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/furnishings.py +0 -0
  114. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/grouting.py +0 -0
  115. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/manufacturing_inputs.py +0 -0
  116. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/masonry.py +0 -0
  117. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/material_handling.py +0 -0
  118. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/mechanical.py +0 -0
  119. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/mechanical_insulation.py +0 -0
  120. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/mixins/__init__.py +0 -0
  121. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/mixins/conduit_mixin.py +0 -0
  122. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/network_infrastructure.py +0 -0
  123. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/openings.py +0 -0
  124. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/other_electrical_equipment.py +0 -0
  125. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/other_materials.py +0 -0
  126. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/plumbing.py +0 -0
  127. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/precast_concrete.py +0 -0
  128. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/sheathing.py +0 -0
  129. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/steel.py +0 -0
  130. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/thermal_moisture_protection.py +0 -0
  131. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/utility_piping.py +0 -0
  132. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/wood.py +0 -0
  133. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/specs/singular/wood_joists.py +0 -0
  134. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/standard.py +0 -0
  135. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/validation/__init__.py +0 -0
  136. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/validation/common.py +0 -0
  137. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/validation/enum.py +0 -0
  138. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/validation/numbers.py +0 -0
  139. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/validation/quantity.py +0 -0
  140. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/model/versioning.py +0 -0
  141. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/patch_pydantic.py +0 -0
  142. {openepd-6.5.0 → openepd-6.6.0}/src/openepd/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openepd
3
- Version: 6.5.0
3
+ Version: 6.6.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,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "openepd"
3
- version = "6.5.0"
3
+ version = "6.6.0"
4
4
  license = "Apache-2.0"
5
5
  description = "Python library to work with OpenEPD format"
6
6
  authors = ["C-Change Labs <support@c-change-labs.com>"]
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- VERSION = "6.5.0"
16
+ VERSION = "6.6.0"
@@ -144,6 +144,8 @@ class EpdPreviewV0(
144
144
 
145
145
  """
146
146
 
147
+ _FORMAT_VERSION = OpenEpdVersions.Version0.as_str()
148
+
147
149
  doctype: str = pyd.Field(
148
150
  description='Describes the type and schema of the document. Must always always read "openEPD".',
149
151
  default="openEPD",
@@ -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
 
File without changes
File without changes
File without changes
File without changes