openepd 5.3.0__py3-none-any.whl → 6.0.1__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.
Files changed (77) hide show
  1. openepd/__version__.py +1 -1
  2. openepd/api/average_dataset/generic_estimate_sync_api.py +8 -7
  3. openepd/api/epd/sync_api.py +6 -11
  4. openepd/model/common.py +22 -0
  5. openepd/model/epd.py +1 -1
  6. openepd/model/specs/__init__.py +34 -75
  7. openepd/model/specs/base.py +2 -1
  8. openepd/model/specs/range/aggregates.py +2 -2
  9. openepd/model/specs/range/aluminium.py +1 -1
  10. openepd/model/specs/range/asphalt.py +4 -4
  11. openepd/model/specs/range/cladding.py +1 -1
  12. openepd/model/specs/range/cmu.py +6 -5
  13. openepd/model/specs/range/concrete.py +1 -1
  14. openepd/model/specs/range/conveying_equipment.py +1 -1
  15. openepd/model/specs/range/electrical.py +3 -2
  16. openepd/model/specs/range/finishes.py +13 -6
  17. openepd/model/specs/range/fire_and_smoke_protection.py +1 -1
  18. openepd/model/specs/range/furnishings.py +1 -1
  19. openepd/model/specs/range/manufacturing_inputs.py +1 -1
  20. openepd/model/specs/range/masonry.py +2 -2
  21. openepd/model/specs/range/mechanical.py +1 -1
  22. openepd/model/specs/range/mechanical_insulation.py +1 -1
  23. openepd/model/specs/range/network_infrastructure.py +1 -1
  24. openepd/model/specs/range/openings.py +12 -5
  25. openepd/model/specs/range/plumbing.py +1 -1
  26. openepd/model/specs/range/precast_concrete.py +1 -1
  27. openepd/model/specs/range/sheathing.py +3 -3
  28. openepd/model/specs/range/steel.py +10 -5
  29. openepd/model/specs/range/thermal_moisture_protection.py +1 -1
  30. openepd/model/specs/range/utility_piping.py +1 -1
  31. openepd/model/specs/range/wood.py +8 -6
  32. openepd/model/specs/range/wood_joists.py +1 -1
  33. openepd/model/specs/{generated → singular}/__init__.py +37 -35
  34. openepd/model/specs/{generated → singular}/aggregates.py +1 -1
  35. openepd/model/specs/{generated → singular}/aluminium.py +1 -1
  36. openepd/model/specs/{generated → singular}/asphalt.py +6 -4
  37. openepd/model/specs/{generated → singular}/cladding.py +1 -1
  38. openepd/model/specs/{generated → singular}/cmu.py +10 -4
  39. openepd/model/specs/{generated → singular}/concrete.py +1 -1
  40. openepd/model/specs/{generated → singular}/conveying_equipment.py +1 -1
  41. openepd/model/specs/{generated → singular}/electrical.py +4 -3
  42. openepd/model/specs/{generated → singular}/finishes.py +9 -6
  43. openepd/model/specs/{generated → singular}/fire_and_smoke_protection.py +1 -1
  44. openepd/model/specs/{generated → singular}/furnishings.py +1 -1
  45. openepd/model/specs/{generated → singular}/manufacturing_inputs.py +1 -1
  46. openepd/model/specs/{generated → singular}/masonry.py +4 -1
  47. openepd/model/specs/{generated → singular}/mechanical.py +1 -1
  48. openepd/model/specs/{generated → singular}/mechanical_insulation.py +1 -1
  49. openepd/model/specs/{generated → singular}/mixins/conduit_mixin.py +1 -1
  50. openepd/model/specs/{generated → singular}/network_infrastructure.py +2 -2
  51. openepd/model/specs/{generated → singular}/openings.py +10 -4
  52. openepd/model/specs/{generated → singular}/plumbing.py +1 -1
  53. openepd/model/specs/{generated → singular}/sheathing.py +3 -3
  54. openepd/model/specs/{generated → singular}/steel.py +11 -5
  55. openepd/model/specs/{generated → singular}/thermal_moisture_protection.py +1 -1
  56. openepd/model/specs/{generated → singular}/utility_piping.py +1 -1
  57. openepd/model/specs/{generated → singular}/wood.py +13 -7
  58. openepd/model/specs/{generated → singular}/wood_joists.py +2 -2
  59. openepd/model/validation/quantity.py +179 -0
  60. {openepd-5.3.0.dist-info → openepd-6.0.1.dist-info}/METADATA +1 -1
  61. openepd-6.0.1.dist-info/RECORD +139 -0
  62. openepd-5.3.0.dist-info/RECORD +0 -139
  63. /openepd/model/specs/{generated/enums.py → enums.py} +0 -0
  64. /openepd/model/specs/{generated → singular}/accessories.py +0 -0
  65. /openepd/model/specs/{generated → singular}/bulk_materials.py +0 -0
  66. /openepd/model/specs/{generated → singular}/cast_decks_and_underlayment.py +0 -0
  67. /openepd/model/specs/{generated → singular}/common.py +0 -0
  68. /openepd/model/specs/{generated → singular}/electrical_transmission_and_distribution_equipment.py +0 -0
  69. /openepd/model/specs/{generated → singular}/electricity.py +0 -0
  70. /openepd/model/specs/{generated → singular}/grouting.py +0 -0
  71. /openepd/model/specs/{generated → singular}/material_handling.py +0 -0
  72. /openepd/model/specs/{generated → singular}/mixins/__init__.py +0 -0
  73. /openepd/model/specs/{generated → singular}/other_electrical_equipment.py +0 -0
  74. /openepd/model/specs/{generated → singular}/other_materials.py +0 -0
  75. /openepd/model/specs/{generated → singular}/precast_concrete.py +0 -0
  76. {openepd-5.3.0.dist-info → openepd-6.0.1.dist-info}/LICENSE +0 -0
  77. {openepd-5.3.0.dist-info → openepd-6.0.1.dist-info}/WHEEL +0 -0
@@ -13,10 +13,11 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
+ from typing import Annotated
17
+
16
18
  from openepd.compat.pydantic import pyd
