openepd 6.0.1__tar.gz → 6.2.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 (139) hide show
  1. {openepd-6.0.1 → openepd-6.2.0}/PKG-INFO +1 -1
  2. {openepd-6.0.1 → openepd-6.2.0}/pyproject.toml +1 -1
  3. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/__version__.py +1 -1
  4. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/bundle/model.py +3 -0
  5. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/standard.py +15 -4
  6. {openepd-6.0.1 → openepd-6.2.0}/LICENSE +0 -0
  7. {openepd-6.0.1 → openepd-6.2.0}/README.md +0 -0
  8. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/__init__.py +0 -0
  9. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/__init__.py +0 -0
  10. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/average_dataset/__init__.py +0 -0
  11. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/average_dataset/generic_estimate_sync_api.py +0 -0
  12. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/average_dataset/industry_epd_sync_api.py +0 -0
  13. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/base_sync_client.py +0 -0
  14. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/category/__init__.py +0 -0
  15. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/category/dto.py +0 -0
  16. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/category/sync_api.py +0 -0
  17. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/common.py +0 -0
  18. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/dto/__init__.py +0 -0
  19. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/dto/base.py +0 -0
  20. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/dto/common.py +0 -0
  21. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/dto/meta.py +0 -0
  22. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/dto/mf.py +0 -0
  23. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/dto/params.py +0 -0
  24. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/epd/__init__.py +0 -0
  25. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/epd/dto.py +0 -0
  26. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/epd/sync_api.py +0 -0
  27. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/errors.py +0 -0
  28. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/pcr/__init__.py +0 -0
  29. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/pcr/sync_api.py +0 -0
  30. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/sync_client.py +0 -0
  31. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/test/__init__.py +0 -0
  32. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/api/utils.py +0 -0
  33. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/bundle/__init__.py +0 -0
  34. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/bundle/base.py +0 -0
  35. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/bundle/reader.py +0 -0
  36. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/bundle/writer.py +0 -0
  37. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/compat/__init__.py +0 -0
  38. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/compat/compat_functional_validators.py +0 -0
  39. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/compat/pydantic.py +0 -0
  40. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/__init__.py +0 -0
  41. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/base.py +0 -0
  42. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/category.py +0 -0
  43. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/common.py +0 -0
  44. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/declaration.py +0 -0
  45. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/epd.py +0 -0
  46. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/factory.py +0 -0
  47. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/generic_estimate.py +0 -0
  48. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/geography.py +0 -0
  49. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/industry_epd.py +0 -0
  50. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/lcia.py +0 -0
  51. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/org.py +0 -0
  52. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/pcr.py +0 -0
  53. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/README.md +0 -0
  54. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/__init__.py +0 -0
  55. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/asphalt.py +0 -0
  56. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/base.py +0 -0
  57. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/concrete.py +0 -0
  58. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/enums.py +0 -0
  59. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/__init__.py +0 -0
  60. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/accessories.py +0 -0
  61. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/aggregates.py +0 -0
  62. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/aluminium.py +0 -0
  63. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/asphalt.py +0 -0
  64. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/bulk_materials.py +0 -0
  65. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/cast_decks_and_underlayment.py +0 -0
  66. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/cladding.py +0 -0
  67. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/cmu.py +0 -0
  68. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/concrete.py +0 -0
  69. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/conveying_equipment.py +0 -0
  70. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/electrical.py +0 -0
  71. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py +0 -0
  72. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/electricity.py +0 -0
  73. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/finishes.py +0 -0
  74. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/fire_and_smoke_protection.py +0 -0
  75. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/furnishings.py +0 -0
  76. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/grouting.py +0 -0
  77. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/manufacturing_inputs.py +0 -0
  78. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/masonry.py +0 -0
  79. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/material_handling.py +0 -0
  80. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/mechanical.py +0 -0
  81. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/mechanical_insulation.py +0 -0
  82. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/network_infrastructure.py +0 -0
  83. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/openings.py +0 -0
  84. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/other_electrical_equipment.py +0 -0
  85. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/other_materials.py +0 -0
  86. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/plumbing.py +0 -0
  87. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/precast_concrete.py +0 -0
  88. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/sheathing.py +0 -0
  89. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/steel.py +0 -0
  90. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/thermal_moisture_protection.py +0 -0
  91. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/utility_piping.py +0 -0
  92. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/wood.py +0 -0
  93. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/range/wood_joists.py +0 -0
  94. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/__init__.py +0 -0
  95. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/accessories.py +0 -0
  96. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/aggregates.py +0 -0
  97. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/aluminium.py +0 -0
  98. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/asphalt.py +0 -0
  99. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/bulk_materials.py +0 -0
  100. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/cast_decks_and_underlayment.py +0 -0
  101. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/cladding.py +0 -0
  102. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/cmu.py +0 -0
  103. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/common.py +0 -0
  104. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/concrete.py +0 -0
  105. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/conveying_equipment.py +0 -0
  106. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/electrical.py +0 -0
  107. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/electrical_transmission_and_distribution_equipment.py +0 -0
  108. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/electricity.py +0 -0
  109. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/finishes.py +0 -0
  110. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/fire_and_smoke_protection.py +0 -0
  111. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/furnishings.py +0 -0
  112. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/grouting.py +0 -0
  113. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/manufacturing_inputs.py +0 -0
  114. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/masonry.py +0 -0
  115. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/material_handling.py +0 -0
  116. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/mechanical.py +0 -0
  117. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/mechanical_insulation.py +0 -0
  118. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/mixins/__init__.py +0 -0
  119. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/mixins/conduit_mixin.py +0 -0
  120. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/network_infrastructure.py +0 -0
  121. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/openings.py +0 -0
  122. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/other_electrical_equipment.py +0 -0
  123. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/other_materials.py +0 -0
  124. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/plumbing.py +0 -0
  125. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/precast_concrete.py +0 -0
  126. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/sheathing.py +0 -0
  127. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/steel.py +0 -0
  128. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/thermal_moisture_protection.py +0 -0
  129. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/utility_piping.py +0 -0
  130. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/wood.py +0 -0
  131. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/specs/singular/wood_joists.py +0 -0
  132. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/validation/__init__.py +0 -0
  133. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/validation/common.py +0 -0
  134. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/validation/enum.py +0 -0
  135. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/validation/numbers.py +0 -0
  136. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/validation/quantity.py +0 -0
  137. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/model/versioning.py +0 -0
  138. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/patch_pydantic.py +0 -0
  139. {openepd-6.0.1 → openepd-6.2.0}/src/openepd/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openepd
