openepd 1.10.0__py3-none-any.whl → 3.0.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
@@ -17,4 +17,4 @@
17
17
  # Charles Pankow Foundation, Microsoft Sustainability Fund, Interface, MKA Foundation, and others.
18
18
  # Find out more at www.BuildingTransparency.org
19
19
  #
20
- VERSION = "1.10.0"
20
+ VERSION = "3.0.0"
openepd/api/dto/base.py CHANGED
@@ -19,7 +19,7 @@
19
19
  #
20
20
  import abc
21
21
 
22
- import pydantic as pyd
22
+ from openepd.compat.pydantic import pyd
23
23
 
24
24
 
25
25
  class BaseOpenEpdApiModel(pyd.BaseModel):
openepd/api/dto/common.py CHANGED
@@ -21,11 +21,9 @@ import abc
21
21
  import datetime
22
22
  from typing import Final, Generic, TypeAlias, TypeVar
23
23
 
24
- import pydantic as pyd
25
- from pydantic.generics import GenericModel
26
-
27
24
  from openepd.api.dto.base import BaseMetaDto, BaseOpenEpdApiModel, MetaExtensionBase
28
25
  from openepd.api.dto.meta import PerformanceMetaMixin
26
+ from openepd.compat.pydantic import pyd, pyd_generics
29
27
  from openepd.model.base import AnySerializable, BaseOpenEpdSchema
30
28
 
31
29
  DEFAULT_PAGE_SIZE: Final[int] = 100
@@ -65,7 +63,7 @@ TMetaDto = TypeVar("TMetaDto", bound=BaseMetaDto)
65
63
  TMetaExtension = TypeVar("TMetaExtension", bound=MetaExtensionBase)
66
64
 
67
65
 