17
- from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
18
- from openepd.model.specs.generated.common import HasForestPracticesCertifiers
19
- from openepd.model.specs.generated.enums import (
19
+ from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec, CodegenSpec
20
+ from openepd.model.specs.enums import (
20
21
  AllFabrication,
21
22
  AllTimberSpecies,
22
23
  CompositeLumberFabrication,
@@ -25,6 +26,7 @@ from openepd.model.specs.generated.enums import (
25
26
  SawnTimberSpecies,
26
27
  SheathingPanelsFabrication,
27
28
  )
29
+ from openepd.model.specs.singular.common import HasForestPracticesCertifiers
28
30
  from openepd.model.validation.numbers import RatioFloat
29
31
  from openepd.model.validation.quantity import LengthMmStr
30
32
 
@@ -156,15 +158,19 @@ class WoodV1(BaseOpenEpdHierarchicalSpec, HasForestPracticesCertifiers):
156
158
  weather_exposed: bool | None = pyd.Field(default=None, description="Weather exposed", example=True)
157
159
  fire_retardant: bool | None = pyd.Field(default=None, description="Fire retardant", example=True)
158
160
  decay_resistant: bool | None = pyd.Field(default=None, description="Decay resistant", example=True)
159
- fsc_certified: RatioFloat | None = pyd.Field(
161
+ fsc_certified: Annotated[RatioFloat | None, CodegenSpec(override_type=RatioFloat)] = pyd.Field(
160
162
  default=None, description="Forest Stewardship Council certified proportion", example=0.3, ge=0, le=1
161
163
  )
162
- fsc_certified_z: float | None = pyd.Field(default=None, description="", example=0.7)
164
+ fsc_certified_z: Annotated[float | None, CodegenSpec(override_type=float)] = pyd.Field(
165
+ default=None, description="", example=0.7
166
+ )
163
167
 
164
- recycled_content: RatioFloat | None = pyd.Field(
168
+ recycled_content: Annotated[RatioFloat | None, CodegenSpec(override_type=RatioFloat)] = pyd.Field(
165
169
  default=None, description="Recycled content", example=0.3, ge=0, le=1
166
170
  )
167
- recycled_content_z: float | None = pyd.Field(default=None, description="", example=0.7)
171
+ recycled_content_z: Annotated[float | None, CodegenSpec(override_type=float)] = pyd.Field(
172
+ default=None, description="", example=0.7
173
+ )
168
174
 
169
175
  # Nested specs:
170
176
  CompositeLumber: CompositeLumberV1 | None = None
@@ -15,8 +15,8 @@
15
15
  #
16
16
  from openepd.compat.pydantic import pyd
17
17
  from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
18
- from openepd.model.specs.generated.common import HasForestPracticesCertifiers
19
- from openepd.model.specs.generated.enums import AllFabrication, AllTimberSpecies
18
+ from openepd.model.specs.enums import AllFabrication, AllTimberSpecies
19
+ from openepd.model.specs.singular.common import HasForestPracticesCertifiers
20
20
 
21
21
 
22
22
  class WoodJoistsV1(BaseOpenEpdHierarchicalSpec, HasForestPracticesCertifiers):
@@ -307,6 +307,48 @@ class AreaPerVolumeStr(QuantityStr):
307
307
  unit = "m2 / l"
308
308
 
309
309
 
310
+ class ThermalConductivityStr(QuantityStr):
311
+ """Thermal conductivity quantity type."""
312
+
313
+ unit = "1 W / K / m"
314
+
315
+
316
+ class ThermalExpansionStr(QuantityStr):
317
+ """Thermal conductivity quantity type."""
318
+
319
+ unit = "1 / K"
320
+
321
+
322
+ class ForceNStr(QuantityStr):
323
+ """Force (N) type."""
324
+
325
+ unit = "1 N"
326
+
327
+
328
+ class YarnWeightStr(QuantityStr):
329
+ """Yarn weight quantity type."""
330
+
331
+ unit = "1 g / m2"
332
+
333
+
334
+ class UtilizationStr(QuantityStr):
335
+ """Utilization quantity type."""
336
+
337
+ unit = "1 h / yr"
338
+
339
+
340
+ class UFactorStr(QuantityStr):
341
+ """Utilization quantity type."""
342
+
343
+ unit = "1 USI"
344
+
345
+
346
+ class RFactorStr(QuantityStr):
347
+ """R-Factor type."""
348
+
349
+ unit = "1 RSI"
350
+
351
+
310
352
  class WithDimensionalityMixin(BaseOpenEpdSchema):
311
353
  """Class for dimensionality-validated amounts."""
312
354
 
@@ -696,6 +738,136 @@ class AmountRangeAreaPerVolume(AmountRangeWithDimensionality, WithFlowRateMixin)
696
738
  pass
697
739
 
698
740
 
741
+ class WithThermalConductivity(WithDimensionalityMixin):
742
+ """Unit validation mixin."""
743
+
744
+ dimensionality_unit = ThermalConductivityStr.unit
745
+
746
+
747
+ class AmountThermalConductivityMixin(Amount, WithThermalConductivity):
748
+ """Area per volume."""
749
+
750
+ pass
751
+
752
+
753
+ class AmountRangeThermalConductivity(AmountRangeWithDimensionality, WithThermalConductivity):
754
+ """Area per volume range."""
755
+
756
+ pass
757
+
758
+
759
+ class WithForce(WithDimensionalityMixin):
760
+ """
761
+ Unit validation mixin.
762
+
763
+ May the Force be with you.
764
+ """
765
+
766
+ dimensionality_unit = ForceNStr.unit
767
+
768
+
769
+ class AmountForce(Amount, WithForce):
770
+ """Area per volume."""
771
+
772
+ pass
773
+
774
+
775
+ class AmountRangeForce(AmountRangeWithDimensionality, WithForce):
776
+ """Area per volume range."""
777
+
778
+ pass
779
+
780
+
781
+ class WithYarnWeight(WithDimensionalityMixin):
782
+ """Unit validation mixin."""
783
+
784
+ dimensionality_unit = YarnWeightStr.unit
785
+
786
+
787
+ class AmountYarnWeight(Amount, WithYarnWeight):
788
+ """Yarn weight."""
789
+
790
+ pass
791
+
792
+
793
+ class AmountRangeYarnWeight(AmountRangeWithDimensionality, WithYarnWeight):
794
+ """Yarn weight range."""
795
+
796
+ pass
797
+
798
+
799
+ class WithThermalExpansion(WithDimensionalityMixin):
800
+ """Unit validation mixin."""
801
+
802
+ dimensionality_unit = ThermalExpansionStr.unit
803
+
804
+
805
+ class AmountThermalExpansion(Amount, WithThermalExpansion):
806
+ """Yarn weight."""
807
+
808
+ pass
809
+
810
+
811
+ class AmountRangeThermalExpansion(AmountRangeWithDimensionality, WithThermalExpansion):
812
+ """Yarn weight range."""
813
+
814
+ pass
815
+
816
+
817
+ class WithUtilization(WithDimensionalityMixin):
818
+ """Unit validation mixin."""
819
+
820
+ dimensionality_unit = UtilizationStr.unit
821
+
822
+
823
+ class AmountUtilization(Amount, WithUtilization):
824
+ """Utilization."""
825
+
826
+ pass
827
+
828
+
829
+ class AmountRangeUtilization(AmountRangeWithDimensionality, WithUtilization):
830
+ """Utilization range."""
831
+
832
+ pass
833
+
834
+
835
+ class WithUFactor(WithDimensionalityMixin):
836
+ """Unit validation mixin."""
837
+
838
+ dimensionality_unit = UFactorStr.unit
839
+
840
+
841
+ class AmountUFactor(Amount, WithUFactor):
842
+ """U-Factor."""
843
+
844
+ pass
845
+
846
+
847
+ class AmountRangeUFactor(AmountRangeWithDimensionality, WithUFactor):
848
+ """U-Factor range."""
849
+
850
+ pass
851
+
852
+
853
+ class WithRFactor(WithDimensionalityMixin):
854
+ """Unit validation mixin."""
855
+
856
+ dimensionality_unit = RFactorStr.unit
857
+
858
+
859
+ class AmountRFactor(Amount, WithRFactor):
860
+ """R-Factor."""
861
+
862
+ pass
863
+
864
+
865
+ class AmountRangeRFactor(AmountRangeWithDimensionality, WithRFactor):
866
+ """R-Factor range."""
867
+
868
+ pass
869
+
870
+
699
871
  # known range amounts
700
872
  SUPPORTED_RANGE_TYPES: tuple[type[AmountRangeWithDimensionality], ...] = (
701
873
  AmountRangeMass,
@@ -718,6 +890,13 @@ SUPPORTED_RANGE_TYPES: tuple[type[AmountRangeWithDimensionality], ...] = (
718
890
  AmountRangeFlowRate,
719
891
  AmountRangeMassPerLength,
720
892
  AmountRangeAreaPerVolume,
893
+ AmountRangeThermalConductivity,
894
+ AmountRangeForce,
895
+ AmountRangeYarnWeight,
896
+ AmountRangeThermalExpansion,
897
+ AmountRangeUtilization,
898
+ AmountRangeUFactor,
899
+ AmountRangeRFactor,
721
900
  )
722
901
 
723
902
  # known range amount mapping by unit
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openepd
3
- Version: 5.3.0
3
+ Version: 6.0.1
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
@@ -0,0 +1,139 @@
1
+ openepd/__init__.py,sha256=Shkfh0Kun0YRhmRDw7LkUj2eQL3X-HnP55u2THOEALw,794
2
+ openepd/__version__.py,sha256=Oa5j0gzOB1wIVumdMbOVzGNMS9BPyyfZpuNULXNLrw4,638
3
+ openepd/api/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
4
+ openepd/api/average_dataset/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
5
+ openepd/api/average_dataset/generic_estimate_sync_api.py,sha256=mxWwDokEGMe87Px8C_aHvIdVKZVHrEAuVtaSA1zJchU,7953
6
+ openepd/api/average_dataset/industry_epd_sync_api.py,sha256=xoicuZdclf4BTBa2ndG1K2Aog-iZd7_jOqdDPZSCLq4,6286
7
+ openepd/api/base_sync_client.py,sha256=IX-q6JdWLMqYHC-hKLXUFRPs-DZZ9Co0NRZ5pSAipAs,20992
8
+ openepd/api/category/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
9
+ openepd/api/category/dto.py,sha256=tDojagSwT7CTtcYq31Qe_c0P3xKKUWXKdzT5iN6odtk,850
10
+ openepd/api/category/sync_api.py,sha256=VHHOVbblZGyc4AtbsgQza00trSLuaCO6KfQw6r8vzgg,1371
11
+ openepd/api/common.py,sha256=LVYNs4AP-YnUB6eUqvpdcYttE6sMvuQJi4TA3aH0UPs,8812
12
+ openepd/api/dto/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
13
+ openepd/api/dto/base.py,sha256=dy-P2rIvYLMRTJaFeL6ayIUdvMW12sw4IafiEtHdyzs,1033
14
+ openepd/api/dto/common.py,sha256=Msbh5fJf9s2mopxBLCko6jBJYxNq_0huz8q3hUOdDnw,4488
15
+ openepd/api/dto/meta.py,sha256=PmIGu4SfaovQOvFuYN58jQ9h6plZQEkBvaD_qwm28Jo,2160
16
+ openepd/api/dto/mf.py,sha256=tjsxF6yJhnOrcOepNVHBn18pF-kXkBoUYfTQwOTaY2g,1994
17
+ openepd/api/dto/params.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
18
+ openepd/api/epd/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
19
+ openepd/api/epd/dto.py,sha256=NZ76vfUkCEkwDibQd2QCEQP5DZms_NFc9tjoP-mcw3o,4874
20
+ openepd/api/epd/sync_api.py,sha256=rI185UxoVrGOtCmqOClVicnldCuDP0NQlSo1EqDZPEw,7320
21
+ openepd/api/errors.py,sha256=Iipd0QW2tbhUu_UjUbmiFWgmrPVgOFHc3uxZN-SX-g4,2868
22
+ openepd/api/pcr/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
23
+ openepd/api/pcr/sync_api.py,sha256=Riu77h8uLJngKpITOiXYmO7mzjAHpYskUJ6ynyfNG78,1557
24
+ openepd/api/sync_client.py,sha256=IurnhZrkBQoQIbbfon6TPuhjGpAV_CSTJNeXjIiN0QI,3105
25
+ openepd/api/test/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
26
+ openepd/api/utils.py,sha256=9kdWbJ-m0IqsrkPQpGkILIQlR1WPd9rRlko-ymj9gtI,2092
27
+ openepd/bundle/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
28
+ openepd/bundle/base.py,sha256=mOt3h3MuQyc1yunp9u6_CVYDtSdWQHZcx8cNfbNkqoY,6869
29
+ openepd/bundle/model.py,sha256=yICEHl7ZWDXHGx4rhFomCwa-ganjUtykyj_fpWw_6OI,2446
30
+ openepd/bundle/reader.py,sha256=B1clVF-lUMqZOvNZCypYK55C-DWOo7dOV0KlvsREA1o,6687
31
+ openepd/bundle/writer.py,sha256=YxuDLzR9OM4NqcqeodWQWFK_kZhmsPJISao5XVZvw-M,8136
32
+ openepd/compat/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
33
+ openepd/compat/compat_functional_validators.py,sha256=yz6DfWeg7knBHEN_enpCGGTLRknEsecXfpzD1FDlywY,834
34
+ openepd/compat/pydantic.py,sha256=DOjSixsylLqMtFAIARu50sGcT4VPXN_c473q_2JwZQ0,1146
35
+ openepd/model/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
36
+ openepd/model/base.py,sha256=OEYNFUTL4BivBNAt_LGowTlDuUjvKMHgf5U5ZBncZwQ,9805
37
+ openepd/model/category.py,sha256=IQXNGQFQmFZ_H9PRONloX_UOSf1sTMDq1rM1yz8JR0Y,1639
38
+ openepd/model/common.py,sha256=yx3m9Tqb7WgqW3SaHB3WftQaShD80dxTys2r63rswy8,9700
39
+ openepd/model/declaration.py,sha256=Wh5Ni6AG903lmPTV5sS627lNjSazH7km3OIr2lkKKJE,11072
40
+ openepd/model/epd.py,sha256=tKT3gCPZXasVd_mCCXLVabZMbuhM9scBEgn7caS_WJM,7488
41
+ openepd/model/factory.py,sha256=XP7eeQNW5tqwX_4hfuEb3lK6BFQDb4KB0fSN0r8-lCU,2656
42
+ openepd/model/generic_estimate.py,sha256=bbU0cR4izSqjZcfxUHNbdO4pllqqd8OaUFikrEgCFoA,3992
43
+ openepd/model/geography.py,sha256=G3Oz3QBw5n-RiSCAv-vAGxrOZBhwIT5rASnPlo9dkcs,42095
44
+ openepd/model/industry_epd.py,sha256=rgXhCUDAgzZ9eGio7ExqE3ymP3zTXnrrwcIDvg5YP1A,3285
45
+ openepd/model/lcia.py,sha256=6aJPmza5BN2YKzSl5IRGVK7lPlBdBFqOJU3977583LY,24383
46
+ openepd/model/org.py,sha256=6nIL6XPHnLdw65YynXtQmZUGfJo2UC9jd1j6iPS0pe8,3734
47
+ openepd/model/pcr.py,sha256=QknLtTn6Y14JORWKQ1qBqGgKnZpbKgqNiYF3Axl4U4c,5494
48
+ openepd/model/specs/README.md,sha256=UGhSiFJ9hOxT1mZl-5ZrhkOrPKf1W_gcu5CI9hzV7LU,2430
49
+ openepd/model/specs/__init__.py,sha256=IAevXqqYrCWlTH4z4Fy9o77vaOLinX56G05iIJJfm0M,3094
50
+ openepd/model/specs/asphalt.py,sha256=V-N7NbrxyNnjgNXQbJPj17ZFM3Q-qxTxxjqpx61wEfA,3350
51
+ openepd/model/specs/base.py,sha256=JgXvfy8K1Jpcai1eCUDZ-ndsLYkL-dcDyH2hQls6Znw,2652
52
+ openepd/model/specs/concrete.py,sha256=spMvijIv79c87PXT_YV7coG851AkJ1ILl9EHCxN2-6E,9593
53
+ openepd/model/specs/enums.py,sha256=rh35d0CZUIp1GDYopldu-dUJ3YQtXlKzJuMpyFLKT2w,63602
54
+ openepd/model/specs/range/__init__.py,sha256=LmBClxzTNpWzGwS1zvFoAxbKILrMRMz22mJXKYu2u8I,4502
55
+ openepd/model/specs/range/accessories.py,sha256=T3z-5jLoIVIIGeQi2cc5fMP3a7uGgvoW2E_SVmr3c30,2498
56
+ openepd/model/specs/range/aggregates.py,sha256=nxk6iZHzs0CIoUMWSw4IfB-D4tGd4prh9O2HXnC9u70,2549
57
+ openepd/model/specs/range/aluminium.py,sha256=FcIfVKwwCH-58K7YQ1lRQx0DNcojcj43oplJGYZfh2s,2745
58
+ openepd/model/specs/range/asphalt.py,sha256=tmUUBlhg-lqqfgEHz_5LvdwurCkkemRFAGm_PIODAwU,2934
59
+ openepd/model/specs/range/bulk_materials.py,sha256=Vqm6eY6Kfi7vSx4n9JUrGh15JVNZ1YapdBXQR9usICU,1051
60
+ openepd/model/specs/range/cast_decks_and_underlayment.py,sha256=CzQhqq4hhtLAbm7SbrcOH0CMYFNzxcMYDy-L9jk3txY,1132
61
+ openepd/model/specs/range/cladding.py,sha256=ITPk6sThzryLt8pVtvqy5QWeuDOg2-LVinkG-p9imTY,7236
62
+ openepd/model/specs/range/cmu.py,sha256=d0Kx5AsUazziYDfgEOyp0ddLKDprxw5W2v7xcnKDvGw,1862
63
+ openepd/model/specs/range/concrete.py,sha256=3nVuWag3QP56YGxcRUAYlVEbagxLaKP0RE0TaBqxums,6907
64
+ openepd/model/specs/range/conveying_equipment.py,sha256=Ztvd4m3ECPFHtpb_k16nqPZmibH44YXbhafI2kb2CwQ,3176
65
+ openepd/model/specs/range/electrical.py,sha256=VDaUrqnGi8b88ChL19FReZCiNXSmd98hqgwmEdE6S4Y,11860
66
+ openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py,sha256=6xOBAN3rjJ1SeGAiD-bTEWJB2rJ7VmUDPV3JHWHUTp4,2525
67
+ openepd/model/specs/range/electricity.py,sha256=isRgk35_gYhZWR3d36dpxHKDIrmpuOqpaUCWigNE4Co,997
68
+ openepd/model/specs/range/finishes.py,sha256=hEGxRje4_yXoDaHIK02jAAkGta4Fyds5JFvlOrzD0_0,21291
69
+ openepd/model/specs/range/fire_and_smoke_protection.py,sha256=j7E5rqPtNrJCksq8QL-m2gX9sqrOADuTNJkc0rUH7mo,3337
70
+ openepd/model/specs/range/furnishings.py,sha256=eQ4T91RXNEhTe3hb8VG9NPGWNfjQy1yKSHrGkRGNO5k,3234
71
+ openepd/model/specs/range/grouting.py,sha256=5w3kU3MnUreVilpri-eFRe9TTZvrJsZ9_MLiK3GTlg0,1095
72
+ openepd/model/specs/range/manufacturing_inputs.py,sha256=LXpjXSvq9baeVkqOUbU1yFjMP18KJZNa04UxHr27gto,5574
73
+ openepd/model/specs/range/masonry.py,sha256=6325-KdNFnZTRs9v2D1sq-3isgfiEOuNd-Ou4lSW9hw,2867
74
+ openepd/model/specs/range/material_handling.py,sha256=Ri7v4WAguusQQZWU_GZo6DZmYkjgFDB44sScj2jiSOo,1483
75
+ openepd/model/specs/range/mechanical.py,sha256=Btttb_UkWok5lfNOkQTq2doaPJJUAcZr5p4Xz-buXw4,10267
76
+ openepd/model/specs/range/mechanical_insulation.py,sha256=BUC_BfjRm0GagW5gpKXtOTpCvf_78um9Hry8BvFZ0_Q,1737
77
+ openepd/model/specs/range/network_infrastructure.py,sha256=_uSvY2ppIZ1u5YS7XhoReep8c0kY67WmylFF439xUUU,8498
78
+ openepd/model/specs/range/openings.py,sha256=WbujF3EW3zjcUgaDlHCufvMxR3nbOvTYaazEiNiL1TQ,15451
79
+ openepd/model/specs/range/other_electrical_equipment.py,sha256=8pHsH9mkwb-eeLPejgsgUOAHmj9vcd_TfqjbjD5-100,1001
80
+ openepd/model/specs/range/other_materials.py,sha256=Uy29e4PDkzDI_aX6VoJTLnUTM6zy362NiSxKHFhxEeI,4495
81
+ openepd/model/specs/range/plumbing.py,sha256=bGbd_hRSDCXnZREEUz4U6N3l5GcAh4EmtoF8yp5z5Xc,5342
82
+ openepd/model/specs/range/precast_concrete.py,sha256=iwz3vmrArJDVxKF77dvlTAC092EHZu4ZBQbyPZeakl0,3763
83
+ openepd/model/specs/range/sheathing.py,sha256=F7g1JOrGoVdrtyyh_0IryBTpf7l2hzGKclcanTWk624,3395
84
+ openepd/model/specs/range/steel.py,sha256=Jujwb0ZCCn9LmWx6WmYMu3S1Rx_-gt3KmoA9tddaYfU,10173
85
+ openepd/model/specs/range/thermal_moisture_protection.py,sha256=tNimOVhUBn3U4821d5oqY3D3E0-6gB4Bp3F4gzoCScY,9409
86
+ openepd/model/specs/range/utility_piping.py,sha256=qCyJbOMZQP1nvA71qFos5wWx7xGhb8DFpeGaka8OkjQ,2665
87
+ openepd/model/specs/range/wood.py,sha256=zRsOsSOkxT84pQVvf9S4m34kFHa7HOppQK1Ggt_toUk,6946
88
+ openepd/model/specs/range/wood_joists.py,sha256=FevwQ3ebxMStesFehjyBCw4vxTQOYOZnPCdmobo3TGY,1785
89
+ openepd/model/specs/singular/__init__.py,sha256=T99PWY-76bYBg-Fi10R0PhjzpiG9BWv62lmjddZI7-Y,5047
90
+ openepd/model/specs/singular/accessories.py,sha256=hEnrW4Vdr9GopR_A9gF8QyUyKJ9i5sx4khrNYDVLwy8,2013
91
+ openepd/model/specs/singular/aggregates.py,sha256=EoAdyZc6QPHqGRn8c6VzoXx1wU05FH9UwQ7aOgU_Zkc,2934
92
+ openepd/model/specs/singular/aluminium.py,sha256=LFkBtSRWajBFRni3V8IPZtRjIo-h8zlvPLaVSVYpzJs,2403
93
+ openepd/model/specs/singular/asphalt.py,sha256=mnScaoGPZ7xCuKAPpJNkOGkuJxqo0iVIREPhXzECaj4,3295
94
+ openepd/model/specs/singular/bulk_materials.py,sha256=otVwnI8N5zCs-JqklykdQDenaKqlgfBn4bQKp8JKGwU,875
95
+ openepd/model/specs/singular/cast_decks_and_underlayment.py,sha256=qZjryfTZc1ltPUkut7pkITb-wwZmBZWGIfUl1p8FNXs,955
96
+ openepd/model/specs/singular/cladding.py,sha256=PtH41V8K23-fIlqxgsAqXH5rLVgR7-IOHwdfJ-KuCW0,6588
97
+ openepd/model/specs/singular/cmu.py,sha256=NaeAcAiN1NkV_kxH1lyexb1Xas2ShSdWWP-7kE227SA,1952
98
+ openepd/model/specs/singular/common.py,sha256=iNeJmVYZURVQWewx3zskwnwy7DBuaggCHFWQBThtY2A,1048
99
+ openepd/model/specs/singular/concrete.py,sha256=PexUR9w_NAkZ_VfgevxeaDqtipbaTY2mVRpPzp8uZnI,7718
100
+ openepd/model/specs/singular/conveying_equipment.py,sha256=4ftx12OG-9mUvOkoFvx9JKrHQERHrZBDqoCnvmFFQLA,3042
101
+ openepd/model/specs/singular/electrical.py,sha256=IJgSbbcOvUIu70EqtG9qZvUKjtRvFda5eX9-VqRhyH8,11113
102
+ openepd/model/specs/singular/electrical_transmission_and_distribution_equipment.py,sha256=h6UQixACOHrquhQ2GFqqYWel_zqOXT-vAkI0o_RLf0A,1978
103
+ openepd/model/specs/singular/electricity.py,sha256=iGtN21K1MRVwoRfO6friVgiXc2b6cVdITbvnXqLmW3k,823
104
+ openepd/model/specs/singular/finishes.py,sha256=PUzskF15PnxzWJn9RKRdPcmeoefYH81OtzWtzsxUb70,22571
105
+ openepd/model/specs/singular/fire_and_smoke_protection.py,sha256=ALV3ixBdd8Bi-rr6Cav7pQhT1XKVqC0UI8lYBJKn9q8,3058
106
+ openepd/model/specs/singular/furnishings.py,sha256=z3SmlY98A9AUiQTPpe16QsSlDK3H0jXTRGx-nii8BqM,2571
107
+ openepd/model/specs/singular/grouting.py,sha256=mDpfsax6TO72SuBqv8HftJDYoQPP741dD1vi_2cuNCE,934
108
+ openepd/model/specs/singular/manufacturing_inputs.py,sha256=-y7WDU4hdKc-boGCpYPT2SyGV83cnNHz76imnzIykaQ,5093
109
+ openepd/model/specs/singular/masonry.py,sha256=VC_UspsiNN9qAhW-I3XgRGYkf0UDL7tY23MO6gypKmM,3165
110
+ openepd/model/specs/singular/material_handling.py,sha256=hx8fisNcFw6GXC7uMfW-4wkGUS8xJA9gTk_WpZGHkqY,1274
111
+ openepd/model/specs/singular/mechanical.py,sha256=fjvqP_bmyVM0bC71z4lY_SeBJXdiFglQiYOSGZibrdo,9862
112
+ openepd/model/specs/singular/mechanical_insulation.py,sha256=y39LcYM6nxJtVAv_Uzc4p4HiqfXMGuh1oiLJUJPG7t8,1607
113
+ openepd/model/specs/singular/mixins/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
114
+ openepd/model/specs/singular/mixins/conduit_mixin.py,sha256=nC_xRz1aGFP-Pu7lk_ZC-LIe5ZB_VFIw5J7KbKlMlGo,1928
115
+ openepd/model/specs/singular/network_infrastructure.py,sha256=zFJ1wjhtah-i39TPzmhFZ2IMvX3hiAIpFhmfSVWpk70,8521
116
+ openepd/model/specs/singular/openings.py,sha256=4ROhnnKv3W9LwC21uCZLAgffto3L99A6Bt6n-6nkmPQ,18941
117
+ openepd/model/specs/singular/other_electrical_equipment.py,sha256=HUOI_NfCXn_pmon0KEy11hBrILA5QYtpnme0YqWoEfk,814
118
+ openepd/model/specs/singular/other_materials.py,sha256=ztaZHOr2HbiSpKdz4M1b2jsm_11fMDqZduEYWT1Q_rI,3498
119
+ openepd/model/specs/singular/plumbing.py,sha256=Dr3lt23FkSbhCyeGDcW8FpyOr2MYvV2JwCZAdvLqz9I,4568
120
+ openepd/model/specs/singular/precast_concrete.py,sha256=Qwnm49sCXXmPoIckIUwldDvUq760FzTVaYnFOV6XOEY,7327
121
+ openepd/model/specs/singular/sheathing.py,sha256=e3y6XlDuSWF5ldN0NqfJCfB8VQMWciv5DnYKsp7cQzw,3709
122
+ openepd/model/specs/singular/steel.py,sha256=IlYlp77hmweDQbLCluy-ltZgMT0-RNXNDnsRXyWE-8Q,10340
123
+ openepd/model/specs/singular/thermal_moisture_protection.py,sha256=rwwxAj0TFKuI2jBbEPj4qpYVMVD6uqK-IyDPriJ8nAo,8195
124
+ openepd/model/specs/singular/utility_piping.py,sha256=8Rs-5Xoe8mepH8nY7-a6zvAxPr1TKL2XJHpYDSy3atM,2483
125
+ openepd/model/specs/singular/wood.py,sha256=Bxf7LeodG0DQUdXiYgRWDeQtuYQ6Vpck4Uw4wF7tUzY,6591
126
+ openepd/model/specs/singular/wood_joists.py,sha256=LWkm3s7yW0S-IN5oeoj6g99CdAdQvplvbjVIyezaZx0,1719
127
+ openepd/model/standard.py,sha256=QhGpWN3U27fDcS0Yy1Dk8ElJfD0etet6i_PzoTD6B48,1318
128
+ openepd/model/validation/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
129
+ openepd/model/validation/common.py,sha256=FLYqK8gYFagx08LCkS0jy3qo4-Zq9VAv5i8ZwF2svkc,2435
130
+ openepd/model/validation/enum.py,sha256=06Fi2_sdjVhOElavtgvNXvkKU0NQ-bcAFx5_5MiDzdU,1793
131
+ openepd/model/validation/numbers.py,sha256=J2rVMwJTPr8uC1DrU80xpq2SZGMXvVKx7v74SgOVi0U,851
132
+ openepd/model/validation/quantity.py,sha256=UP6x2nUj1nP7G8e2rpi-HigHx9rwKeCuIDh_XWFRU6U,20187
133
+ openepd/model/versioning.py,sha256=R_zm6rCrgF3vlJQYbpyWhirdS_Oek16cv_mvZmpuE8I,4473
134
+ openepd/patch_pydantic.py,sha256=xrkzblatmU9HBzukWkp1cPq9ZSuohoz1p0pQqVKSlKs,4122
135
+ openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
+ openepd-6.0.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
137
+ openepd-6.0.1.dist-info/METADATA,sha256=3JfGfzrMlQ1wyxIDYQTZ-l1CDo8nruSGoQQCj7m-shc,8996
138
+ openepd-6.0.1.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
139
+ openepd-6.0.1.dist-info/RECORD,,
@@ -1,139 +0,0 @@
1
- openepd/__init__.py,sha256=Shkfh0Kun0YRhmRDw7LkUj2eQL3X-HnP55u2THOEALw,794
2
- openepd/__version__.py,sha256=eEVqmdbsGDJ4vyFA7va4C2zZ4rWy5ZZzKevZvLZTPtQ,638
3
- openepd/api/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
4
- openepd/api/average_dataset/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
5
- openepd/api/average_dataset/generic_estimate_sync_api.py,sha256=5dWtdyzs9WGO5-liQGZd0o5q0tSjoJrx1RCtjSnRrrk,8110
6
- openepd/api/average_dataset/industry_epd_sync_api.py,sha256=xoicuZdclf4BTBa2ndG1K2Aog-iZd7_jOqdDPZSCLq4,6286
7
- openepd/api/base_sync_client.py,sha256=IX-q6JdWLMqYHC-hKLXUFRPs-DZZ9Co0NRZ5pSAipAs,20992
8
- openepd/api/category/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
9
- openepd/api/category/dto.py,sha256=tDojagSwT7CTtcYq31Qe_c0P3xKKUWXKdzT5iN6odtk,850
10
- openepd/api/category/sync_api.py,sha256=VHHOVbblZGyc4AtbsgQza00trSLuaCO6KfQw6r8vzgg,1371
11
- openepd/api/common.py,sha256=LVYNs4AP-YnUB6eUqvpdcYttE6sMvuQJi4TA3aH0UPs,8812
12
- openepd/api/dto/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
13
- openepd/api/dto/base.py,sha256=dy-P2rIvYLMRTJaFeL6ayIUdvMW12sw4IafiEtHdyzs,1033
14
- openepd/api/dto/common.py,sha256=Msbh5fJf9s2mopxBLCko6jBJYxNq_0huz8q3hUOdDnw,4488
15
- openepd/api/dto/meta.py,sha256=PmIGu4SfaovQOvFuYN58jQ9h6plZQEkBvaD_qwm28Jo,2160
16
- openepd/api/dto/mf.py,sha256=tjsxF6yJhnOrcOepNVHBn18pF-kXkBoUYfTQwOTaY2g,1994
17
- openepd/api/dto/params.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
18
- openepd/api/epd/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
19
- openepd/api/epd/dto.py,sha256=NZ76vfUkCEkwDibQd2QCEQP5DZms_NFc9tjoP-mcw3o,4874
20
- openepd/api/epd/sync_api.py,sha256=EY9KVz8yDgmjgLzWWh2B3VobNswd9fZmfDFkiJTxog0,7522
21
- openepd/api/errors.py,sha256=Iipd0QW2tbhUu_UjUbmiFWgmrPVgOFHc3uxZN-SX-g4,2868
22
- openepd/api/pcr/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
23
- openepd/api/pcr/sync_api.py,sha256=Riu77h8uLJngKpITOiXYmO7mzjAHpYskUJ6ynyfNG78,1557
24
- openepd/api/sync_client.py,sha256=IurnhZrkBQoQIbbfon6TPuhjGpAV_CSTJNeXjIiN0QI,3105
25
- openepd/api/test/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
26
- openepd/api/utils.py,sha256=9kdWbJ-m0IqsrkPQpGkILIQlR1WPd9rRlko-ymj9gtI,2092
27
- openepd/bundle/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
28
- openepd/bundle/base.py,sha256=mOt3h3MuQyc1yunp9u6_CVYDtSdWQHZcx8cNfbNkqoY,6869
29
- openepd/bundle/model.py,sha256=yICEHl7ZWDXHGx4rhFomCwa-ganjUtykyj_fpWw_6OI,2446
30
- openepd/bundle/reader.py,sha256=B1clVF-lUMqZOvNZCypYK55C-DWOo7dOV0KlvsREA1o,6687
31
- openepd/bundle/writer.py,sha256=YxuDLzR9OM4NqcqeodWQWFK_kZhmsPJISao5XVZvw-M,8136
32
- openepd/compat/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
33
- openepd/compat/compat_functional_validators.py,sha256=yz6DfWeg7knBHEN_enpCGGTLRknEsecXfpzD1FDlywY,834
34
- openepd/compat/pydantic.py,sha256=DOjSixsylLqMtFAIARu50sGcT4VPXN_c473q_2JwZQ0,1146
35
- openepd/model/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
36
- openepd/model/base.py,sha256=OEYNFUTL4BivBNAt_LGowTlDuUjvKMHgf5U5ZBncZwQ,9805
37
- openepd/model/category.py,sha256=IQXNGQFQmFZ_H9PRONloX_UOSf1sTMDq1rM1yz8JR0Y,1639
38
- openepd/model/common.py,sha256=kPN1MrFYCvnPNregds3CtFNvLxVrf0T-Y9nePdZspL4,8554
39
- openepd/model/declaration.py,sha256=Wh5Ni6AG903lmPTV5sS627lNjSazH7km3OIr2lkKKJE,11072
40
- openepd/model/epd.py,sha256=GU7OW6hp9GeLB9PUGqacDYMAJVWmAAHzGp3dZs2aGqo,7479
41
- openepd/model/factory.py,sha256=XP7eeQNW5tqwX_4hfuEb3lK6BFQDb4KB0fSN0r8-lCU,2656
42
- openepd/model/generic_estimate.py,sha256=bbU0cR4izSqjZcfxUHNbdO4pllqqd8OaUFikrEgCFoA,3992
43
- openepd/model/geography.py,sha256=G3Oz3QBw5n-RiSCAv-vAGxrOZBhwIT5rASnPlo9dkcs,42095
44
- openepd/model/industry_epd.py,sha256=rgXhCUDAgzZ9eGio7ExqE3ymP3zTXnrrwcIDvg5YP1A,3285
45
- openepd/model/lcia.py,sha256=6aJPmza5BN2YKzSl5IRGVK7lPlBdBFqOJU3977583LY,24383
46
- openepd/model/org.py,sha256=6nIL6XPHnLdw65YynXtQmZUGfJo2UC9jd1j6iPS0pe8,3734
47
- openepd/model/pcr.py,sha256=QknLtTn6Y14JORWKQ1qBqGgKnZpbKgqNiYF3Axl4U4c,5494
48
- openepd/model/specs/README.md,sha256=UGhSiFJ9hOxT1mZl-5ZrhkOrPKf1W_gcu5CI9hzV7LU,2430
49
- openepd/model/specs/__init__.py,sha256=CfuCZKFE6xysags8XY9VlW-o_zHEyCu9fGekoj-RJOg,4959
50
- openepd/model/specs/asphalt.py,sha256=V-N7NbrxyNnjgNXQbJPj17ZFM3Q-qxTxxjqpx61wEfA,3350
51
- openepd/model/specs/base.py,sha256=xYIzCmDDUWEJRVbAFt10HY_c_5d81deFFyraxzpidEg,2612
52
- openepd/model/specs/concrete.py,sha256=spMvijIv79c87PXT_YV7coG851AkJ1ILl9EHCxN2-6E,9593
53
- openepd/model/specs/generated/__init__.py,sha256=0-SZoXBAEwojOvoW6MUZM7vI-JiuztnsFv8F2jiOEvk,5011
54
- openepd/model/specs/generated/accessories.py,sha256=hEnrW4Vdr9GopR_A9gF8QyUyKJ9i5sx4khrNYDVLwy8,2013
55
- openepd/model/specs/generated/aggregates.py,sha256=jMY2bqM2ZT6pc5-xnutZaJnMiUr368r5JdAGtrld2YI,2944
56
- openepd/model/specs/generated/aluminium.py,sha256=NYra-2Z8nDJDHpNMRJBhZCl3AAczgwBGXgGMAQ_uP5Q,2413
57
- openepd/model/specs/generated/asphalt.py,sha256=4m-4b1nRZtK0UN_XowxCfYY51kH2JAgvIwP1-spp5mU,3152
58
- openepd/model/specs/generated/bulk_materials.py,sha256=otVwnI8N5zCs-JqklykdQDenaKqlgfBn4bQKp8JKGwU,875
59
- openepd/model/specs/generated/cast_decks_and_underlayment.py,sha256=qZjryfTZc1ltPUkut7pkITb-wwZmBZWGIfUl1p8FNXs,955
60
- openepd/model/specs/generated/cladding.py,sha256=NEY2taEzXJeIR08oimzfXrHAaJ-EojC4TPI5tG6Xfi8,6598
61
- openepd/model/specs/generated/cmu.py,sha256=Vv-aiT4Q7Zl5XTkSCnTeGOpE_ufTy63zt2Z5aXbv_Qo,1794
62
- openepd/model/specs/generated/common.py,sha256=iNeJmVYZURVQWewx3zskwnwy7DBuaggCHFWQBThtY2A,1048
63
- openepd/model/specs/generated/concrete.py,sha256=gk-ZFUTJni4l32FRYGnqD9Vv6lT-ACgIEY7RKM266k4,7728
64
- openepd/model/specs/generated/conveying_equipment.py,sha256=sQSnFccpTIw8sNGywW0KajE1lCHzbVBCISKyrYFW02U,3052
65
- openepd/model/specs/generated/electrical.py,sha256=vX3k_dYRmFCQG0Rh4g8rYZ_hAiAE3Hxfk217jgsrz4g,11093
66
- openepd/model/specs/generated/electrical_transmission_and_distribution_equipment.py,sha256=h6UQixACOHrquhQ2GFqqYWel_zqOXT-vAkI0o_RLf0A,1978
67
- openepd/model/specs/generated/electricity.py,sha256=iGtN21K1MRVwoRfO6friVgiXc2b6cVdITbvnXqLmW3k,823
68
- openepd/model/specs/generated/enums.py,sha256=rh35d0CZUIp1GDYopldu-dUJ3YQtXlKzJuMpyFLKT2w,63602
69
- openepd/model/specs/generated/finishes.py,sha256=1nqZs2B2VRIt553ezCJSLT4qF8nJmfg457duNb1sxlI,22503
70
- openepd/model/specs/generated/fire_and_smoke_protection.py,sha256=zkOlnNCnAZ9MUWk2sDqUX14YxNEDU3MGfUlePG3su0Q,3068
71
- openepd/model/specs/generated/furnishings.py,sha256=QY_FDsFZaqjCiw2xHsD3kmyBGJA7jCHlSIvaw4TmqXI,2581
72
- openepd/model/specs/generated/grouting.py,sha256=mDpfsax6TO72SuBqv8HftJDYoQPP741dD1vi_2cuNCE,934
73
- openepd/model/specs/generated/manufacturing_inputs.py,sha256=B1_6OYX3cOFpOBvQRQrbPD4v9-iwKHo4E1fu9YfEDOo,5103
74
- openepd/model/specs/generated/masonry.py,sha256=XrmzDqO0ySSkK30IBbIu5BeN6EJ29BxRNLBwAODXBek,3104
75
- openepd/model/specs/generated/material_handling.py,sha256=hx8fisNcFw6GXC7uMfW-4wkGUS8xJA9gTk_WpZGHkqY,1274
76
- openepd/model/specs/generated/mechanical.py,sha256=qRKvOqRqn2DoyTCOnNwHClyoby0pa4YN8vXuE6CtY8A,9872
77
- openepd/model/specs/generated/mechanical_insulation.py,sha256=sbXTXT4xOOgvyDeLN4HZ3xCIwKkaPEjoQlRyCrq4tlM,1617
78
- openepd/model/specs/generated/mixins/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
79
- openepd/model/specs/generated/mixins/conduit_mixin.py,sha256=ONH8wZ19xqnIDH-mbRpa4m00LqkYVwdr6-tuSR7TgHE,1938
80
- openepd/model/specs/generated/network_infrastructure.py,sha256=yGcZ4_uQQHLIIqPDI7ZULKiMaMtE3icA2VT1-fYeWJM,8532
81
- openepd/model/specs/generated/openings.py,sha256=SBISIuuep8eP-WKjLjvN1pTgOodrLGqwZrp9BMXMzHY,18900
82
- openepd/model/specs/generated/other_electrical_equipment.py,sha256=HUOI_NfCXn_pmon0KEy11hBrILA5QYtpnme0YqWoEfk,814
83
- openepd/model/specs/generated/other_materials.py,sha256=ztaZHOr2HbiSpKdz4M1b2jsm_11fMDqZduEYWT1Q_rI,3498
84
- openepd/model/specs/generated/plumbing.py,sha256=2bd5K2V0BspEfymb_47nYzdP-6OpBgaRc4Oul8OS8jo,4578
85
- openepd/model/specs/generated/precast_concrete.py,sha256=Qwnm49sCXXmPoIckIUwldDvUq760FzTVaYnFOV6XOEY,7327
86
- openepd/model/specs/generated/sheathing.py,sha256=5RkxdyLZsMMhNdaXIVNCeKqJbbTM6FMsNgJijQWHPT8,3700
87
- openepd/model/specs/generated/steel.py,sha256=0gCKOEZpTxhL-bWUMNufHQj7WU1GZu8bQAAbqJVmLZM,10246
88
- openepd/model/specs/generated/thermal_moisture_protection.py,sha256=px1GPZyumr1w0r0ikKO1FefHNK66cxYp1PpmZvpTzPU,8205
89
- openepd/model/specs/generated/utility_piping.py,sha256=X0cHq5kQP41RH1iGWrkwUdFX0PI4V00WzxH9BA-i7SY,2493
90
- openepd/model/specs/generated/wood.py,sha256=RMNoPRS9K3XF2aXCbvRN3awpO23_5ugYhRCrnvCvI20,6341
91
- openepd/model/specs/generated/wood_joists.py,sha256=IWDRZ6OvZq6jaqjndK1Ge6H0vrQutAEgdbvcVJb-Ybw,1730
92
- openepd/model/specs/range/__init__.py,sha256=LmBClxzTNpWzGwS1zvFoAxbKILrMRMz22mJXKYu2u8I,4502
93
- openepd/model/specs/range/accessories.py,sha256=T3z-5jLoIVIIGeQi2cc5fMP3a7uGgvoW2E_SVmr3c30,2498
94
- openepd/model/specs/range/aggregates.py,sha256=JPl0sGkm94vW22m8dvZmRNle5gpUQyBFJFVDYg16-Yo,2560
95
- openepd/model/specs/range/aluminium.py,sha256=2IOhpdoImiEg5Q6TyD4DOt1FzHlby3-an3nWvcjn2Kk,2755
96
- openepd/model/specs/range/asphalt.py,sha256=yn2M4Ud-KVd-yt2H16giLvgFUuqq1Wyy4QiOw_spRsE,2968
97
- openepd/model/specs/range/bulk_materials.py,sha256=Vqm6eY6Kfi7vSx4n9JUrGh15JVNZ1YapdBXQR9usICU,1051
98
- openepd/model/specs/range/cast_decks_and_underlayment.py,sha256=CzQhqq4hhtLAbm7SbrcOH0CMYFNzxcMYDy-L9jk3txY,1132
99
- openepd/model/specs/range/cladding.py,sha256=X0IPRPFdEJ8zNHUR4HOX0ETJj2OukxRs-gNVB9GBiZM,7246
100
- openepd/model/specs/range/cmu.py,sha256=dmuLNOfbRierMbAC6HKRqfrzfrStiASWV5AO1mB95S8,1897
101
- openepd/model/specs/range/concrete.py,sha256=-lEpsH2sBBIo6Y67FacF8SQ1MG18B-Co3RJ18qBBMEc,6917
102
- openepd/model/specs/range/conveying_equipment.py,sha256=MKGVsvGu5KYZemkMVg0AK3Hl2q1ghX0kqO5cDJuCWqw,3186
103
- openepd/model/specs/range/electrical.py,sha256=w6WoQ-8Wwa480dbf3I6jsPXElqoawFwcxAHkPpmJLyM,11823
104
- openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py,sha256=6xOBAN3rjJ1SeGAiD-bTEWJB2rJ7VmUDPV3JHWHUTp4,2525
105
- openepd/model/specs/range/electricity.py,sha256=isRgk35_gYhZWR3d36dpxHKDIrmpuOqpaUCWigNE4Co,997
106
- openepd/model/specs/range/finishes.py,sha256=cKdVrMfQv60DEmdBktlsrEeGUAlSf4nqp101JK5Gy38,21152
107
- openepd/model/specs/range/fire_and_smoke_protection.py,sha256=VHo_oR-Xn4vfjPdr0aun962sVHdL28Pvk96D0bubDKM,3347
108
- openepd/model/specs/range/furnishings.py,sha256=77EBxJq0HlsCryZTBO8IdvzLyb8J86T3qCkPpdkLbjs,3244
109
- openepd/model/specs/range/grouting.py,sha256=5w3kU3MnUreVilpri-eFRe9TTZvrJsZ9_MLiK3GTlg0,1095
110
- openepd/model/specs/range/manufacturing_inputs.py,sha256=c64OvfoxMfwM8TiRM-ycEvM27MITfg76rQHNYyv1hIs,5584
111
- openepd/model/specs/range/masonry.py,sha256=n-zVQ_fyrwQg-xqgKXmt5b5CCMDMBgOi4NKq9Kf4gVs,2808
112
- openepd/model/specs/range/material_handling.py,sha256=Ri7v4WAguusQQZWU_GZo6DZmYkjgFDB44sScj2jiSOo,1483
113
- openepd/model/specs/range/mechanical.py,sha256=ltk8WnvUkQPDyX0q5PHSuMdrKyiM-Kn7YblG8ygUZqo,10277
114
- openepd/model/specs/range/mechanical_insulation.py,sha256=jCjleloaogxSqEltQU25IwDyQMDuKKwtByKC84RXpW0,1747
115
- openepd/model/specs/range/network_infrastructure.py,sha256=q8QjjwQmFkkpgHq4TVWJ5zAtj-0JI-CCkwnYM_n_4Uo,8508
116
- openepd/model/specs/range/openings.py,sha256=Zr2-b8DfNJ_WNdIRnFU3lnytYnGeWo4b8BdXtvWKFzc,15377
117
- openepd/model/specs/range/other_electrical_equipment.py,sha256=8pHsH9mkwb-eeLPejgsgUOAHmj9vcd_TfqjbjD5-100,1001
118
- openepd/model/specs/range/other_materials.py,sha256=Uy29e4PDkzDI_aX6VoJTLnUTM6zy362NiSxKHFhxEeI,4495
119
- openepd/model/specs/range/plumbing.py,sha256=O075ff3BBXePpn7-f26EXFKiW8fTd2-DQaR_AykTjw0,5352
120
- openepd/model/specs/range/precast_concrete.py,sha256=d2BToCz5cFgY24YjrwY9Clvh-EpDLjeyV9C2mFe7N44,3764
121
- openepd/model/specs/range/sheathing.py,sha256=YDeDpz8yxKWCVkMvAoi-ssMs8S7osdDXWvaJR5SFxio,3370
122
- openepd/model/specs/range/steel.py,sha256=RJ_5W6WUr_zIw5OlCdgcS9SIeqlciD6gIRQ9KjM-DfY,10051
123
- openepd/model/specs/range/thermal_moisture_protection.py,sha256=IcnjO-Bg1i-JNkznmpMxhbGLFL4OV7tuw1fGea-C1QM,9419
124
- openepd/model/specs/range/utility_piping.py,sha256=pzzgtREQm9XTD96jozT60ibCaSwV03Z8Hs58DbQzJQg,2675
125
- openepd/model/specs/range/wood.py,sha256=bzGHencATtTgONmsdmGaqk24e_9H-zIowYvNfSHdy74,6953
126
- openepd/model/specs/range/wood_joists.py,sha256=jSOP5s0sYVR4tqk0l8rYARDPHQE8UsbMUzPCk_0Ebzc,1795
127
- openepd/model/standard.py,sha256=QhGpWN3U27fDcS0Yy1Dk8ElJfD0etet6i_PzoTD6B48,1318
128
- openepd/model/validation/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
129
- openepd/model/validation/common.py,sha256=FLYqK8gYFagx08LCkS0jy3qo4-Zq9VAv5i8ZwF2svkc,2435
130
- openepd/model/validation/enum.py,sha256=06Fi2_sdjVhOElavtgvNXvkKU0NQ-bcAFx5_5MiDzdU,1793
131
- openepd/model/validation/numbers.py,sha256=J2rVMwJTPr8uC1DrU80xpq2SZGMXvVKx7v74SgOVi0U,851
132
- openepd/model/validation/quantity.py,sha256=8LbSn-Gfo6r1j6AKDjzPnt_9dwyXMFmN5Uaoxa6LIEU,16953
133
- openepd/model/versioning.py,sha256=R_zm6rCrgF3vlJQYbpyWhirdS_Oek16cv_mvZmpuE8I,4473
134
- openepd/patch_pydantic.py,sha256=xrkzblatmU9HBzukWkp1cPq9ZSuohoz1p0pQqVKSlKs,4122
135
- openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
- openepd-5.3.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
137
- openepd-5.3.0.dist-info/METADATA,sha256=twGr4uGcA4Rn0osNRGYw0IdWeC53yVy5NlbzhZNLZ6c,8996
138
- openepd-5.3.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
139
- openepd-5.3.0.dist-info/RECORD,,
File without changes
File without changes
File without changes