3
- Version: 6.0.1
3
+ Version: 6.2.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.0.1"
3
+ version = "6.2.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.0.1"
16
+ VERSION = "6.2.0"
@@ -13,6 +13,7 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
+ from datetime import datetime
16
17
  from enum import StrEnum
17
18
 
18
19
  from openepd.compat.pydantic import pyd
@@ -61,6 +62,8 @@ class BundleManifest(BaseOpenEpdSchema):
61
62
  """The generator of the bundle."""
62
63
  assets: BundleManifestAssetsStats = pyd.Field(default_factory=BundleManifestAssetsStats)
63
64
  comment: str | None = pyd.Field(default=None)
65
+ created_at: datetime = pyd.Field(default_factory=datetime.utcnow)
66
+ """The date and time when the bundle was generated."""
64
67
 
65
68
 
66
69
  class AssetInfo(BaseOpenEpdSchema):
@@ -15,15 +15,26 @@
15
15
  #
16
16
  from openepd.compat.pydantic import pyd
17
17
  from openepd.model.base import BaseOpenEpdSchema
18
- from openepd.model.org import Org
18
+ from openepd.model.org import OrgRef
19
+ from openepd.model.validation.common import ReferenceStr
19
20
 
20
21
 
21
- class Standard(BaseOpenEpdSchema):
22
+ class StandardRef(BaseOpenEpdSchema):
23
+ """Reference version (short) of Standard."""
24
+
25
+ ref: ReferenceStr | None = pyd.Field(
26
+ default=None,
27
+ example="https://openepd.buildingtransparency.org/api/standards/EN15804",
28
+ description="Reference to this Standard's JSON object",
29
+ )
30
+ short_name: str | None = pyd.Field(description="Short-form of name of standard. Must be unique. Case-insensitive")
31
+
32
+
33
+ class Standard(StandardRef):
22
34
  """A standard, such as EN 15804, ISO 14044, ISO 14024:2018, etc."""
23
35
 
24
- short_name: str = pyd.Field(description="Short-form of name of standard. Must be unique. Case-insensitive")
25
36
  name: str | None = pyd.Field(description="Full document name. Must be unique. Case-insensitive", default=None)
26
37
  link: pyd.AnyUrl | None = pyd.Field(
27
38
  description="Link to the exact standard (including version) referred to", default=None
28
39
  )
29
- issuer: Org | None = pyd.Field(description="Org that issued this standard", default=None)
40
+ issuer: OrgRef | None = pyd.Field(description="Org that issued this standard", default=None)
File without changes
File without changes
File without changes
File without changes