openepd 3.5.0__tar.gz → 4.0.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.
- {openepd-3.5.0 → openepd-4.0.0}/PKG-INFO +1 -1
- {openepd-3.5.0 → openepd-4.0.0}/pyproject.toml +1 -1
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/__version__.py +1 -1
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/pcr/sync_api.py +1 -2
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/org.py +4 -5
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/pcr.py +26 -1
- openepd-3.5.0/src/openepd/api/pcr/dto.py +0 -37
- {openepd-3.5.0 → openepd-4.0.0}/LICENSE +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/README.md +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/__init__.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/__init__.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/base_sync_client.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/category/__init__.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/category/dto.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/category/sync_api.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/common.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/dto/__init__.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/dto/base.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/dto/common.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/dto/meta.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/dto/mf.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/dto/params.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/epd/__init__.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/epd/dto.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/epd/sync_api.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/errors.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/pcr/__init__.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/sync_client.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/test/__init__.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/api/utils.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/bundle/__init__.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/bundle/base.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/bundle/model.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/bundle/reader.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/bundle/writer.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/compat/__init__.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/compat/compat_functional_validators.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/compat/pydantic.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/__init__.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/base.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/category.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/common.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/epd.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/factory.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/lcia.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/README.md +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/__init__.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/asphalt.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/base.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/concrete.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/__init__.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/accessories.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/aggregates.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/aluminium.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/asphalt.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/bulk_materials.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/cast_decks_and_underlayment.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/cladding.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/cmu.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/common.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/concrete.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/conveying_equipment.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/electrical.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/electrical_transmission_and_distribution_equipment.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/electricity.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/enums.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/finishes.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/fire_and_smoke_protection.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/furnishings.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/grouting.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/manufacturing_inputs.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/masonry.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/material_handling.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/mechanical.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/mechanical_insulation.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/network_infrastructure.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/openings.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/other_electrical_equipment.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/other_materials.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/plumbing.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/precast_concrete.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/sheathing.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/steel.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/thermal_moisture_protection.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/utility_piping.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/wood.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/wood_joists.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/standard.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/validation/__init__.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/validation/common.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/validation/numbers.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/validation/quantity.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/versioning.py +0 -0
- {openepd-3.5.0 → openepd-4.0.0}/src/openepd/py.typed +0 -0
@@ -14,8 +14,7 @@
|
|
14
14
|
# limitations under the License.
|
15
15
|
#
|
16
16
|
from openepd.api.base_sync_client import BaseApiMethodGroup
|
17
|
-
from openepd.
|
18
|
-
from openepd.model.pcr import Pcr
|
17
|
+
from openepd.model.pcr import Pcr, PcrRef
|
19
18
|
|
20
19
|
|
21
20
|
class PcrApi(BaseApiMethodGroup):
|
@@ -35,7 +35,7 @@ class OrgRef(BaseOpenEpdSchema):
|
|
35
35
|
)
|
36
36
|
ref: ReferenceStr | None = pyd.Field(
|
37
37
|
default=None,
|
38
|
-
example="https://buildingtransparency.org/
|
38
|
+
example="https://openepd.buildingtransparency.org/api/orgs/c-change-labs.com",
|
39
39
|
description="Reference to this Org's JSON object",
|
40
40
|
)
|
41
41
|
|
@@ -50,15 +50,14 @@ class Org(WithAttachmentsMixin, WithAltIdsMixin, OrgRef):
|
|
50
50
|
)
|
51
51
|
# TODO: NEW field, not in the spec
|
52
52
|
|
53
|
-
owner: Optional["
|
54
|
-
subsidiaries: Annotated[list[
|
53
|
+
owner: Optional["OrgRef"] = pyd.Field(description="Organization that controls this organization", default=None)
|
54
|
+
subsidiaries: Annotated[list["OrgRef"], pyd.conlist(pyd.constr(max_length=200), max_items=255)] | None = pyd.Field(
|
55
55
|
description="Organizations controlled by this organization",
|
56
|
-
example=["cqd.io", "supplychaincarbonpricing.org"],
|
57
56
|
default=None,
|
58
57
|
)
|
59
58
|
hq_location: Location | None = pyd.Field(
|
60
59
|
default=None,
|
61
|
-
description="Location of a place of business,
|
60
|
+
description="Location of a place of business, preferably the corporate headquarters.",
|
62
61
|
)
|
63
62
|
|
64
63
|
|
@@ -19,7 +19,7 @@ from typing import Annotated, Optional
|
|
19
19
|
|
20
20
|
from openepd.compat.pydantic import pyd
|
21
21
|
from openepd.model.base import BaseOpenEpdSchema
|
22
|
-
from openepd.model.common import WithAltIdsMixin, WithAttachmentsMixin
|
22
|
+
from openepd.model.common import Amount, WithAltIdsMixin, WithAttachmentsMixin
|
23
23
|
from openepd.model.org import Org
|
24
24
|
|
25
25
|
|
@@ -33,6 +33,26 @@ class PcrStatus(StrEnum):
|
|
33
33
|
Sunset = "Sunset"
|
34
34
|
|
35
35
|
|
36
|
+
class PcrRef(BaseOpenEpdSchema):
|
37
|
+
"""Reference to a PCR."""
|
38
|
+
|
39
|
+
id: str | None = pyd.Field(
|
40
|
+
description="The unique ID for this PCR. To ensure global uniqueness, should be registered "
|
41
|
+
"at open-xpd-uuid.cqd.io/register or a coordinating registry.",
|
42
|
+
example="ec3xpgq2",
|
43
|
+
default=None,
|
44
|
+
)
|
45
|
+
name: str | None = pyd.Field(
|
46
|
+
max_length=200,
|
47
|
+
description="Full document name as listed in source document",
|
48
|
+
example="c-PCR-003 Concrete and concrete elements (EN 16757)",
|
49
|
+
)
|
50
|
+
ref: pyd.AnyUrl | None = pyd.Field(
|
51
|
+
description="Reference to this PCR's JSON object",
|
52
|
+
example="https://openepd.buildingtransparency.org/api/pcrs/1u7zsed8",
|
53
|
+
)
|
54
|
+
|
55
|
+
|
36
56
|
class Pcr(WithAttachmentsMixin, WithAltIdsMixin, BaseOpenEpdSchema):
|
37
57
|
"""Represent a PCR (Product Category Rules)."""
|
38
58
|
|
@@ -60,6 +80,11 @@ class Pcr(WithAttachmentsMixin, WithAltIdsMixin, BaseOpenEpdSchema):
|
|
60
80
|
description="A shortened name without boilerplate text.",
|
61
81
|
example="Concrete and Concrete Elements",
|
62
82
|
)
|
83
|
+
declared_units: list[Amount] | None = pyd.Field(
|
84
|
+
description="SI declared units for this PCR. If a functional unit is "
|
85
|
+
"utilized, the declared unit shall refer to the amount of "
|
86
|
+
"product associated with the A1-A3 life cycle stage."
|
87
|
+
)
|
63
88
|
version: str | None = pyd.Field(
|
64
89
|
description="Document version, as expressed in document.",
|
65
90
|
example="1.0.2",
|
@@ -1,37 +0,0 @@
|
|
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.api.dto.base import BaseOpenEpdApiModel
|
17
|
-
from openepd.compat.pydantic import pyd
|
18
|
-
|
19
|
-
|
20
|
-
class PcrRef(BaseOpenEpdApiModel):
|
21
|
-
"""Reference to a PCR."""
|
22
|
-
|
23
|
-
id: str | None = pyd.Field(
|
24
|
-
description="The unique ID for this PCR. To ensure global uniqueness, should be registered "
|
25
|
-
"at open-xpd-uuid.cqd.io/register or a coordinating registry.",
|
26
|
-
example="ec3xpgq2",
|
27
|
-
default=None,
|
28
|
-
)
|
29
|
-
name: str | None = pyd.Field(
|
30
|
-
max_length=200,
|
31
|
-
description="Full document name as listed in source document",
|
32
|
-
example="c-PCR-003 Concrete and concrete elements (EN 16757)",
|
33
|
-
)
|
34
|
-
ref: pyd.AnyUrl | None = pyd.Field(
|
35
|
-
description="Reference to this PCR's JSON object",
|
36
|
-
example="https://openepd.buildingtransparency.org/api/pcrs/1u7zsed8",
|
37
|
-
)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/cast_decks_and_underlayment.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/fire_and_smoke_protection.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/other_electrical_equipment.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{openepd-3.5.0 → openepd-4.0.0}/src/openepd/model/specs/generated/thermal_moisture_protection.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|