68
- class MetaCollectionDto(BaseOpenEpdApiModel, GenericModel, Generic[TMetaExtension]):
66
+ class MetaCollectionDto(BaseOpenEpdApiModel, pyd_generics.GenericModel, Generic[TMetaExtension]):
69
67
  """
70
68
  This class is intended to be used as a container for different meta objects.
71
69
 
@@ -107,7 +105,7 @@ class BaseMeta(PerformanceMetaMixin, MetaCollectionDto[TMetaExtension], Generic[
107
105
  TMeta = TypeVar("TMeta", bound=MetaCollectionDto, covariant=True)
108
106
 
109
107
 
110
- class OpenEpdApiResponse(GenericModel, BaseOpenEpdApiModel, Generic[TPayload, TMeta]):
108
+ class OpenEpdApiResponse(pyd_generics.GenericModel, BaseOpenEpdApiModel, Generic[TPayload, TMeta]):
111
109
  """Standard DTO representing response from OpenEPD API server."""
112
110
 
113
111
  payload: TPayload
openepd/api/dto/meta.py CHANGED
@@ -17,9 +17,8 @@
17
17
  # Charles Pankow Foundation, Microsoft Sustainability Fund, Interface, MKA Foundation, and others.
18
18
  # Find out more at www.BuildingTransparency.org
19
19
  #
20
- import pydantic as pyd
21
-
22
20
  from openepd.api.dto.base import BaseMetaDto, BaseOpenEpdApiModel
21
+ from openepd.compat.pydantic import pyd
23
22
 
24
23
 
25
24
  class PerformanceMeta(BaseMetaDto):
openepd/api/dto/mf.py CHANGED
@@ -17,9 +17,8 @@
17
17
  # Charles Pankow Foundation, Microsoft Sustainability Fund, Interface, MKA Foundation, and others.
18
18
  # Find out more at www.BuildingTransparency.org
19
19
  #
20
- import pydantic as pyd
21
-
22
20
  from openepd.api.dto.base import BaseOpenEpdApiModel
21
+ from openepd.compat.pydantic import pyd
23
22
 
24
23
 
25
24
  class MaterialFilterDefinition(BaseOpenEpdApiModel):
openepd/api/epd/dto.py CHANGED
@@ -19,12 +19,11 @@
19
19
  #
20
20
  from typing import TypeAlias
21
21
 
22
- import pydantic as pyd
23
-
24
22
  from openepd.api.dto.base import BaseOpenEpdApiModel
25
23
  from openepd.api.dto.common import BaseMeta, OpenEpdApiResponse
26
24
  from openepd.api.dto.meta import PagingMetaMixin, WarningMetaMixin
27
25
  from openepd.api.dto.mf import MaterialFilterMetaMixin
26
+ from openepd.compat.pydantic import pyd
28
27
  from openepd.model.common import Amount
29
28
  from openepd.model.epd import Epd
30
29
 
openepd/api/pcr/dto.py CHANGED
@@ -17,9 +17,8 @@
17
17
  # Charles Pankow Foundation, Microsoft Sustainability Fund, Interface, MKA Foundation, and others.
18
18
  # Find out more at www.BuildingTransparency.org
19
19
  #
20
- import pydantic as pyd
21
-
22
20
  from openepd.api.dto.base import BaseOpenEpdApiModel
21
+ from openepd.compat.pydantic import pyd
23
22
 
24
23
 
25
24
  class PcrRef(BaseOpenEpdApiModel):
openepd/bundle/model.py CHANGED
@@ -19,8 +19,7 @@
19
19
  #
20
20
  from enum import StrEnum
21
21
 
22
- import pydantic as pyd
23
-
22
+ from openepd.compat.pydantic import pyd
24
23
  from openepd.model.base import BaseOpenEpdSchema
25
24
 
26
25
 
@@ -0,0 +1,19 @@
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
+ # This software was developed with support from the Skanska USA,
17
+ # Charles Pankow Foundation, Microsoft Sustainability Fund, Interface, MKA Foundation, and others.
18
+ # Find out more at www.BuildingTransparency.org
19
+ #
@@ -0,0 +1,29 @@
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
+ # This software was developed with support from the Skanska USA,
17
+ # Charles Pankow Foundation, Microsoft Sustainability Fund, Interface, MKA Foundation, and others.
18
+ # Find out more at www.BuildingTransparency.org
19
+ #
20
+ try:
21
+ from pydantic import v1 as pyd # type: ignore
22
+ from pydantic.v1 import generics as pyd_generics # type: ignore
23
+ except ImportError:
24
+ import pydantic as pyd # type: ignore[no-redef]
25
+ from pydantic import generics as pyd_generics # type: ignore[no-redef]
26
+
27
+ pydantic = pyd
28
+
29
+ __all__ = ["pyd", "pydantic", "pyd_generics"]
openepd/model/base.py CHANGED
@@ -20,15 +20,13 @@
20
20
  import abc
21
21
  from enum import StrEnum
22
22
  import json
23
- from typing import Any, Callable, Generic, Optional, Type, TypeVar
24
-
25
- import pydantic as pyd
26
- from pydantic.generics import GenericModel
23
+ from typing import Any, Callable, Generic, Optional, Type, TypeAlias, TypeVar
27
24
 
25
+ from openepd.compat.pydantic import pyd, pyd_generics
28
26
  from openepd.model.validation.common import validate_version_compatibility, validate_version_format
29
27
  from openepd.model.versioning import OpenEpdVersions, Version
30
28
 
31
- AnySerializable = int | str | bool | float | list | dict | pyd.BaseModel | None
29
+ AnySerializable: TypeAlias = int | str | bool | float | list | dict | pyd.BaseModel | None
32
30
  TAnySerializable = TypeVar("TAnySerializable", bound=AnySerializable)
33
31
 
34
32
  OPENEPD_VERSION_FIELD = "openepd_version"
@@ -158,7 +156,7 @@ class BaseOpenEpdSchema(pyd.BaseModel):
158
156
  return None
159
157
 
160
158
 
161
- class BaseOpenEpdGenericSchema(GenericModel, BaseOpenEpdSchema):
159
+ class BaseOpenEpdGenericSchema(pyd_generics.GenericModel, BaseOpenEpdSchema):
162
160
  """Base class for all OpenEPD generic models."""
163
161
 
164
162
  pass
openepd/model/category.py CHANGED
@@ -17,8 +17,7 @@
17
17
  # Charles Pankow Foundation, Microsoft Sustainability Fund, Interface, MKA Foundation, and others.
18
18
  # Find out more at www.BuildingTransparency.org
19
19
  #
20
- import pydantic as pyd
21
-
20
+ from openepd.compat.pydantic import pyd
22
21
  from openepd.model.base import BaseOpenEpdSchema
23
22
  from openepd.model.common import Amount
24
23
 
openepd/model/common.py CHANGED
@@ -20,9 +20,7 @@
20
20
  from enum import StrEnum
21
21
  from typing import Annotated, Any
22
22
 
23
- import pydantic as pyd
24
- from pydantic import BaseModel, root_validator
25
-
23
+ from openepd.compat.pydantic import pyd
26
24
  from openepd.model.base import BaseOpenEpdSchema
27
25
 
28
26
 
@@ -32,7 +30,7 @@ class Amount(BaseOpenEpdSchema):
32
30
  qty: float | None = pyd.Field(description="How much of this in the amount.", default=None)
33
31
  unit: str | None = pyd.Field(description="Which unit. SI units are preferred.", example="kg", default=None)
34
32
 
35
- @root_validator
33
+ @pyd.root_validator
36
34
  def check_qty_or_unit(cls, values: dict[str, Any]):
37
35
  """Ensure that qty or unit is provided."""
38
36
  if values["qty"] is None and values["unit"] is None:
@@ -93,7 +91,7 @@ class Location(BaseOpenEpdSchema):
93
91
  )
94
92
 
95
93
 
96
- class WithAttachmentsMixin(BaseModel):
94
+ class WithAttachmentsMixin(pyd.BaseModel):
97
95
  """Mixin for objects that can have attachments."""
98
96
 
99
97
  attachments: dict[Annotated[str, pyd.Field(max_length=200)], pyd.AnyUrl] | None = pyd.Field(
@@ -117,7 +115,7 @@ class WithAttachmentsMixin(BaseModel):
117
115
  self.set_attachment(name, url)
118
116
 
119
117
 
120
- class WithAltIdsMixin(BaseModel):
118
+ class WithAltIdsMixin(pyd.BaseModel):
121
119
  """Mixin for objects that can have alt_ids."""
122
120
 
123
121
  alt_ids: dict[Annotated[str, pyd.Field(max_length=200)], str] | None = pyd.Field(
openepd/model/epd.py CHANGED
@@ -20,8 +20,7 @@
20
20
  import datetime
21
21
  from typing import Annotated
22
22
 
23
- import pydantic as pyd
24
-
23
+ from openepd.compat.pydantic import pyd
25
24
  from openepd.model.base import BaseDocumentFactory, RootDocument
26
25
  from openepd.model.common import Amount, Ingredient, WithAltIdsMixin, WithAttachmentsMixin
27
26
  from openepd.model.lcia import Impacts, OutputFlowSet, ResourceUseSet
openepd/model/lcia.py CHANGED
@@ -19,8 +19,7 @@
19
19
  #
20
20
  from enum import StrEnum
21
21
 
22
- import pydantic as pyd
23
-
22
+ from openepd.compat.pydantic import pyd
24
23
  from openepd.model.base import BaseOpenEpdSchema
25
24
  from openepd.model.common import Measurement
26
25
 
openepd/model/org.py CHANGED
@@ -19,8 +19,7 @@
19
19
  #
20
20
  from typing import Annotated, Optional
21
21
 
22
- import pydantic as pyd
23
-
22
+ from openepd.compat.pydantic import pyd
24
23
  from openepd.model.base import BaseOpenEpdSchema
25
24
  from openepd.model.common import Location, WithAltIdsMixin, WithAttachmentsMixin
26
25
  from openepd.model.validation.common import ReferenceStr
openepd/model/pcr.py CHANGED
@@ -21,8 +21,7 @@ import datetime
21
21
  from enum import StrEnum
22
22
  from typing import Annotated, Optional
23
23
 
24
- import pydantic as pyd
25
-
24
+ from openepd.compat.pydantic import pyd
26
25
  from openepd.model.base import BaseOpenEpdSchema
27
26
  from openepd.model.common import WithAltIdsMixin, WithAttachmentsMixin
28
27
  from openepd.model.org import Org
@@ -18,8 +18,7 @@
18
18
  # Find out more at www.BuildingTransparency.org
19
19
  #
20
20
 
21
- import pydantic as pyd
22
-
21
+ from openepd.compat.pydantic import pyd
23
22
  from openepd.model.base import BaseOpenEpdSchema
24
23
  from openepd.model.specs import concrete, steel
25
24
  from openepd.model.specs.aluminium import AluminiumV1
@@ -19,8 +19,7 @@
19
19
  #
20
20
  from enum import StrEnum
21
21
 
22
- import pydantic as pyd
23
-
22
+ from openepd.compat.pydantic import pyd
24
23
  from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
25
24
  from openepd.model.validation.numbers import RatioFloat
26
25
 
@@ -19,8 +19,7 @@
19
19
  #
20
20
  from enum import StrEnum
21
21
 
22
- import pydantic as pyd
23
-
22
+ from openepd.compat.pydantic import pyd
24
23
  from openepd.model.common import OpenEPDUnit
25
24
  from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
26
25
  from openepd.model.validation.numbers import RatioFloat
@@ -19,8 +19,7 @@
19
19
  #
20
20
  from typing import Any
21
21
 
22
- import pydantic as pyd
23
-
22
+ from openepd.compat.pydantic import pyd
24
23
  from openepd.model.base import BaseOpenEpdSchema, Version
25
24
  from openepd.model.validation.common import validate_version_compatibility, validate_version_format
26
25
  from openepd.model.validation.quantity import QuantityValidator
@@ -20,8 +20,7 @@
20
20
  from enum import StrEnum
21
21
  from typing import Literal
22
22
 
23
- import pydantic as pyd
24
-
23
+ from openepd.compat.pydantic import pyd
25
24
  from openepd.model.base import BaseOpenEpdSchema
26
25
  from openepd.model.common import OpenEPDUnit
27
26
  from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec, BaseOpenEpdSpec
@@ -19,8 +19,7 @@
19
19
  #
20
20
  from enum import StrEnum
21
21
 
22
- import pydantic as pyd
23
-
22
+ from openepd.compat.pydantic import pyd
24
23
  from openepd.model.base import BaseOpenEpdSchema
25
24
  from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
26
25
  from openepd.model.validation.numbers import PositiveInt, RatioFloat
@@ -19,8 +19,7 @@
19
19
  #
20
20
  from enum import StrEnum
21
21
 
22
- import pydantic as pyd
23
-
22
+ from openepd.compat.pydantic import pyd
24
23
  from openepd.model.base import BaseOpenEpdSchema
25
24
  from openepd.model.common import OpenEPDUnit
26
25
  from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
@@ -19,8 +19,7 @@
19
19
  #
20
20
  from enum import StrEnum
21
21
 
22
- import pydantic as pyd
23
-
22
+ from openepd.compat.pydantic import pyd
24
23
  from openepd.model.org import OrgRef
25
24
  from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
26
25
  from openepd.model.validation.numbers import RatioFloat
openepd/model/standard.py CHANGED
@@ -17,8 +17,7 @@
17
17
  # Charles Pankow Foundation, Microsoft Sustainability Fund, Interface, MKA Foundation, and others.
18
18
  # Find out more at www.BuildingTransparency.org
19
19
  #
20
- import pydantic as pyd
21
-
20
+ from openepd.compat.pydantic import pyd
22
21
  from openepd.model.base import BaseOpenEpdSchema
23
22
  from openepd.model.org import Org
24
23
 
@@ -19,8 +19,7 @@
19
19
  #
20
20
  from typing import Annotated, Any, Callable, Type, TypeAlias
21
21
 
22
- import pydantic as pyd
23
-
22
+ from openepd.compat.pydantic import pyd
24
23
  from openepd.model.versioning import Version
25
24
 
26
25
 
@@ -19,7 +19,7 @@
19
19
  #
20
20
  from typing import Annotated
21
21
 
22
- import pydantic as pyd
22
+ from openepd.compat.pydantic import pyd
23
23
 
24
24
  # todo when move to pydantic 2, check that validators are being enforced.
25
25
  RatioFloat = Annotated[float, pyd.Field(ge=0, le=1, example=0.5)]
@@ -20,8 +20,7 @@
20
20
  from abc import ABC, abstractmethod
21
21
  from typing import TYPE_CHECKING, Annotated, Callable, TypeAlias
22
22
 
23
- import pydantic as pyd
24
-
23
+ from openepd.compat.pydantic import pyd
25
24
  from openepd.model.common import OpenEPDUnit
26
25
 
27
26
  if TYPE_CHECKING:
@@ -21,11 +21,10 @@ from abc import ABC
21
21
  from enum import ReprEnum
22
22
  from typing import ClassVar, NamedTuple
23
23
 
24
- import pydantic as pyd
25
- from pydantic import BaseModel
24
+ from openepd.compat.pydantic import pyd
26
25
 
27
26
 
28
- class WithExtVersionMixin(ABC, BaseModel):
27
+ class WithExtVersionMixin(ABC, pyd.BaseModel):
29
28
  """Mixin for extensions supporting versions: recommended way."""
30
29
 
31
30
  _EXT_VERSION: ClassVar[str]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openepd
3
- Version: 1.10.0
3
+ Version: 3.0.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
@@ -18,7 +18,7 @@ Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
19
  Provides-Extra: api-client
20
20
  Requires-Dist: email-validator (>=1.3.1)
21
- Requires-Dist: pydantic (>=1.10,<2.0)
21
+ Requires-Dist: pydantic (>=1.10,<3.0)
22
22
  Requires-Dist: requests (>=2.0) ; extra == "api-client"
23
23
  Project-URL: Repository, https://github.com/cchangelabs/openepd
24
24
  Description-Content-Type: text/markdown
@@ -0,0 +1,59 @@
1
+ openepd/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
2
+ openepd/__version__.py,sha256=3EG0qZOfxJy8z4BBveCccb4Jj_Q3GL7hPeuDffJU65g,855
3
+ openepd/api/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
4
+ openepd/api/base_sync_client.py,sha256=JcNpWsGoIK_1Eg27CAQd7nIjbcfD56jQ1nS6B48Q0cI,21142
5
+ openepd/api/category/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
6
+ openepd/api/category/dto.py,sha256=oyeJp_F_55OVXfTX7EVl6VYrzA_STm4h-x52CW06ExQ,1067
7
+ openepd/api/category/sync_api.py,sha256=QLEyga590UON9zv7864NjdSPkxSoeWObIOCUOLhD9tc,1588
8
+ openepd/api/common.py,sha256=rfxjaDd7gGoen85wSooHt0W9xHdUlSlkTlkr2CO1ccg,8681
9
+ openepd/api/dto/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
10
+ openepd/api/dto/base.py,sha256=s4CivEzgMNG4WKZJoEt3vALVZNWk76soBCNtzr_AVL4,1250
11
+ openepd/api/dto/common.py,sha256=M5S0WphcRhaeJSP9jJY-IqNgLZIRSYmqvlNh_9fNFVY,4705
12
+ openepd/api/dto/meta.py,sha256=_rJ6pZtXyJmoaMhCZ1xnnCzp127LJ6RkayI4sdm6QYc,2377
13
+ openepd/api/dto/mf.py,sha256=ac1W0QPg9ndsUq_Rnv5E7HR0AZXuKSifBoJXo_I4zFE,2211
14
+ openepd/api/dto/params.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
15
+ openepd/api/epd/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
16
+ openepd/api/epd/dto.py,sha256=vFQURo9QzK5fcDNSjc4BlrK2KpkWbnxFle5jPMq-KTw,5091
17
+ openepd/api/epd/sync_api.py,sha256=JEZR3WBZHqP4yOk1qkWsz0oKHMgegoZ7Pvoh6YTVefg,4391
18
+ openepd/api/errors.py,sha256=K6L_T91iJLFSl_7hVS6poV_BUjZJe3qJBUzp8mItm7g,2376
19
+ openepd/api/pcr/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
20
+ openepd/api/pcr/dto.py,sha256=vjkxHzbBLrG9cDoaAbPOPSPjhIRI8z3XewI5wfry6Hk,1649
21
+ openepd/api/pcr/sync_api.py,sha256=j8g23-FuaN2JkROVRo32v77JWpTWDIOWnIyomBbqNd4,1805
22
+ openepd/api/sync_client.py,sha256=DBkoB8rH8OG1d1sJ77h2YvIP8aFQX5eCfaX4sTN0vEs,2504
23
+ openepd/api/test/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
24
+ openepd/bundle/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
25
+ openepd/bundle/base.py,sha256=wSmRp6IjWtOSoSBpK_OhrxJ2OgHu_2hNnwYS4mmNFSA,7086
26
+ openepd/bundle/model.py,sha256=TdFkUTOnd_dklcP-Qahp2glvk1YgEM0HfiqQz5MikeA,2663
27
+ openepd/bundle/reader.py,sha256=z4v_UWyaosktN3DdmnRx8GpLq4DkejjoUsckFfCgUac,6904
28
+ openepd/bundle/writer.py,sha256=AfvzzdAr9ybIbtiZfuX2mAGfddamTxXxUTxtHHrs2Gc,8353
29
+ openepd/compat/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
30
+ openepd/compat/pydantic.py,sha256=wh7vExwILD9QUYAKbrALXtTqNvsc6E8tjVVYXF2WvTY,1174
31
+ openepd/model/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
32
+ openepd/model/base.py,sha256=Yerebn3KP8-CdeeKOuQ1h16qkZnNGn7yvZNiAWutpsI,9154
33
+ openepd/model/category.py,sha256=NhQzKYi02DcdDy83qI_WZuGfYAUcZgsEPEXRa0nGqxs,1856
34
+ openepd/model/common.py,sha256=Uuc-Rbo89Xw89YWbiMtqggvWeFptbgNw6KWdZI8f7wg,5659
35
+ openepd/model/epd.py,sha256=WWWZU1c7HWkZZqkhUNMjyaHJYThboN6ZjmZ2L4UNM6I,14299
36
+ openepd/model/factory.py,sha256=qQZNb4yFN1EQWHHVS-fHnJ2gB-vsKz9hVmXXJE7YaRU,1918
37
+ openepd/model/lcia.py,sha256=MTNbNoTiZn_11XIx9m5D_iyTr0mnfIJYAyfnc1CHaSY,17165
38
+ openepd/model/org.py,sha256=XJcfKGPN90IIGcN-S1ZNy8Zh_yM28iT2wbJD3pk3T08,4013
39
+ openepd/model/pcr.py,sha256=MypmvAR56ldoSMqtq0JKVeqUGHD-heyfsOPXjGcZFQ4,4620
40
+ openepd/model/specs/README.md,sha256=W5LSMpZuW5x36cKS4HRfeFsClsRf8J9yHMMICghdc0s,862
41
+ openepd/model/specs/__init__.py,sha256=evWd99VdLLUNkf0qAVymLgV6Apv7wWXR9Y_VDEduJvg,2315
42
+ openepd/model/specs/aluminium.py,sha256=O5v9hmtTcTJBR6I7BLVKaazAU0k2I-vH6ahD6y-gjD0,2262
43
+ openepd/model/specs/asphalt.py,sha256=1Vmw3jsdTyhPaM9ftIjMvpLj7GbGnZLytaJYDDJQ7bU,3549
44
+ openepd/model/specs/base.py,sha256=T0HsHTFf5ew1sLgUf-7dfifrMPMup7WRc-C5DHAXUc4,2697
45
+ openepd/model/specs/concrete.py,sha256=QT9_DaaMCKk_nQVvfOn7krlYm3gkTwg2FUL5Iq05vEQ,23219
46
+ openepd/model/specs/glass.py,sha256=kZ-oPDD2RkjkyOP14Ci7W1yAqnwmONqgtkUOl6wLAII,14840
47
+ openepd/model/specs/steel.py,sha256=zWTlFppz3SDO3YRzjFTTcFKdnKaUEO2H7UQ_mGV_Fgo,6480
48
+ openepd/model/specs/wood.py,sha256=DtviU3TrcWW74of8si2PCmaHxrdKWO1M2rSCBo_n6v8,5144
49
+ openepd/model/standard.py,sha256=8F70DCagplBe7IvkGJOUmt7td-uh_8zzdpvuVpjk0GY,1535
50
+ openepd/model/validation/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
51
+ openepd/model/validation/common.py,sha256=TPxIUtTNqNLiDsvuSE_dVREtNBe6XsagVMH4u1MYfpA,2652
52
+ openepd/model/validation/numbers.py,sha256=4gkMS35zKnGyfdFyLTgHncNmKpg8-WOYX9qaUr5scE4,1105
53
+ openepd/model/validation/quantity.py,sha256=AwZkDMsNPMqBdb5YbBMMOW5g0DNwOAAnanS01H01NPQ,5194
54
+ openepd/model/versioning.py,sha256=1gqeeAhc2lVonq9ErOD3Ws7XZ0CgZnmlFpKHKrc9IwI,4690
55
+ openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
+ openepd-3.0.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
57
+ openepd-3.0.0.dist-info/METADATA,sha256=oSzZLUn2W2Ni3cIbUtJz7PSrPzyzUBU3qoy57wf17qI,7762
58
+ openepd-3.0.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
59
+ openepd-3.0.0.dist-info/RECORD,,
@@ -1,57 +0,0 @@
1
- openepd/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
2
- openepd/__version__.py,sha256=IgasVAgzAI2ee94IfHXzunhEgc-6FOAn7ZdGC98wwk4,856
3
- openepd/api/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
4
- openepd/api/base_sync_client.py,sha256=JcNpWsGoIK_1Eg27CAQd7nIjbcfD56jQ1nS6B48Q0cI,21142
5
- openepd/api/category/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
6
- openepd/api/category/dto.py,sha256=oyeJp_F_55OVXfTX7EVl6VYrzA_STm4h-x52CW06ExQ,1067
7
- openepd/api/category/sync_api.py,sha256=QLEyga590UON9zv7864NjdSPkxSoeWObIOCUOLhD9tc,1588
8
- openepd/api/common.py,sha256=rfxjaDd7gGoen85wSooHt0W9xHdUlSlkTlkr2CO1ccg,8681
9
- openepd/api/dto/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
10
- openepd/api/dto/base.py,sha256=r3vxG3CpSS2M_L6k5mHVA4_Khunxkmh4QxEPjLOwft8,1233
11
- openepd/api/dto/common.py,sha256=u6N-MmKoS1SZ7-IdVLHU8PQYGxPKKV8-NcZassIaKzo,4692
12
- openepd/api/dto/meta.py,sha256=_jrQuzmWhhitdB0_tREGLdzU2iGOZqYy84zsC3Hexhw,2361
13
- openepd/api/dto/mf.py,sha256=4jqhXqSGtA_MRXvJJFXtj4xMhsT9rucveyVAxt8V-oc,2195
14
- openepd/api/dto/params.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
15
- openepd/api/epd/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
16
- openepd/api/epd/dto.py,sha256=-uEQRi2DBUIrtulgZ8D_qNbptBNrA-vJA09JeeY114Q,5075
17
- openepd/api/epd/sync_api.py,sha256=JEZR3WBZHqP4yOk1qkWsz0oKHMgegoZ7Pvoh6YTVefg,4391
18
- openepd/api/errors.py,sha256=K6L_T91iJLFSl_7hVS6poV_BUjZJe3qJBUzp8mItm7g,2376
19
- openepd/api/pcr/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
20
- openepd/api/pcr/dto.py,sha256=CljjYK50Xz7wlIc0TfpTyyQLwdMao3SJW3hSHJpd8i4,1633
21
- openepd/api/pcr/sync_api.py,sha256=j8g23-FuaN2JkROVRo32v77JWpTWDIOWnIyomBbqNd4,1805
22
- openepd/api/sync_client.py,sha256=DBkoB8rH8OG1d1sJ77h2YvIP8aFQX5eCfaX4sTN0vEs,2504
23
- openepd/api/test/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
24
- openepd/bundle/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
25
- openepd/bundle/base.py,sha256=wSmRp6IjWtOSoSBpK_OhrxJ2OgHu_2hNnwYS4mmNFSA,7086
26
- openepd/bundle/model.py,sha256=NWbpxorLzQ_OIFozV34wz76OWM_ORGTBkS0288chv0k,2647
27
- openepd/bundle/reader.py,sha256=z4v_UWyaosktN3DdmnRx8GpLq4DkejjoUsckFfCgUac,6904
28
- openepd/bundle/writer.py,sha256=AfvzzdAr9ybIbtiZfuX2mAGfddamTxXxUTxtHHrs2Gc,8353
29
- openepd/model/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
30
- openepd/model/base.py,sha256=R81hZd8EZBM2E9EhQbzNa9JLRzAjeNPPkZYEmoUM4v0,9132
31
- openepd/model/category.py,sha256=_6yFyldaDrkZk2_9ZAO2oRTz7ocvkg4T-D_aw5ncgvo,1840
32
- openepd/model/common.py,sha256=darMqOL19hXiZ3YdAi_3CW7ipwAqJqWsw5QVEX-gc7E,5678
33
- openepd/model/epd.py,sha256=T935Aaz6jULmFQHasqfwzgfvHKJ6tSSkbWKWUQ_XPk0,14283
34
- openepd/model/factory.py,sha256=qQZNb4yFN1EQWHHVS-fHnJ2gB-vsKz9hVmXXJE7YaRU,1918
35
- openepd/model/lcia.py,sha256=4AffuUYDZISwhJFcUC_r3JJYq4zL_q0RwS6KatYotU0,17149
36
- openepd/model/org.py,sha256=xV3MQE6iMaXtQWHHwGnjlE5LAd0Joyt-JuvOIvOLQ_4,3997
37
- openepd/model/pcr.py,sha256=t861yFntmy3ewrnGLP47cv3afV-aCCVRlrbpGeRh-7I,4604
38
- openepd/model/specs/README.md,sha256=W5LSMpZuW5x36cKS4HRfeFsClsRf8J9yHMMICghdc0s,862
39
- openepd/model/specs/__init__.py,sha256=nNs2nu1DIKyFC2A-Wc6Zk2VguSti3bC0gMpjop692z0,2299
40
- openepd/model/specs/aluminium.py,sha256=UqTX1gigGNgR9jWi4TEM-bKVGlZ_MBkdsLx4H1-H7KA,2246
41
- openepd/model/specs/asphalt.py,sha256=lBHTultMZqWXe9u-inGzcZRBkvW6axFZ10REZv-OBys,3533
42
- openepd/model/specs/base.py,sha256=S2KmHpBjjZnJ67FS3VJBA3aQ0a440OmhFFTqM8ZEOMM,2681
43
- openepd/model/specs/concrete.py,sha256=I5_KVLkHeMvOrdJRY3TOeSVQ9lQZXcaLu0zHP1RJO1M,23203
44
- openepd/model/specs/glass.py,sha256=gsqTTylaDZTi1U1GQDvmIV08m3h-1uq3iQIm1rvWpJI,14824
45
- openepd/model/specs/steel.py,sha256=u2Lyu69y0bewghfz3JcrKVjKc5bZJKAljA356_EKgWc,6464
46
- openepd/model/specs/wood.py,sha256=ehKJqqW9VfNKgM1S3gazfNNL4Af4SKZBm7HttAjokZQ,5128
47
- openepd/model/standard.py,sha256=YjxpC9nyz6LM8m3z1s5S0exJ1qvA3n59-FBoScg-FL0,1519
48
- openepd/model/validation/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
49
- openepd/model/validation/common.py,sha256=afJrWSvxMf8s9Y80-bG67Fp6W5siqtciMJ3Z6nUOPAI,2636
50
- openepd/model/validation/numbers.py,sha256=60Z9hT8nQwJHvUL7k5nBZsHxxWhaIxNKVbW3BnHS8zM,1088
51
- openepd/model/validation/quantity.py,sha256=Hr-pLrHPQkPHv27jtWE3T0NcYWv5IXTtjxc-CWS2hs4,5178
52
- openepd/model/versioning.py,sha256=fpj45RmphEI5u9fKZLI8FWa83cjH-wkeIU1RLLLwmX8,4700
53
- openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
- openepd-1.10.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
55
- openepd-1.10.0.dist-info/METADATA,sha256=64eqzfMkrzT3XipRbDoI4qi3T2C2XO5E_QMKzUWv0B4,7763
56
- openepd-1.10.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
57
- openepd-1.10.0.dist-info/RECORD,,