openepd 6.4.1__py3-none-any.whl → 6.4.2__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
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- VERSION = "6.4.1"
16
+ VERSION = "6.4.2"
openepd/model/lcia.py CHANGED
@@ -206,9 +206,17 @@ class ScopeSet(BaseOpenEpdSchema):
206
206
  if isinstance(v, Measurement):
207
207
  all_units.add(v.unit)
208
208
 
209
- # units should be the same across all measurements (textually)
210
- if len(all_units) > 1:
211
- raise ValueError("All scopes and measurements should be expressed in the same unit.")
209
+ if not cls.allowed_units:
210
+ # For unknown units - only units should be the same across all measurements (textually)
211
+ if len(all_units) > 1:
212
+ raise ValueError("All scopes and measurements should be expressed in the same unit.")
213
+ else:
214
+ # might be multiple variations of the same unit (kgCFC-11e, kgCFC11e)
215
+ if len(all_units) > 1 and ExternalValidationConfig.QUANTITY_VALIDATOR:
216
+ all_units_list = list(all_units)
217
+ first = all_units_list[0]
218
+ for unit in all_units_list[1:]:
219
+ ExternalValidationConfig.QUANTITY_VALIDATOR.validate_same_dimensionality(first, unit)
212
220
 
213
221
  # can correctly validate unit
214
222
  if cls.allowed_units is not None and len(all_units) == 1 and ExternalValidationConfig.QUANTITY_VALIDATOR:
@@ -33,7 +33,7 @@ class QuantityValidator(ABC):
33
33
  """
34
34
 
35
35
  @abstractmethod
36
- def validate_same_dimensionality(self, unit: str | None, dimensionality_unit: str) -> None:
36
+ def validate_same_dimensionality(self, unit: str | None, dimensionality_unit: str | None) -> None:
37
37
  """
38
38
  Validate that a given unit ('kg') has the same dimesnionality as provided dimensionality_unit ('g').
39
39
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openepd
3
- Version: 6.4.1
3
+ Version: 6.4.2
4
4
  Summary: Python library to work with OpenEPD format
5
5
  Home-page: https://github.com/cchangelabs/openepd
6
6
  License: Apache-2.0
@@ -1,5 +1,5 @@
1
1
  openepd/__init__.py,sha256=Shkfh0Kun0YRhmRDw7LkUj2eQL3X-HnP55u2THOEALw,794
2
- openepd/__version__.py,sha256=ynbiHC7WrNYOSyzyrd2Hj7jVjQQIObp13PMqmGs_IDQ,638
2
+ openepd/__version__.py,sha256=LyifoozbkojKiw7ry9hn1dHTlFfXjPvebpjBZDdw6uU,638
3
3
  openepd/api/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
4
4
  openepd/api/average_dataset/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPoHTIo-lg,620
5
5
  openepd/api/average_dataset/generic_estimate_sync_api.py,sha256=mxWwDokEGMe87Px8C_aHvIdVKZVHrEAuVtaSA1zJchU,7953
@@ -42,7 +42,7 @@ openepd/model/factory.py,sha256=XP7eeQNW5tqwX_4hfuEb3lK6BFQDb4KB0fSN0r8-lCU,2656
42
42
  openepd/model/generic_estimate.py,sha256=bbU0cR4izSqjZcfxUHNbdO4pllqqd8OaUFikrEgCFoA,3992
43
43
  openepd/model/geography.py,sha256=G3Oz3QBw5n-RiSCAv-vAGxrOZBhwIT5rASnPlo9dkcs,42095
44
44
  openepd/model/industry_epd.py,sha256=rgXhCUDAgzZ9eGio7ExqE3ymP3zTXnrrwcIDvg5YP1A,3285
45
- openepd/model/lcia.py,sha256=NTUoPv8Yy-f_MCiezEKvB4gx18r0In5vl2e2SuLqQjY,25012
45
+ openepd/model/lcia.py,sha256=a0OZQzZBtXNx_6O1jMnC1WQrlU3rdFrDN-Y3UchfgGM,25507
46
46
  openepd/model/org.py,sha256=PtG4-EgjKvNSt7446lV60HhDC3YyRx2E-yJ8MMs5raE,5049
47
47
  openepd/model/pcr.py,sha256=QknLtTn6Y14JORWKQ1qBqGgKnZpbKgqNiYF3Axl4U4c,5494
48
48
  openepd/model/specs/README.md,sha256=UGhSiFJ9hOxT1mZl-5ZrhkOrPKf1W_gcu5CI9hzV7LU,2430
@@ -129,11 +129,11 @@ openepd/model/validation/__init__.py,sha256=UGmZGEyMnASrYwEBPHuXmVzHiuCUskUsJEPo
129
129
  openepd/model/validation/common.py,sha256=FLYqK8gYFagx08LCkS0jy3qo4-Zq9VAv5i8ZwF2svkc,2435
130
130
  openepd/model/validation/enum.py,sha256=06Fi2_sdjVhOElavtgvNXvkKU0NQ-bcAFx5_5MiDzdU,1793
131
131
  openepd/model/validation/numbers.py,sha256=J2rVMwJTPr8uC1DrU80xpq2SZGMXvVKx7v74SgOVi0U,851
132
- openepd/model/validation/quantity.py,sha256=UP6x2nUj1nP7G8e2rpi-HigHx9rwKeCuIDh_XWFRU6U,20187
132
+ openepd/model/validation/quantity.py,sha256=1z-G46dlryJEm4W-O0QiEJuFYICz7CPTM6gLhQKstgM,20194
133
133
  openepd/model/versioning.py,sha256=R_zm6rCrgF3vlJQYbpyWhirdS_Oek16cv_mvZmpuE8I,4473
134
134
  openepd/patch_pydantic.py,sha256=xrkzblatmU9HBzukWkp1cPq9ZSuohoz1p0pQqVKSlKs,4122
135
135
  openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
- openepd-6.4.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
137
- openepd-6.4.1.dist-info/METADATA,sha256=YqnvdbcllbapVDL63YMJA-0UJozK9OH5TGhnicVv95I,9038
138
- openepd-6.4.1.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
139
- openepd-6.4.1.dist-info/RECORD,,
136
+ openepd-6.4.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
137
+ openepd-6.4.2.dist-info/METADATA,sha256=5kTEsZy4PiO9EBGPxbl5Lu7pqAwDaJOjqkpRkVKUbas,9038
138
+ openepd-6.4.2.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
139
+ openepd-6.4.2.dist-info/RECORD,,