openepd 6.13.1__py3-none-any.whl → 7.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/__init__.py +4 -4
- openepd/__version__.py +1 -1
- openepd/api/average_dataset/generic_estimate_sync_api.py +11 -10
- openepd/api/average_dataset/industry_epd_sync_api.py +9 -8
- openepd/api/base_sync_client.py +53 -9
- openepd/api/category/sync_api.py +1 -1
- openepd/api/dto/base.py +4 -4
- openepd/api/dto/common.py +24 -16
- openepd/api/dto/meta.py +15 -11
- openepd/api/dto/mf.py +9 -8
- openepd/api/epd/dto.py +43 -33
- openepd/api/epd/sync_api.py +9 -9
- openepd/api/pcr/sync_api.py +2 -2
- openepd/bundle/model.py +11 -10
- openepd/bundle/reader.py +12 -5
- openepd/bundle/writer.py +17 -6
- openepd/m49/__init__.py +2 -0
- openepd/m49/const.py +5 -2
- openepd/m49/{geo_converter.py → utils.py} +24 -2
- openepd/model/base.py +60 -43
- openepd/model/category.py +13 -10
- openepd/model/common.py +100 -55
- openepd/model/declaration.py +93 -64
- openepd/model/epd.py +51 -43
- openepd/model/generic_estimate.py +28 -13
- openepd/model/industry_epd.py +15 -9
- openepd/model/lcia.py +132 -113
- openepd/model/org.py +54 -33
- openepd/model/pcr.py +38 -32
- openepd/model/specs/asphalt.py +31 -22
- openepd/model/specs/base.py +11 -9
- openepd/model/specs/concrete.py +60 -39
- openepd/model/specs/range/aggregates.py +9 -9
- openepd/model/specs/range/aluminium.py +7 -7
- openepd/model/specs/range/asphalt.py +22 -19
- openepd/model/specs/range/cladding.py +16 -16
- openepd/model/specs/range/cmu.py +10 -9
- openepd/model/specs/range/concrete.py +36 -27
- openepd/model/specs/range/conveying_equipment.py +16 -15
- openepd/model/specs/range/electrical.py +24 -22
- openepd/model/specs/range/finishes.py +109 -104
- openepd/model/specs/range/fire_and_smoke_protection.py +7 -7
- openepd/model/specs/range/furnishings.py +16 -12
- openepd/model/specs/range/manufacturing_inputs.py +16 -16
- openepd/model/specs/range/masonry.py +16 -16
- openepd/model/specs/range/mechanical.py +47 -47
- openepd/model/specs/range/mechanical_insulation.py +7 -7
- openepd/model/specs/range/network_infrastructure.py +54 -46
- openepd/model/specs/range/openings.py +36 -31
- openepd/model/specs/range/plumbing.py +15 -13
- openepd/model/specs/range/precast_concrete.py +20 -16
- openepd/model/specs/range/sheathing.py +18 -18
- openepd/model/specs/range/steel.py +25 -25
- openepd/model/specs/range/thermal_moisture_protection.py +20 -20
- openepd/model/specs/range/utility_piping.py +9 -9
- openepd/model/specs/range/wood.py +19 -19
- openepd/model/specs/range/wood_joists.py +8 -8
- openepd/model/specs/singular/__init__.py +9 -5
- openepd/model/specs/singular/aggregates.py +22 -15
- openepd/model/specs/singular/aluminium.py +20 -5
- openepd/model/specs/singular/asphalt.py +44 -20
- openepd/model/specs/singular/cladding.py +38 -23
- openepd/model/specs/singular/cmu.py +26 -11
- openepd/model/specs/singular/common.py +3 -2
- openepd/model/specs/singular/concrete.py +85 -48
- openepd/model/specs/singular/conveying_equipment.py +30 -17
- openepd/model/specs/singular/deprecated/__init__.py +3 -2
- openepd/model/specs/singular/deprecated/concrete.py +68 -33
- openepd/model/specs/singular/deprecated/steel.py +28 -15
- openepd/model/specs/singular/electrical.py +69 -41
- openepd/model/specs/singular/finishes.py +250 -140
- openepd/model/specs/singular/fire_and_smoke_protection.py +9 -6
- openepd/model/specs/singular/furnishings.py +16 -14
- openepd/model/specs/singular/manufacturing_inputs.py +23 -14
- openepd/model/specs/singular/masonry.py +66 -21
- openepd/model/specs/singular/mechanical.py +48 -47
- openepd/model/specs/singular/mechanical_insulation.py +7 -6
- openepd/model/specs/singular/mixins/conduit_mixin.py +13 -10
- openepd/model/specs/singular/network_infrastructure.py +111 -52
- openepd/model/specs/singular/openings.py +127 -95
- openepd/model/specs/singular/plumbing.py +15 -12
- openepd/model/specs/singular/precast_concrete.py +68 -54
- openepd/model/specs/singular/sheathing.py +47 -27
- openepd/model/specs/singular/steel.py +69 -45
- openepd/model/specs/singular/thermal_moisture_protection.py +36 -20
- openepd/model/specs/singular/utility_piping.py +11 -8
- openepd/model/specs/singular/wood.py +48 -24
- openepd/model/specs/singular/wood_joists.py +19 -6
- openepd/model/standard.py +15 -8
- openepd/model/validation/common.py +9 -3
- openepd/model/validation/numbers.py +0 -13
- openepd/model/validation/quantity.py +53 -25
- openepd/model/versioning.py +9 -6
- openepd/patch_pydantic.py +0 -93
- {openepd-6.13.1.dist-info → openepd-7.0.0.dist-info}/METADATA +1 -1
- openepd-7.0.0.dist-info/RECORD +142 -0
- openepd/compat/__init__.py +0 -15
- openepd/compat/compat_functional_validators.py +0 -25
- openepd/compat/pydantic.py +0 -30
- openepd-6.13.1.dist-info/RECORD +0 -145
- {openepd-6.13.1.dist-info → openepd-7.0.0.dist-info}/LICENSE +0 -0
- {openepd-6.13.1.dist-info → openepd-7.0.0.dist-info}/WHEEL +0 -0
openepd/patch_pydantic.py
CHANGED
@@ -13,96 +13,3 @@
|
|
13
13
|
# See the License for the specific language governing permissions and
|
14
14
|
# limitations under the License.
|
15
15
|
#
|
16
|
-
from typing import Any
|
17
|
-
|
18
|
-
from pydantic import utils as pydantic_utils
|
19
|
-
|
20
|
-
from openepd.compat.pydantic import pyd
|
21
|
-
|
22
|
-
|
23
|
-
def patch_pydantic_metaclass():
|
24
|
-
"""
|
25
|
-
Patch pydantic's ModelMetaclass to restore class attribute lookup for fields.
|
26
|
-
|
27
|
-
In pydantic, while the model fields are defined in the model as class-level attributes, in runtime they disappear
|
28
|
-
due to ModelMetaclass logic. ModelMetaclass takes the defined attributes, removes them from class dict and puts
|
29
|
-
into a special __fields__ attribute to avoid naming conflict.
|
30
|
-
|
31
|
-
We would like to be able to access the attributes via dot notation in the runtimes, since it makes refactoring
|
32
|
-
easier.
|
33
|
-
|
34
|
-
This class exposes the original fields when accessed via class name. For example, one can call `Pcr.name` and get
|
35
|
-
`ModelField`, in addition to calling `pcr.__fields__` on an instance.
|
36
|
-
"""
|
37
|
-
|
38
|
-
def model_metaclass__getattr__(cls, name: str) -> Any:
|
39
|
-
if name in cls.__fields__:
|
40
|
-
return cls.__fields__[name]
|
41
|
-
return getattr(super, name)
|
42
|
-
|
43
|
-
pyd.main.ModelMetaclass.__getattr__ = model_metaclass__getattr__
|
44
|
-
|
45
|
-
|
46
|
-
def patch_pydantic_metaclass_validator():
|
47
|
-
"""
|
48
|
-
Patch the internal validator function used during model construction to support modified metaclass.
|
49
|
-
|
50
|
-
Pydantic has a special guard which stops execution if a model defines field which shadows a basemodel interface.
|
51
|
-
For example, if someone would define a field named `__fields__` this would break code.
|
52
|
-
|
53
|
-
With the modified metaclass functionality, we are exposing the original fields as class attributes, and this
|
54
|
-
breaks this check.
|
55
|
-
|
56
|
-
This patcher method modifies the pydantic internals so that the check is retained, but it is not causing exception
|
57
|
-
when doing the normal field inheritance.
|
58
|
-
"""
|
59
|
-
model_field_classes = list()
|
60
|
-
|
61
|
-
try:
|
62
|
-
from pydantic.v1.fields import ModelField as ModelFieldV1
|
63
|
-
|
64
|
-
model_field_classes.append(ModelFieldV1)
|
65
|
-
except ImportError:
|
66
|
-
pass
|
67
|
-
|
68
|
-
try:
|
69
|
-
from pydantic.fields import ModelField as ModelFieldPydanticV1
|
70
|
-
|
71
|
-
model_field_classes.append(ModelFieldPydanticV1)
|
72
|
-
except ImportError:
|
73
|
-
pass
|
74
|
-
|
75
|
-
try:
|
76
|
-
from pydantic_core.core_schema import ModelField as ModelFieldV2
|
77
|
-
|
78
|
-
model_field_classes.append(ModelFieldV2)
|
79
|
-
except ImportError:
|
80
|
-
pass
|
81
|
-
model_field_classes_tuple = tuple(model_field_classes)
|
82
|
-
|
83
|
-
def pydantic_utils__validate_field_name(bases: list[type[pyd.BaseModel]], field_name: str) -> None:
|
84
|
-
for base in bases:
|
85
|
-
if attr := getattr(base, field_name, None):
|
86
|
-
if isinstance(attr, model_field_classes_tuple):
|
87
|
-
continue
|
88
|
-
|
89
|
-
raise NameError(
|
90
|
-
f'Field name "{field_name}" shadows a BaseModel attribute; '
|
91
|
-
f"use a different field name with \"alias='{field_name}'\"."
|
92
|
-
)
|
93
|
-
|
94
|
-
pyd.main.validate_field_name = pydantic_utils__validate_field_name
|
95
|
-
pydantic_utils.validate_field_name = pydantic_utils__validate_field_name
|
96
|
-
|
97
|
-
|
98
|
-
def patch_pydantic():
|
99
|
-
"""
|
100
|
-
Modify Pydantic to support field attribute access via class.
|
101
|
-
|
102
|
-
Example: Field the_field in the model TheModel(BaseModel). Before this patch, one can do
|
103
|
-
`TheModel().__fields__["the_field"]' to get field descriptor. After the fix, one can do TheModel.the_field.
|
104
|
-
|
105
|
-
To disable, set env variable `OPENEPD_DISABLE_PYDANTIC_PATCH` to "1", "yes" or "true".
|
106
|
-
"""
|
107
|
-
patch_pydantic_metaclass()
|
108
|
-
patch_pydantic_metaclass_validator()
|
@@ -0,0 +1,142 @@
|
|
1
|
+
openepd/__init__.py,sha256=o8u8-hR9V6fC9zReuofWQmP29Q8fkc1bRVDKcL0R9MI,801
|
2
|
+
openepd/__version__.py,sha256=PCi2D9R69zErtn17M6az0izAFOXYLv1Egqf6d3NPSzc,638
|
3
|
+
openepd/api/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
4
|
+
openepd/api/average_dataset/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
5
|
+
openepd/api/average_dataset/generic_estimate_sync_api.py,sha256=SRIs-qmb_wO7ELumeP1DLXJbVUtdBJ4CToecoCIsPAQ,8015
|
6
|
+
openepd/api/average_dataset/industry_epd_sync_api.py,sha256=b3oBjt-HIZuuHd6qDTJgHAIBHV73FCIZSc8cLq-htXE,6338
|
7
|
+
openepd/api/base_sync_client.py,sha256=lVOn8d_EM6-Vwn99poRt1IEyLmDwatXDOH1D68F0LQ8,21739
|
8
|
+
openepd/api/category/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
9
|
+
openepd/api/category/dto.py,sha256=-nsSNH1zWIluFuF50qmnIcvloX08Jk_KV5mebJqzLe4,850
|
10
|
+
openepd/api/category/sync_api.py,sha256=DVBosgq5iVkG8ttpuu8kUK8oNkWpGv322Tff9TMSi88,1376
|
11
|
+
openepd/api/common.py,sha256=bLSER3RQQFR4lyEuxQPKNjTaa3S0K8fFi8x4QRAPM_g,8812
|
12
|
+
openepd/api/dto/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
13
|
+
openepd/api/dto/base.py,sha256=hZbzzBDPEN5-5Hhfcy7FgZj_Ya3g9oS7CgaQYhQiRwU,1041
|
14
|
+
openepd/api/dto/common.py,sha256=qwZaquepK1vQrOHVSzP5hMVy8klwrfqmpTSfrJ-YBs0,4489
|
15
|
+
openepd/api/dto/meta.py,sha256=0x_rAx4ijO4l0C9C3jSu4sfX7lNctqCAUd51WUkoY3s,2276
|
16
|
+
openepd/api/dto/mf.py,sha256=3pobE0iihSBqH0rZgWP95_IlQzSJBqKZrYYufWDobUo,2000
|
17
|
+
openepd/api/dto/params.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
18
|
+
openepd/api/epd/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
19
|
+
openepd/api/epd/dto.py,sha256=rcRUKUj-N885K6tjQnPGiFVDhc8yd9nUJKnkhIwgOtM,5084
|
20
|
+
openepd/api/epd/sync_api.py,sha256=QN62LQH3sHLvCqCVo2MGgN9ZvoTxIsdleEypyW3m-zA,7365
|
21
|
+
openepd/api/errors.py,sha256=BgZeNfMNAKVPfhpuiVapCXNBSsXygAOWql-gy7m9j7E,2868
|
22
|
+
openepd/api/pcr/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
23
|
+
openepd/api/pcr/sync_api.py,sha256=bWa6PyU0xT1sZzG4nAHUo83gjo3YcP5QUxVXOMFNQH0,1567
|
24
|
+
openepd/api/sync_client.py,sha256=reD_OXsaVOvUvnC-cyp5aq8sKSOH2Z8xmImxV2ClQIM,3105
|
25
|
+
openepd/api/test/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
26
|
+
openepd/api/utils.py,sha256=xOU8ihC0eghsoaCFhC85PU4WYRwNxVEpfK3gzq4e9ik,2092
|
27
|
+
openepd/bundle/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
28
|
+
openepd/bundle/base.py,sha256=Ou2zlAV7VRKp7Lxu8h4k56OLEMwn5F1nrEEF_ies_lE,6869
|
29
|
+
openepd/bundle/model.py,sha256=bO6GAN_hMmpnYn9LQAHl6bw9cqwphlZZtMCkQZHzP8c,2627
|
30
|
+
openepd/bundle/reader.py,sha256=_kKOCcCtHF-DuezifsArvyUzDMAK2vs4pJB6cNttTeA,6801
|
31
|
+
openepd/bundle/writer.py,sha256=ZWQKVRfd0wrys1R4rOabK8KFvwNhUpeBdK9KGS-yt5Q,8283
|
32
|
+
openepd/m49/__init__.py,sha256=vkXC6i8OeCl5K88JUIRN_NKfsAIpNIaN-fyPmmd-Lfk,689
|
33
|
+
openepd/m49/const.py,sha256=buspTHOOWhkBXWUIS0oqvQ0y1L7y70Y_PXilkiBIKD4,31819
|
34
|
+
openepd/m49/utils.py,sha256=Qm8HvxAZlQncsyUYDO0lG0feMFFnT4HQPNSMp78W4zU,7111
|
35
|
+
openepd/model/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
36
|
+
openepd/model/base.py,sha256=7REXTR3MOBuxu7dg5b89rYCxU-pi6fABmOV43JZ2ZZA,10798
|
37
|
+
openepd/model/category.py,sha256=iyzzAsiVwW4zJ61oYsm9Sy-sEBA71-aMFXcJP1Y-dPI,1734
|
38
|
+
openepd/model/common.py,sha256=YfPIJ_aVdTbAZPHC6uUgwjrlUO4kXiSQMul9fhqQEN0,14511
|
39
|
+
openepd/model/declaration.py,sha256=1NT3NhaYI_5u1K9ErfphOSFMY6r1-97qpBYNxuCmbs0,14687
|
40
|
+
openepd/model/epd.py,sha256=fb674IUQtleUIbqK0C4qo7ZVP0G98WSdulP3_N2Ql9o,12576
|
41
|
+
openepd/model/factory.py,sha256=doexyqZXJVGd45T1JsbjuyGUjEykW-MerKUq4SQHhRY,2656
|
42
|
+
openepd/model/generic_estimate.py,sha256=mdksGzDM92aANIgc1jhwdYKOvCju8aE1iJD3k3lQBwE,4140
|
43
|
+
openepd/model/geography.py,sha256=Jx7NIDdk_sIvwyh-7YxnIjAwIHW2HCQK7UtFGM2xKtw,42095
|
44
|
+
openepd/model/industry_epd.py,sha256=Cqn01IUNSZqRkyU05TwtOLXDKlg0YnGzqvKL8A__zbI,4061
|
45
|
+
openepd/model/lcia.py,sha256=aa3IlbVCiC6dYVT3WqLMWBt3JzGOdeda8URC5L130tg,26377
|
46
|
+
openepd/model/org.py,sha256=RrfjyEDOaC_Dyp4XNxQgq_FRtxN2ZQmjLpjuZOELrqs,5779
|
47
|
+
openepd/model/pcr.py,sha256=W_GjmMwFxZGLnbbU7khoYziSvOxxd6Id4xBdhitq_SE,5655
|
48
|
+
openepd/model/specs/README.md,sha256=UGhSiFJ9hOxT1mZl-5ZrhkOrPKf1W_gcu5CI9hzV7LU,2430
|
49
|
+
openepd/model/specs/__init__.py,sha256=YcAvn0h_Bhz_Cb4-uEl8DiBI82nXogQsocB-c2zvr_A,3094
|
50
|
+
openepd/model/specs/asphalt.py,sha256=6jAZEBkB4hpwcSDvwVUGiNXgg3W3NElgdhS9caVpocI,3545
|
51
|
+
openepd/model/specs/base.py,sha256=qHmQux01A1XGzjAtInti_4MS5HAKp1VQpKhC1EhUdc4,2682
|
52
|
+
openepd/model/specs/concrete.py,sha256=gjly5f7QEuaKnYZStMm0CisU0Us1PUa2HmxPyhhmuO0,5573
|
53
|
+
openepd/model/specs/enums.py,sha256=_WMe0l8ZKPIGQG53A1rB_Sv_p2izr8Zemg9AEEYOU2g,63638
|
54
|
+
openepd/model/specs/range/__init__.py,sha256=ZXgsyzn_c6H2SPCo5hTVZOjRqlCf0HvVVMDQ4RGaPSU,4502
|
55
|
+
openepd/model/specs/range/accessories.py,sha256=wnOv1V_uatA6g_9QVfZaSp-rNLbyZ_KS-t3wlHaeEsI,2498
|
56
|
+
openepd/model/specs/range/aggregates.py,sha256=wnGI6AxtQaaYgCGvqYUuM94JVOBipCBRvFLTwpflsyA,2555
|
57
|
+
openepd/model/specs/range/aluminium.py,sha256=U58Sg6TJi0CfqOtoiNT4M8uwx9H2jlTPxmMWCt-JKHc,2741
|
58
|
+
openepd/model/specs/range/asphalt.py,sha256=qd7oGvsIztz2WRMlCfTVqQfRUYBDA-1qzQTiF7tD2O8,3002
|
59
|
+
openepd/model/specs/range/bulk_materials.py,sha256=SuKhmJXMa9jl0CrkYr3QVvPX_GDbr7KATzrSS-fJEU4,1051
|
60
|
+
openepd/model/specs/range/cast_decks_and_underlayment.py,sha256=37fx7jDRy6xryZTVweW_vu78h0kRs5vQurGS-Ypayog,1132
|
61
|
+
openepd/model/specs/range/cladding.py,sha256=-cBYQrABiTbByl-ZioHKBmTL2h-SjukeSJdNTLY7FgQ,7277
|
62
|
+
openepd/model/specs/range/cmu.py,sha256=Syfk4gJzWNzBQcKsPKgVcQQutR2syruM1ZJUJ1FdCdU,1879
|
63
|
+
openepd/model/specs/range/concrete.py,sha256=BIeM1ozlfjLqohMTfdFPxmk6cIKg19MwYXyVhoHL1i8,7064
|
64
|
+
openepd/model/specs/range/conveying_equipment.py,sha256=AvSg6PqK-GcFt-aUCTsaBhjPyEjGfVPu61QiHscQt1M,3216
|
65
|
+
openepd/model/specs/range/electrical.py,sha256=jebPfOwDCzUS5ppCXbZBcgQLtMNYl__f5P0hGOfiE10,11945
|
66
|
+
openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py,sha256=rbdmHvz9nRMgcWrCGVnN0xXSl5ZezuwArOZ_4xCQIgM,2525
|
67
|
+
openepd/model/specs/range/electricity.py,sha256=yn_S25C_tZqseb8hiJ1yiHszu2mQ49FOFWWCqNpOBY0,997
|
68
|
+
openepd/model/specs/range/finishes.py,sha256=gJnMvjhivQC0jnKizKcrwn1Y7UJjrK_emixigQhbbfE,21792
|
69
|
+
openepd/model/specs/range/fire_and_smoke_protection.py,sha256=KLH5t3d-a2cppF5i-uW4233z1vAPbJIY1zTn89_gV4k,3333
|
70
|
+
openepd/model/specs/range/furnishings.py,sha256=SPZDMacVvXHA_zcE4l3fL5hroZWaEeSsql0oSn3BnBo,6576
|
71
|
+
openepd/model/specs/range/grouting.py,sha256=BQPxH6BvlXpdhLEZBui9zTuY93K_9syjoa6rdnF8GGY,1095
|
72
|
+
openepd/model/specs/range/manufacturing_inputs.py,sha256=iqK4QS-T5vyjMQtl5v63Feb99qSNwKS0kM-1izoJTzA,5615
|
73
|
+
openepd/model/specs/range/masonry.py,sha256=egeqDr0K3eTFDHeIzFHrg9_u9d6XIHOSmBPnBERkvxY,2908
|
74
|
+
openepd/model/specs/range/material_handling.py,sha256=9jxRHpjMKu71B5omH55UjkNVJvaTLgTMtEidSKPFn5c,1483
|
75
|
+
openepd/model/specs/range/mechanical.py,sha256=4_onG6dMjYDvpFe7NmF_gPFwI0N52CAZty4YwDUqx4E,10463
|
76
|
+
openepd/model/specs/range/mechanical_insulation.py,sha256=eBvNMuW-zZyphay9aKOphwfAv2Uo3AiBR1UG9sOwBnk,1733
|
77
|
+
openepd/model/specs/range/network_infrastructure.py,sha256=WPudKji72n46SXDGCEV9PMWD-zheZd7rvBJv3cZ0L3E,8738
|
78
|
+
openepd/model/specs/range/openings.py,sha256=icQFUQLwhoWc5GFrnxUJuQ6pxUzSxTWMdQHyQ342TUM,15587
|
79
|
+
openepd/model/specs/range/other_electrical_equipment.py,sha256=H4tZHcHyR2uUYHn-bQfLC6hR4tynVp_7EJbiI-YpK7Y,1001
|
80
|
+
openepd/model/specs/range/other_materials.py,sha256=k7Gv6YvWy43B-QFBabBt-TkvkC450Pz2a2pz9t6r4OU,4495
|
81
|
+
openepd/model/specs/range/plumbing.py,sha256=GS-q4nMOaE1aoPwHmDXEjlG7xuZOl0veovZraSSQcc4,5382
|
82
|
+
openepd/model/specs/range/precast_concrete.py,sha256=9bNluxpGuQ_7HqA5rpvg9FJHeMyrGSIH-c1M9Mzz2qQ,3820
|
83
|
+
openepd/model/specs/range/sheathing.py,sha256=FOosFJ8fsyqQnlLTgEqxM4xzDtiYP2jQ7dCf2T4K1O4,3446
|
84
|
+
openepd/model/specs/range/steel.py,sha256=XEf5jjfiN8uZlY3QoIccGgI1RRxNPaT7eHZE_YFt95o,10503
|
85
|
+
openepd/model/specs/range/thermal_moisture_protection.py,sha256=BOZZTNA9mHTaImN4J484LYnYTvv3joBX5OkH6LGBklc,9470
|
86
|
+
openepd/model/specs/range/utility_piping.py,sha256=doRcQRfBWvHX7FDDYk-bEU5rVCS_vjZ_5gKslI0xR7Y,2671
|
87
|
+
openepd/model/specs/range/wood.py,sha256=0Prq5n3n_-DEFe4-fBKDj9zCu2NdBD7ysCun7DRhT_o,6942
|
88
|
+
openepd/model/specs/range/wood_joists.py,sha256=PVGJZPdaI685rUI6TS3MZrAFkeMckFGpCYTNJLBr6IM,1786
|
89
|
+
openepd/model/specs/singular/__init__.py,sha256=xN6exBUHRoaM-30YfLPfB4UrLLcQo55MOfK70Dg5KIQ,6945
|
90
|
+
openepd/model/specs/singular/accessories.py,sha256=xcuSJrG84oTm_w76_wlv_sItfK36gSyDmUD2TnpZnVE,2013
|
91
|
+
openepd/model/specs/singular/aggregates.py,sha256=n_AbZK6TJHJ6boyMz6AyikUkMiNlq8G_NOcqEy_A-Sg,2975
|
92
|
+
openepd/model/specs/singular/aluminium.py,sha256=n25EvcrwYNkz4OvZbu4FH008owSkC8B8j7qEHGefTD0,2519
|
93
|
+
openepd/model/specs/singular/asphalt.py,sha256=pVOBCaceMKR6eKztVZ-fRk1bgoY0X8QfBr_KCkgvZyM,3488
|
94
|
+
openepd/model/specs/singular/bulk_materials.py,sha256=LKTmh432ak51L0GsVf-40389Lwx-sxZm_jSfzWNfagE,875
|
95
|
+
openepd/model/specs/singular/cast_decks_and_underlayment.py,sha256=HjIEKekxCAKx51XEvH1tthUP6gNTbntDoi8gSu8LjZk,955
|
96
|
+
openepd/model/specs/singular/cladding.py,sha256=KuKNcmkZSKTMVMsNIHQIZ3qkj21_vj_6I7cIladPmo4,6857
|
97
|
+
openepd/model/specs/singular/cmu.py,sha256=J5BqQZyoZA6tGVBxg77jaeFOXLNvLwDmA0qAe8wHgJs,2100
|
98
|
+
openepd/model/specs/singular/common.py,sha256=1WSoihRTeOkdcOPSmcauzyHNyAVspiacAU5lQX9vahk,1030
|
99
|
+
openepd/model/specs/singular/concrete.py,sha256=w7_fvJri1bY1f1sEe6kuxvbjg2iiwDPTh-6Kx5CzHCY,8257
|
100
|
+
openepd/model/specs/singular/conveying_equipment.py,sha256=Hcy1zcXKsGIuh303xiRJwDmnEOqyGzhsZoVEz3DpdHY,3203
|
101
|
+
openepd/model/specs/singular/deprecated/__init__.py,sha256=OmC79bG2zbDcaPZAjSx5T506h2D7QJXMJOkXSSf8LVo,2617
|
102
|
+
openepd/model/specs/singular/deprecated/concrete.py,sha256=xqHxwFUzy0XEa66e1N1Z3aKt6hhnHhbJ76XiRoe0wtQ,5604
|
103
|
+
openepd/model/specs/singular/deprecated/steel.py,sha256=xqp6rqA49ARY7uvObvnNh-y9cN0WCy0Qz3sMuuIBXPY,3647
|
104
|
+
openepd/model/specs/singular/electrical.py,sha256=lLp8MjAULlnfINi7AayexTGDorSEH_r9OONFcxVHcs4,11598
|
105
|
+
openepd/model/specs/singular/electrical_transmission_and_distribution_equipment.py,sha256=oZYyHgnXn9RH3YzltUEDiiQKrin2mvMlTgC3OhxV7DY,1978
|
106
|
+
openepd/model/specs/singular/electricity.py,sha256=f1cJ9eklNUf97khCIZiT5-z8V_TbOcvH2me_1UTQVrE,823
|
107
|
+
openepd/model/specs/singular/finishes.py,sha256=8BtFK2_olB8OJQFv8rxf7afoLhqlJI1o2tEKopidOGA,24398
|
108
|
+
openepd/model/specs/singular/fire_and_smoke_protection.py,sha256=h8Dy4ps_xfa5g8EQEIN8OHxjH6aDvqmZUFRdEzYy7aY,3081
|
109
|
+
openepd/model/specs/singular/furnishings.py,sha256=6MZT42b-nlZdQvvZw1_tVg5GFlMQ2gw_r6zBjxMtxHc,5608
|
110
|
+
openepd/model/specs/singular/grouting.py,sha256=pg2tX3W7a2TQ3z_eyFYGlBJY3WEwn6JlZyqM3PQIJcU,934
|
111
|
+
openepd/model/specs/singular/manufacturing_inputs.py,sha256=OBy7Lzm1TbC8kGxE3YXIXeyrqIPqf2_rXcGEN7MEMBw,5233
|
112
|
+
openepd/model/specs/singular/masonry.py,sha256=e9siblrPFFSvIjucYkwZzSlpSSZPZ9rA1bdVIDQz-RM,3627
|
113
|
+
openepd/model/specs/singular/material_handling.py,sha256=iEeUx1hNKla669y0zl-QAJn6xA7ceq75aRG8qT0p56Q,1274
|
114
|
+
openepd/model/specs/singular/mechanical.py,sha256=q-89Ch0uTlEqFRXM5QPgkmf23L-xyCzVK_mQ33pU4UA,10191
|
115
|
+
openepd/model/specs/singular/mechanical_insulation.py,sha256=OjgDkH9ft2mxsfYveuwozCT6x-WrF_XC9V9KbEYKwuQ,1616
|
116
|
+
openepd/model/specs/singular/mixins/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
117
|
+
openepd/model/specs/singular/mixins/conduit_mixin.py,sha256=H5rbXIy3lpiU_Rub3_f7cECtQE2odu1-nIKuRjtO6ts,1959
|
118
|
+
openepd/model/specs/singular/network_infrastructure.py,sha256=QGMIFzexHH94phkFw7iYl-fTZ_514dwYgvC-2sHjOZw,9316
|
119
|
+
openepd/model/specs/singular/openings.py,sha256=fcYBvSJW64fBArvs0ajcRXRegE07p-YmURICmLA8ilY,19544
|
120
|
+
openepd/model/specs/singular/other_electrical_equipment.py,sha256=FX7p4rMuUbTrz1yDwKkS-Z6odohoq-zCw6SU3Kw5ISs,814
|
121
|
+
openepd/model/specs/singular/other_materials.py,sha256=_00_fCPn7G_-HVKC1cQcNvBDf4CtXFLOGvYLDJtL5ZA,3498
|
122
|
+
openepd/model/specs/singular/plumbing.py,sha256=dP6r7xy2yeP8ICEBN79CfJqyDiuwpTtDnURBfWmFWPs,4639
|
123
|
+
openepd/model/specs/singular/precast_concrete.py,sha256=25vn5UxiQbhsNisqBF9_GYASMl3D1iuDWxfnV5HOV4k,7567
|
124
|
+
openepd/model/specs/singular/sheathing.py,sha256=J1lHRo0eTcWGhqwLHGnEZq3SHJkVCvSedvg2lGuwDyo,3995
|
125
|
+
openepd/model/specs/singular/steel.py,sha256=rrWAyz6w5bgV2lR6H93dLZ_ruwr8N67vATh9nIHS6eU,10809
|
126
|
+
openepd/model/specs/singular/thermal_moisture_protection.py,sha256=ZtN1yfED959eMqpdLASge06OZzCseurtPzXrmi8LSjo,8363
|
127
|
+
openepd/model/specs/singular/utility_piping.py,sha256=kHflrQpCFGW54daIWwbhb0rvWoPy1Zwa6KGD8eB5ryQ,2522
|
128
|
+
openepd/model/specs/singular/wood.py,sha256=ChvILu6Pkend3O-45Fs-FrK0n5yWlu5BFZVYrCv5_TQ,6810
|
129
|
+
openepd/model/specs/singular/wood_joists.py,sha256=WhS8_Og8e4cCEd43v00njGNvjLdfCwAabO7XOogC5o4,1829
|
130
|
+
openepd/model/standard.py,sha256=5y57ZakJ9nbvz1Hxx8Uo6jISNMGg9kg2kBeBZrjBB5g,1744
|
131
|
+
openepd/model/validation/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
132
|
+
openepd/model/validation/common.py,sha256=ZlpByfGzCHZuGfj9p0S_uG8NoGy9ezJVZmwAITp7gR8,2450
|
133
|
+
openepd/model/validation/enum.py,sha256=ttODVtMEQaBemMFywGUNlXU4bAM25FiBlVDKZbOv2iY,1793
|
134
|
+
openepd/model/validation/numbers.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
135
|
+
openepd/model/validation/quantity.py,sha256=ots09u4406szY1k1_LVEOxK30fyEWnxml8Z0LlgAbnE,21044
|
136
|
+
openepd/model/versioning.py,sha256=de53OlduidxAkDlSbAu6xrIy2IUuCnwI69vUJPCXX_8,4512
|
137
|
+
openepd/patch_pydantic.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
138
|
+
openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
139
|
+
openepd-7.0.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
140
|
+
openepd-7.0.0.dist-info/METADATA,sha256=f7Da4D9bA9aa394xf_QcKXu0yFnX_oZyjIuiEwFKbrA,9038
|
141
|
+
openepd-7.0.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
142
|
+
openepd-7.0.0.dist-info/RECORD,,
|
openepd/compat/__init__.py
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright 2025 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
|
-
#
|
@@ -1,25 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright 2025 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 typing import Any
|
17
|
-
|
18
|
-
__all__ = ["AfterValidator"]
|
19
|
-
|
20
|
-
|
21
|
-
class AfterValidator:
|
22
|
-
"""Placeholder stub for validator, unused in pydantic 1."""
|
23
|
-
|
24
|
-
def __init__(self, *args: Any, **kwargs: Any) -> None:
|
25
|
-
pass
|
openepd/compat/pydantic.py
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright 2025 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
|
-
try:
|
17
|
-
from pydantic import functional_validators # type: ignore
|
18
|
-
from pydantic import v1 as pyd # type: ignore
|
19
|
-
from pydantic.v1 import generics as pyd_generics # type: ignore
|
20
|
-
|
21
|
-
except ImportError:
|
22
|
-
import pydantic as pyd # type: ignore[no-redef]
|
23
|
-
from pydantic import generics as pyd_generics # type: ignore[no-redef]
|
24
|
-
|
25
|
-
from . import compat_functional_validators as functional_validators # type: ignore[no-redef]
|
26
|
-
|
27
|
-
|
28
|
-
pydantic = pyd
|
29
|
-
|
30
|
-
__all__ = ["pyd", "pydantic", "pyd_generics", "functional_validators"]
|
openepd-6.13.1.dist-info/RECORD
DELETED
@@ -1,145 +0,0 @@
|
|
1
|
-
openepd/__init__.py,sha256=fhxfEyEurLvSfvQci-vb3njzl_lvhcLXiZrecCOaMU8,794
|
2
|
-
openepd/__version__.py,sha256=sgmt6cETSc5fqwbwM-ICVdVetdp89fDLgd8mFB7w4go,639
|
3
|
-
openepd/api/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
4
|
-
openepd/api/average_dataset/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
5
|
-
openepd/api/average_dataset/generic_estimate_sync_api.py,sha256=KHCmSKMOJTQct6vhdhAatAENoouStc_yVRza5AFNoIo,7953
|
6
|
-
openepd/api/average_dataset/industry_epd_sync_api.py,sha256=CG5c6FQD3I8sl9PKI9VHFUaJlFrnF8E14i4k6Uv0B74,6286
|
7
|
-
openepd/api/base_sync_client.py,sha256=E6yrqME-c1emV1BrI33dwjdu6wcFoRkqWtg1zFyki2Y,20992
|
8
|
-
openepd/api/category/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
9
|
-
openepd/api/category/dto.py,sha256=-nsSNH1zWIluFuF50qmnIcvloX08Jk_KV5mebJqzLe4,850
|
10
|
-
openepd/api/category/sync_api.py,sha256=XlT5a_IkfaVARrZY0hjDUzDVP2ThkR2j_MRNqz6zkTE,1371
|
11
|
-
openepd/api/common.py,sha256=bLSER3RQQFR4lyEuxQPKNjTaa3S0K8fFi8x4QRAPM_g,8812
|
12
|
-
openepd/api/dto/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
13
|
-
openepd/api/dto/base.py,sha256=w-Ci0MN2vTIQ0Vl0YKLUXVG_fC0OxiwojT9SX3lWktg,1033
|
14
|
-
openepd/api/dto/common.py,sha256=3d-frR8kqVw0TFwFE7u7ovxKQM0ZAzNcwaLiGgSO-zE,4488
|
15
|
-
openepd/api/dto/meta.py,sha256=IrGJtfl6-mBXLSWZjcyr08WvvOh9VL0LJnx5ubhJqco,2160
|
16
|
-
openepd/api/dto/mf.py,sha256=59YvIrH5teHlpxINihxryFyCjs7jBZZuqYIO1K-daA8,1994
|
17
|
-
openepd/api/dto/params.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
18
|
-
openepd/api/epd/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
19
|
-
openepd/api/epd/dto.py,sha256=MqhHjaNdtOc-KT2zNI88EB9-1d2a6CS2zzSus8HefBo,4874
|
20
|
-
openepd/api/epd/sync_api.py,sha256=coM-4VDn_sn3DeBbA4YnStsMBqX7zQZSmUnUXHi0gM8,7320
|
21
|
-
openepd/api/errors.py,sha256=BgZeNfMNAKVPfhpuiVapCXNBSsXygAOWql-gy7m9j7E,2868
|
22
|
-
openepd/api/pcr/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
23
|
-
openepd/api/pcr/sync_api.py,sha256=MyBOlBqdJt35-fXk-Vr-RpiKUbN_XlilUwwFGvVROdQ,1557
|
24
|
-
openepd/api/sync_client.py,sha256=reD_OXsaVOvUvnC-cyp5aq8sKSOH2Z8xmImxV2ClQIM,3105
|
25
|
-
openepd/api/test/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
26
|
-
openepd/api/utils.py,sha256=xOU8ihC0eghsoaCFhC85PU4WYRwNxVEpfK3gzq4e9ik,2092
|
27
|
-
openepd/bundle/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
28
|
-
openepd/bundle/base.py,sha256=Ou2zlAV7VRKp7Lxu8h4k56OLEMwn5F1nrEEF_ies_lE,6869
|
29
|
-
openepd/bundle/model.py,sha256=_fQWW1KsxKquFFB6JtU3dyc82re1vqmwMpxe6zUEfSE,2605
|
30
|
-
openepd/bundle/reader.py,sha256=sXhqwxXFN2GdNS0cQHdaxKEtNM4jzhcML1yN4XAIRzE,6687
|
31
|
-
openepd/bundle/writer.py,sha256=gHK1D-F-td2C18QFWerg666JUTLaGUkTUSQURJi9o74,8136
|
32
|
-
openepd/compat/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
33
|
-
openepd/compat/compat_functional_validators.py,sha256=aWg3a80fqT8zjN0S260N-Ad2WFKAaB8ByN7ArBW3NMA,834
|
34
|
-
openepd/compat/pydantic.py,sha256=dNwPXK1X5xq9sdkd0kcbKQAUIter1GAfcxXOl6hmITQ,1146
|
35
|
-
openepd/m49/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
36
|
-
openepd/m49/const.py,sha256=O31VJ5_sR4GAOvJnFsi3An2YMaMa96H7XBqaQ0kNwnw,31734
|
37
|
-
openepd/m49/geo_converter.py,sha256=mRamQTVwd35kwn5-23N3E8cxqpYG7l9eW787SJYM7nw,6515
|
38
|
-
openepd/model/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
39
|
-
openepd/model/base.py,sha256=1GeaEDn-ppy94GaOaZI1y6Yew_0eBBho1COaxfzzLCw,9834
|
40
|
-
openepd/model/category.py,sha256=reeOVRDuZPYU77EMwG0K5VjnK2H9yOGxT0PJXXqrjEk,1639
|
41
|
-
openepd/model/common.py,sha256=2MYjaXXq3_ECjTD7lI4SSZm3wguLrPraaObUpqF0t5g,13062
|
42
|
-
openepd/model/declaration.py,sha256=56cjshR21PxTVCM5xOq_JH7Rw4gw1q_9jdroHaDDOiI,13832
|
43
|
-
openepd/model/epd.py,sha256=qYYJQKbcFNOU_qS5Ag9CXn7Tx0TkIoUOZQEDGJI-xZw,12290
|
44
|
-
openepd/model/factory.py,sha256=doexyqZXJVGd45T1JsbjuyGUjEykW-MerKUq4SQHhRY,2656
|
45
|
-
openepd/model/generic_estimate.py,sha256=zLGTyf4Uzmp2C0m-J1ePWItSz2RGdZ0OiGPWC5nhKHk,3992
|
46
|
-
openepd/model/geography.py,sha256=Jx7NIDdk_sIvwyh-7YxnIjAwIHW2HCQK7UtFGM2xKtw,42095
|
47
|
-
openepd/model/industry_epd.py,sha256=QZr7OhgGkzqZ8H5p6dCIVk9zSHEYtK3y9Nk-DvkFMyk,4011
|
48
|
-
openepd/model/lcia.py,sha256=gS4WFcw7v8PKKDCBUQXQP5I8Jh_TdyZyIklAjUc5HL4,25507
|
49
|
-
openepd/model/org.py,sha256=MtaUrD8IdSbcMJEwL2lnXOIXNfE8wpzrepFSe2qh2uc,5342
|
50
|
-
openepd/model/pcr.py,sha256=b8WmeII8MZ3rJFWxugqv_Z0ETan8NMWj9L6mSrhneJk,5494
|
51
|
-
openepd/model/specs/README.md,sha256=UGhSiFJ9hOxT1mZl-5ZrhkOrPKf1W_gcu5CI9hzV7LU,2430
|
52
|
-
openepd/model/specs/__init__.py,sha256=YcAvn0h_Bhz_Cb4-uEl8DiBI82nXogQsocB-c2zvr_A,3094
|
53
|
-
openepd/model/specs/asphalt.py,sha256=bfNnTAIT6BN2trWOAoYOjDgfbhvIbBw4hfFaTn9Ecpk,3420
|
54
|
-
openepd/model/specs/base.py,sha256=cJTv4kO3QyS0vqfytTlKrOBu-2sBwx7NM0_YZS4i3rY,2652
|
55
|
-
openepd/model/specs/concrete.py,sha256=D9jbhZDtTXNBoAgljQBPxsmGsMvLSIAP5H53ZYiXcGI,5336
|
56
|
-
openepd/model/specs/enums.py,sha256=_WMe0l8ZKPIGQG53A1rB_Sv_p2izr8Zemg9AEEYOU2g,63638
|
57
|
-
openepd/model/specs/range/__init__.py,sha256=ZXgsyzn_c6H2SPCo5hTVZOjRqlCf0HvVVMDQ4RGaPSU,4502
|
58
|
-
openepd/model/specs/range/accessories.py,sha256=wnOv1V_uatA6g_9QVfZaSp-rNLbyZ_KS-t3wlHaeEsI,2498
|
59
|
-
openepd/model/specs/range/aggregates.py,sha256=udVbsYc1Lyrd6a4YZBGNDQ3sBi-L3WLub_e1ecq7U-Q,2549
|
60
|
-
openepd/model/specs/range/aluminium.py,sha256=m2u43hHAcPmvm9dkhcqMojTRuJmX4gofW_uU5AZzqG8,2745
|
61
|
-
openepd/model/specs/range/asphalt.py,sha256=DN3--5g0WL2AQ8Vc23M899rPqxCaFgEhaYqV8vWRbZY,2934
|
62
|
-
openepd/model/specs/range/bulk_materials.py,sha256=SuKhmJXMa9jl0CrkYr3QVvPX_GDbr7KATzrSS-fJEU4,1051
|
63
|
-
openepd/model/specs/range/cast_decks_and_underlayment.py,sha256=37fx7jDRy6xryZTVweW_vu78h0kRs5vQurGS-Ypayog,1132
|
64
|
-
openepd/model/specs/range/cladding.py,sha256=3rMnT-km0tZ9b_Wb-i8vMxO-Uw94SPJqCYzMLDD4BOQ,7236
|
65
|
-
openepd/model/specs/range/cmu.py,sha256=4bf9z1ps_WTYfhdtG_duqEwTahIBrykm6v7c-uyeyWY,1862
|
66
|
-
openepd/model/specs/range/concrete.py,sha256=lmLEhll8xgkMu__BRbQRACvZ5u3R9ui2oVhE9qR0RMs,6907
|
67
|
-
openepd/model/specs/range/conveying_equipment.py,sha256=Ly5i8yUwn-2Xjh8-mA1-rwel0eRQZ028zrEApO2XhxQ,3176
|
68
|
-
openepd/model/specs/range/electrical.py,sha256=TkmXFiGbyX5rtNqVYftr37wuhwyx-3T71IfXlUufkkU,11860
|
69
|
-
openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py,sha256=rbdmHvz9nRMgcWrCGVnN0xXSl5ZezuwArOZ_4xCQIgM,2525
|
70
|
-
openepd/model/specs/range/electricity.py,sha256=yn_S25C_tZqseb8hiJ1yiHszu2mQ49FOFWWCqNpOBY0,997
|
71
|
-
openepd/model/specs/range/finishes.py,sha256=oCaPVYJja1KYxwEzTHCl7HtxQ2mokzeyahjyP33zHSg,21291
|
72
|
-
openepd/model/specs/range/fire_and_smoke_protection.py,sha256=u5veICQznf-woYlh49S_IbvPA23CLWEy7Ngvic2FIpw,3337
|
73
|
-
openepd/model/specs/range/furnishings.py,sha256=7r9albaHmuf0ttqkSQ6elJcSzgFgOHSrwAfhEpJMm5k,6531
|
74
|
-
openepd/model/specs/range/grouting.py,sha256=BQPxH6BvlXpdhLEZBui9zTuY93K_9syjoa6rdnF8GGY,1095
|
75
|
-
openepd/model/specs/range/manufacturing_inputs.py,sha256=xzgkNz7yG8cp715hxS0LtJX9nfJ5RQR8GxlD2bAduwE,5574
|
76
|
-
openepd/model/specs/range/masonry.py,sha256=IyjQMb8Mx3tpJlHIIam0OrMkFsJXKvc0WXRLRBupozY,2867
|
77
|
-
openepd/model/specs/range/material_handling.py,sha256=9jxRHpjMKu71B5omH55UjkNVJvaTLgTMtEidSKPFn5c,1483
|
78
|
-
openepd/model/specs/range/mechanical.py,sha256=vAUXSYJXBIhDNuVJHOGeP--Pvt0YObJLdedmkXF6_9c,10267
|
79
|
-
openepd/model/specs/range/mechanical_insulation.py,sha256=S2-NkFVkjLmn_dk3gsG8C2YcV0SFXbOCgY6LKberqh8,1737
|
80
|
-
openepd/model/specs/range/network_infrastructure.py,sha256=8bJGGEME7TELLxKAfKCCkZfA-K27Mp7tkC71W6YOxEc,8498
|
81
|
-
openepd/model/specs/range/openings.py,sha256=tgy7XbiwPleqrsSVrKBadvmnXSyV3bnOVf84K8vwEMQ,15451
|
82
|
-
openepd/model/specs/range/other_electrical_equipment.py,sha256=H4tZHcHyR2uUYHn-bQfLC6hR4tynVp_7EJbiI-YpK7Y,1001
|
83
|
-
openepd/model/specs/range/other_materials.py,sha256=k7Gv6YvWy43B-QFBabBt-TkvkC450Pz2a2pz9t6r4OU,4495
|
84
|
-
openepd/model/specs/range/plumbing.py,sha256=RYfP6ail7cYrwBluxmbAkC9icbxXaxdrdnf4Vqhy9ho,5342
|
85
|
-
openepd/model/specs/range/precast_concrete.py,sha256=hXnljuc6djoScmx50ZWkmVjnihCTjiZV755aaKCs6uA,3763
|
86
|
-
openepd/model/specs/range/sheathing.py,sha256=tATL6dzKTdN0rUKZRzZd779dLhKdEavL5Bjybnt2MjU,3395
|
87
|
-
openepd/model/specs/range/steel.py,sha256=tPRtWSqhVjmbbWVFoFpS7rQKDsaYn9D_6afBOYhqPug,10417
|
88
|
-
openepd/model/specs/range/thermal_moisture_protection.py,sha256=WOyUzR_t39mpekg1vOrU9e529DyR1EPM0h3QAP46kdc,9409
|
89
|
-
openepd/model/specs/range/utility_piping.py,sha256=mQTrKbMTES_0Yta9DBnKehsmA2BAN_zYF_uPZCTKLPo,2665
|
90
|
-
openepd/model/specs/range/wood.py,sha256=1ZAkUwcFF9etc7CZ1_BSvjchpnqnngfZihYZMtuLdeM,6946
|
91
|
-
openepd/model/specs/range/wood_joists.py,sha256=NCBHL0gdKwdKlGCP6up_Royl9BtWUUeuFfS1r2vIZ30,1785
|
92
|
-
openepd/model/specs/singular/__init__.py,sha256=igkfspzFQzoIFPU6Gd6RbxkyLr2RFPGn7brKUo_jN5s,6910
|
93
|
-
openepd/model/specs/singular/accessories.py,sha256=xcuSJrG84oTm_w76_wlv_sItfK36gSyDmUD2TnpZnVE,2013
|
94
|
-
openepd/model/specs/singular/aggregates.py,sha256=oSfArxvLUj63w_U0tZViRyiOpMRRjE72ncy2BimKxco,2934
|
95
|
-
openepd/model/specs/singular/aluminium.py,sha256=pkcjMf_gBTler1nzbb7_XEKCpUD1hyM-tly3Twfr_lo,2403
|
96
|
-
openepd/model/specs/singular/asphalt.py,sha256=JDviENdY_2tcj5SrzgJnYJHuxTIOhLCWcXhmoSiELKk,3295
|
97
|
-
openepd/model/specs/singular/bulk_materials.py,sha256=LKTmh432ak51L0GsVf-40389Lwx-sxZm_jSfzWNfagE,875
|
98
|
-
openepd/model/specs/singular/cast_decks_and_underlayment.py,sha256=HjIEKekxCAKx51XEvH1tthUP6gNTbntDoi8gSu8LjZk,955
|
99
|
-
openepd/model/specs/singular/cladding.py,sha256=ywT6E8iv55khqbrkMRFOkm_PAWht3qt4ybNDNRa1wyw,6588
|
100
|
-
openepd/model/specs/singular/cmu.py,sha256=yexfb3REDGvVG3yD_1Yg1Zt-atBWLa8tv2lPmBPDWfw,1952
|
101
|
-
openepd/model/specs/singular/common.py,sha256=rPJTp2XuSa_dOXj6ZikzMv-lLbEwPLaP-XsXkjDB4uI,1048
|
102
|
-
openepd/model/specs/singular/concrete.py,sha256=G3PRrqNdlAougtuvvmjp1Fp-qFOvUTVbpW2UFfMQ-ts,7718
|
103
|
-
openepd/model/specs/singular/conveying_equipment.py,sha256=AK_KdGyBDh0_Dl3YCkIyfHEfpiJmntdH-e9rFaIZv2s,3042
|
104
|
-
openepd/model/specs/singular/deprecated/__init__.py,sha256=f8I04fHO5QWpNtorrCgbUXz4r0B0zgsk8zDUfXu_i80,2635
|
105
|
-
openepd/model/specs/singular/deprecated/concrete.py,sha256=swSOfViIvy7z923C6uHBcIZrv_JRMv7wSJHpg9PGAJg,5265
|
106
|
-
openepd/model/specs/singular/deprecated/steel.py,sha256=0A3Y50XpLsPt105t_H8BzByaDUbLoX1o_QIr566JfB4,3499
|
107
|
-
openepd/model/specs/singular/electrical.py,sha256=BiaPpZBGBzUt5wVacd1tOIZ9dRn9ZAKFg582UfNnmyI,11113
|
108
|
-
openepd/model/specs/singular/electrical_transmission_and_distribution_equipment.py,sha256=oZYyHgnXn9RH3YzltUEDiiQKrin2mvMlTgC3OhxV7DY,1978
|
109
|
-
openepd/model/specs/singular/electricity.py,sha256=f1cJ9eklNUf97khCIZiT5-z8V_TbOcvH2me_1UTQVrE,823
|
110
|
-
openepd/model/specs/singular/finishes.py,sha256=bAlNZiUP-HwePaJyC1D4j2fpv0xnMp3V5mhtAs9iaxQ,22571
|
111
|
-
openepd/model/specs/singular/fire_and_smoke_protection.py,sha256=1uyEGdMAsboYORHvSFN1wftRVAps_UJ1Ep3Dk9arT3s,3058
|
112
|
-
openepd/model/specs/singular/furnishings.py,sha256=6V6Dc4xph8PcIQhuuLFyFGL4w2Yh_ByEKCNvQfUkxZQ,5603
|
113
|
-
openepd/model/specs/singular/grouting.py,sha256=pg2tX3W7a2TQ3z_eyFYGlBJY3WEwn6JlZyqM3PQIJcU,934
|
114
|
-
openepd/model/specs/singular/manufacturing_inputs.py,sha256=9WSDOVN0mUqvFXqWf82lkpHi-XRQSMcEpe9bweegwhU,5093
|
115
|
-
openepd/model/specs/singular/masonry.py,sha256=f6nph-gscAmVeJ60bG-ebto5kz0fgh0LY27n0VutGFA,3165
|
116
|
-
openepd/model/specs/singular/material_handling.py,sha256=iEeUx1hNKla669y0zl-QAJn6xA7ceq75aRG8qT0p56Q,1274
|
117
|
-
openepd/model/specs/singular/mechanical.py,sha256=VvW9PQ3VI8GCaqu5MKUmxjmcaHkKDAHAIhLyK-DVlUw,9862
|
118
|
-
openepd/model/specs/singular/mechanical_insulation.py,sha256=h-Ir-jiLF-cpiHap4wx5G4fpvsRRKzqcGVXb5U5aqvQ,1607
|
119
|
-
openepd/model/specs/singular/mixins/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
120
|
-
openepd/model/specs/singular/mixins/conduit_mixin.py,sha256=tj6p-MF84rg4LGxXPC65uMvmn6NlxmATuloe4TcuQdk,1928
|
121
|
-
openepd/model/specs/singular/network_infrastructure.py,sha256=eB3p1zu1u15Ly5iuyyJ4xl3Z1GuBCRVU18Wpz8FWZrg,8521
|
122
|
-
openepd/model/specs/singular/openings.py,sha256=UbdojHW3yxV9DdWECgyANKicdH5czz6pyFPKpzzLxmw,18941
|
123
|
-
openepd/model/specs/singular/other_electrical_equipment.py,sha256=FX7p4rMuUbTrz1yDwKkS-Z6odohoq-zCw6SU3Kw5ISs,814
|
124
|
-
openepd/model/specs/singular/other_materials.py,sha256=_00_fCPn7G_-HVKC1cQcNvBDf4CtXFLOGvYLDJtL5ZA,3498
|
125
|
-
openepd/model/specs/singular/plumbing.py,sha256=fHmKyy1aQxu8NZ3RTwxuA0CCERMgwVUdMA74kMDVc8o,4568
|
126
|
-
openepd/model/specs/singular/precast_concrete.py,sha256=W2tKf0vOnAdfeGc1n7Pk8yx9jy44afdFB0cbwHjw1HI,7327
|
127
|
-
openepd/model/specs/singular/sheathing.py,sha256=dfBSGElsJ-suj3WH7CZx5k3_v5E5IHVDOscwRI5yghE,3709
|
128
|
-
openepd/model/specs/singular/steel.py,sha256=bPK2BUS_DfM7ulgvG-IZtB9yZETZV9HiUF-9TzodTYI,10529
|
129
|
-
openepd/model/specs/singular/thermal_moisture_protection.py,sha256=7fikgfPyopWruPzhWdyU-YWvlo5facOjXbviyl_qOEw,8195
|
130
|
-
openepd/model/specs/singular/utility_piping.py,sha256=KunlvMGqH_Z62TecGnT_4HhsTase01aJJIGIsyY5mGY,2483
|
131
|
-
openepd/model/specs/singular/wood.py,sha256=6bGl5TgJgAZxosh_46YcZDm57DOyFyLZ9g2W-oDlhl8,6591
|
132
|
-
openepd/model/specs/singular/wood_joists.py,sha256=WL_l48aTuazQkWwdz5EQcGrbK5biWhqHqhWdHXITPIo,1719
|
133
|
-
openepd/model/standard.py,sha256=LFqZKK8nYJHKvcW0BaLoFm0-TVYpQr2l9l70vHLRiNk,1688
|
134
|
-
openepd/model/validation/__init__.py,sha256=9THJcV3LT7JDBOMz1px-QFf_sdJ0LOqJ5dmA9Dvvtd4,620
|
135
|
-
openepd/model/validation/common.py,sha256=3HYzftDMYvaX_gpl337g8AdsohMkaOoOR6pmE22Mm5c,2435
|
136
|
-
openepd/model/validation/enum.py,sha256=ttODVtMEQaBemMFywGUNlXU4bAM25FiBlVDKZbOv2iY,1793
|
137
|
-
openepd/model/validation/numbers.py,sha256=r15pLe8oWY1tshazQvis_suVXpC6PUcPzKTvj3QTL9Q,851
|
138
|
-
openepd/model/validation/quantity.py,sha256=vfSe-3DGQf84bCp_sMIU0ZPAA1wIilodpTjLSMoz5Jk,20194
|
139
|
-
openepd/model/versioning.py,sha256=cm3LaAUODnbbu3W3pC6baJzxKusTQ1kZH-PwwScCj3c,4473
|
140
|
-
openepd/patch_pydantic.py,sha256=LVqDMKn723VYYf_V-RgTLxIb1xiUtYOfPYCQP6-7RoM,4122
|
141
|
-
openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
142
|
-
openepd-6.13.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
143
|
-
openepd-6.13.1.dist-info/METADATA,sha256=T7QapSryr1s5pRrcSY-TBnm6HauXRFkEOD-_If1ZfpI,9039
|
144
|
-
openepd-6.13.1.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
145
|
-
openepd-6.13.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|