hestia-earth-models 0.60.1__py3-none-any.whl → 0.61.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.

Potentially problematic release.


This version of hestia-earth-models might be problematic. Click here for more details.

Files changed (54) hide show
  1. hestia_earth/models/cycle/cycleDuration.py +61 -22
  2. hestia_earth/models/cycle/startDate.py +16 -11
  3. hestia_earth/models/cycle/startDateDefinition.py +69 -0
  4. hestia_earth/models/impact_assessment/emissions.py +1 -3
  5. hestia_earth/models/ipcc2019/pastureGrass.py +1 -1
  6. hestia_earth/models/linkedImpactAssessment/__init__.py +8 -162
  7. hestia_earth/models/linkedImpactAssessment/emissions.py +168 -0
  8. hestia_earth/models/{impact_assessment → linkedImpactAssessment}/utils.py +1 -1
  9. hestia_earth/models/mocking/search-results.json +257 -229
  10. hestia_earth/models/{impact_assessment → pooreNemecek2018}/freshwaterWithdrawalsDuringCycle.py +1 -1
  11. hestia_earth/models/site/brackishWater.py +43 -0
  12. hestia_earth/models/site/freshWater.py +43 -0
  13. hestia_earth/models/site/salineWater.py +43 -0
  14. hestia_earth/models/utils/__init__.py +4 -4
  15. hestia_earth/models/version.py +1 -1
  16. {hestia_earth_models-0.60.1.dist-info → hestia_earth_models-0.61.1.dist-info}/METADATA +2 -2
  17. {hestia_earth_models-0.60.1.dist-info → hestia_earth_models-0.61.1.dist-info}/RECORD +49 -41
  18. tests/models/cycle/test_cycleDuration.py +15 -27
  19. tests/models/cycle/test_startDate.py +7 -7
  20. tests/models/cycle/test_startDateDefinition.py +31 -0
  21. tests/models/linkedImpactAssessment/__init__.py +0 -0
  22. tests/models/linkedImpactAssessment/test_emissions.py +22 -0
  23. tests/models/{impact_assessment → linkedImpactAssessment}/test_freshwaterWithdrawalsInputsProduction.py +4 -4
  24. tests/models/{impact_assessment → linkedImpactAssessment}/test_landOccupationInputsProduction.py +4 -4
  25. tests/models/{impact_assessment → linkedImpactAssessment}/test_landTransformationFromCropland100YearAverageInputsProduction.py +4 -4
  26. tests/models/{impact_assessment → linkedImpactAssessment}/test_landTransformationFromCropland20YearAverageInputsProduction.py +4 -4
  27. tests/models/{impact_assessment → linkedImpactAssessment}/test_landTransformationFromForest100YearAverageInputsProduction.py +4 -4
  28. tests/models/{impact_assessment → linkedImpactAssessment}/test_landTransformationFromForest20YearAverageInputsProduction.py +4 -4
  29. tests/models/{impact_assessment → linkedImpactAssessment}/test_landTransformationFromOtherNaturalVegetation100YearAverageInputsProduction.py +4 -4
  30. tests/models/{impact_assessment → linkedImpactAssessment}/test_landTransformationFromOtherNaturalVegetation20YearAverageInputsProduction.py +4 -4
  31. tests/models/linkedImpactAssessment/test_landTransformationFromPermanentPasture100YearAverageInputsProduction.py +24 -0
  32. tests/models/linkedImpactAssessment/test_landTransformationFromPermanentPasture20YearAverageInputsProduction.py +24 -0
  33. tests/models/{impact_assessment → pooreNemecek2018}/test_freshwaterWithdrawalsDuringCycle.py +1 -1
  34. tests/models/site/test_brackishWater.py +32 -0
  35. tests/models/site/test_freshWater.py +32 -0
  36. tests/models/site/test_salineWater.py +32 -0
  37. hestia_earth/models/cycle/endDate.py +0 -50
  38. tests/models/cycle/test_endDate.py +0 -24
  39. tests/models/impact_assessment/test_landTransformationFromPermanentPasture100YearAverageInputsProduction.py +0 -23
  40. tests/models/impact_assessment/test_landTransformationFromPermanentPasture20YearAverageInputsProduction.py +0 -23
  41. tests/models/test_linkedImpactAssessment.py +0 -33
  42. /hestia_earth/models/{impact_assessment → linkedImpactAssessment}/freshwaterWithdrawalsInputsProduction.py +0 -0
  43. /hestia_earth/models/{impact_assessment → linkedImpactAssessment}/landOccupationInputsProduction.py +0 -0
  44. /hestia_earth/models/{impact_assessment → linkedImpactAssessment}/landTransformationFromCropland100YearAverageInputsProduction.py +0 -0
  45. /hestia_earth/models/{impact_assessment → linkedImpactAssessment}/landTransformationFromCropland20YearAverageInputsProduction.py +0 -0
  46. /hestia_earth/models/{impact_assessment → linkedImpactAssessment}/landTransformationFromForest100YearAverageInputsProduction.py +0 -0
  47. /hestia_earth/models/{impact_assessment → linkedImpactAssessment}/landTransformationFromForest20YearAverageInputsProduction.py +0 -0
  48. /hestia_earth/models/{impact_assessment → linkedImpactAssessment}/landTransformationFromOtherNaturalVegetation100YearAverageInputsProduction.py +0 -0
  49. /hestia_earth/models/{impact_assessment → linkedImpactAssessment}/landTransformationFromOtherNaturalVegetation20YearAverageInputsProduction.py +0 -0
  50. /hestia_earth/models/{impact_assessment → linkedImpactAssessment}/landTransformationFromPermanentPasture100YearAverageInputsProduction.py +0 -0
  51. /hestia_earth/models/{impact_assessment → linkedImpactAssessment}/landTransformationFromPermanentPasture20YearAverageInputsProduction.py +0 -0
  52. {hestia_earth_models-0.60.1.dist-info → hestia_earth_models-0.61.1.dist-info}/LICENSE +0 -0
  53. {hestia_earth_models-0.60.1.dist-info → hestia_earth_models-0.61.1.dist-info}/WHEEL +0 -0
  54. {hestia_earth_models-0.60.1.dist-info → hestia_earth_models-0.61.1.dist-info}/top_level.txt +0 -0
@@ -46,7 +46,7 @@ TERM_ID = 'freshwaterWithdrawalsDuringCycle'
46
46
 
47
47
 
48
48
  def _indicator(term_id: str, value: float):
49
- indicator = _new_indicator(term_id)
49
+ indicator = _new_indicator(term_id, MODEL)
50
50
  indicator['value'] = value
51
51
  return indicator
52
52
 
@@ -0,0 +1,43 @@
1
+ from hestia_earth.schema import MeasurementMethodClassification
2
+ from hestia_earth.utils.model import find_term_match
3
+
4
+ from hestia_earth.models.log import logRequirements, logShouldRun
5
+ from hestia_earth.models.utils.measurement import _new_measurement, measurement_value
6
+ from . import MODEL
7
+
8
+ REQUIREMENTS = {
9
+ "Site": {
10
+ "measurements": [
11
+ {"@type": "Measurement", "term.@id": "waterSalinity", "value": ">= 500 and <= 18000"}
12
+ ]
13
+ }
14
+ }
15
+ RETURNS = {
16
+ "Measurement": [{
17
+ "value": "100",
18
+ "methodClassification": "modelled using other measurements"
19
+ }]
20
+ }
21
+ TERM_ID = 'brackishWater'
22
+
23
+
24
+ def _measurement():
25
+ data = _new_measurement(TERM_ID)
26
+ data['value'] = [100]
27
+ data['methodClassification'] = MeasurementMethodClassification.MODELLED_USING_OTHER_MEASUREMENTS.value
28
+ return data
29
+
30
+
31
+ def _should_run(site: dict):
32
+ waterSalinity = measurement_value(find_term_match(site.get('measurements', []), 'waterSalinity'))
33
+
34
+ logRequirements(site, model=MODEL, term=TERM_ID,
35
+ waterSalinity=waterSalinity)
36
+
37
+ should_run = all([500 <= waterSalinity <= 18000])
38
+ logShouldRun(site, MODEL, TERM_ID, should_run)
39
+ return should_run
40
+
41
+
42
+ def run(site: dict):
43
+ return _measurement() if _should_run(site) else None
@@ -0,0 +1,43 @@
1
+ from hestia_earth.schema import MeasurementMethodClassification
2
+ from hestia_earth.utils.model import find_term_match
3
+
4
+ from hestia_earth.models.log import logRequirements, logShouldRun
5
+ from hestia_earth.models.utils.measurement import _new_measurement, measurement_value
6
+ from . import MODEL
7
+
8
+ REQUIREMENTS = {
9
+ "Site": {
10
+ "measurements": [
11
+ {"@type": "Measurement", "term.@id": "waterSalinity", "value": "< 500"}
12
+ ]
13
+ }
14
+ }
15
+ RETURNS = {
16
+ "Measurement": [{
17
+ "value": "100",
18
+ "methodClassification": "modelled using other measurements"
19
+ }]
20
+ }
21
+ TERM_ID = 'freshWater'
22
+
23
+
24
+ def _measurement():
25
+ data = _new_measurement(TERM_ID)
26
+ data['value'] = [100]
27
+ data['methodClassification'] = MeasurementMethodClassification.MODELLED_USING_OTHER_MEASUREMENTS.value
28
+ return data
29
+
30
+
31
+ def _should_run(site: dict):
32
+ waterSalinity = measurement_value(find_term_match(site.get('measurements', []), 'waterSalinity'))
33
+
34
+ logRequirements(site, model=MODEL, term=TERM_ID,
35
+ waterSalinity=waterSalinity)
36
+
37
+ should_run = all([0 < waterSalinity < 500])
38
+ logShouldRun(site, MODEL, TERM_ID, should_run)
39
+ return should_run
40
+
41
+
42
+ def run(site: dict):
43
+ return _measurement() if _should_run(site) else None
@@ -0,0 +1,43 @@
1
+ from hestia_earth.schema import MeasurementMethodClassification
2
+ from hestia_earth.utils.model import find_term_match
3
+
4
+ from hestia_earth.models.log import logRequirements, logShouldRun
5
+ from hestia_earth.models.utils.measurement import _new_measurement, measurement_value
6
+ from . import MODEL
7
+
8
+ REQUIREMENTS = {
9
+ "Site": {
10
+ "measurements": [
11
+ {"@type": "Measurement", "term.@id": "waterSalinity", "value": "> 18000"}
12
+ ]
13
+ }
14
+ }
15
+ RETURNS = {
16
+ "Measurement": [{
17
+ "value": "100",
18
+ "methodClassification": "modelled using other measurements"
19
+ }]
20
+ }
21
+ TERM_ID = 'salineWater'
22
+
23
+
24
+ def _measurement():
25
+ data = _new_measurement(TERM_ID)
26
+ data['value'] = [100]
27
+ data['methodClassification'] = MeasurementMethodClassification.MODELLED_USING_OTHER_MEASUREMENTS.value
28
+ return data
29
+
30
+
31
+ def _should_run(site: dict):
32
+ waterSalinity = measurement_value(find_term_match(site.get('measurements', []), 'waterSalinity'))
33
+
34
+ logRequirements(site, model=MODEL, term=TERM_ID,
35
+ waterSalinity=waterSalinity)
36
+
37
+ should_run = all([waterSalinity > 18000])
38
+ logShouldRun(site, MODEL, TERM_ID, should_run)
39
+ return should_run
40
+
41
+
42
+ def run(site: dict):
43
+ return _measurement() if _should_run(site) else None
@@ -3,7 +3,7 @@ import sys
3
3
  import datetime
4
4
  from functools import reduce
5
5
  import operator
6
- from typing import Any
6
+ from typing import Any, Union
7
7
  from hestia_earth.schema import SchemaType
8
8
  from hestia_earth.utils.api import download_hestia
9
9
  from hestia_earth.utils.model import linked_node
@@ -31,9 +31,9 @@ def _include_model(node: dict, term_id: str):
31
31
  return {**node, **({} if term.get('@id') is None else {'model': linked_node(term)})}
32
32
 
33
33
 
34
- def _include_method(node: dict, term_id: str):
35
- term = download_hestia(term_id) or {}
36
- return {**node, **({} if term.get('@id') is None else {'method': linked_node(term)})}
34
+ def _include_method(node: dict, term_id: Union[None, str, dict]):
35
+ term = (download_hestia(term_id) or {}) if isinstance(term_id, str) else term_id
36
+ return node | ({} if term is None or term.get('@id') is None else {'method': linked_node(term)})
37
37
 
38
38
 
39
39
  def _include_methodModel(node: dict, term_id: str):
@@ -1 +1 @@
1
- VERSION = '0.60.1'
1
+ VERSION = '0.61.1'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hestia-earth-models
3
- Version: 0.60.1
3
+ Version: 0.61.1
4
4
  Summary: Hestia's set of modules for filling gaps in the activity data using external datasets (e.g. populating soil properties with a geospatial dataset using provided coordinates) and internal lookups (e.g. populating machinery use from fuel use). Includes rules for when gaps should be filled versus not (e.g. never gap fill yield, gap fill crop residue if yield provided etc.).
5
5
  Home-page: https://gitlab.com/hestia-earth/hestia-engine-models
6
6
  Author: Hestia Team
@@ -11,7 +11,7 @@ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
11
11
  Classifier: Programming Language :: Python :: 3.6
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Requires-Dist: hestia-earth.schema ==27.*
14
+ Requires-Dist: hestia-earth.schema ==28.*
15
15
  Requires-Dist: hestia-earth.utils >=0.12.2
16
16
  Requires-Dist: python-dateutil >=2.8.1
17
17
  Requires-Dist: CurrencyConverter ==0.16.8
@@ -3,7 +3,7 @@ hestia_earth/models/__init__.py,sha256=qEFeq3yuf3lQKVseALmL8aPM8fpCS54B_5pry00M3
3
3
  hestia_earth/models/cache_sites.py,sha256=KQp9cUKE-aIcYJoMWEtKFYS8gBFfsx5LKQhqoWpUSoM,6065
4
4
  hestia_earth/models/log.py,sha256=b63I3qyTtQs17xxbq8RI0Fv2lvZ1oDZ9k0njhxqiFFk,3459
5
5
  hestia_earth/models/requirements.py,sha256=znNZJAhwX2iYiKcAQXPftY7z_1MsNa0QxCXkXyHm_U0,17363
6
- hestia_earth/models/version.py,sha256=jkZGW0WUYUex4V7qv5qCaUMLtL80ETv20-KbHpaM3KA,19
6
+ hestia_earth/models/version.py,sha256=DawXHQzDIFA4jqWG3Ll44HT9IK7VVuH1ufis27BrDfE,19
7
7
  hestia_earth/models/agribalyse2016/__init__.py,sha256=WvK0qCQbnYtg9oZxrACd1wGormZyXibPtpCnIQeDqbw,415
8
8
  hestia_earth/models/agribalyse2016/fuelElectricity.py,sha256=mrh8seYSYdTgcMDCETLiknuPeJehg071YoG4UiyW0yU,4404
9
9
  hestia_earth/models/agribalyse2016/machineryInfrastructureDepreciatedAmountPerCycle.py,sha256=_Rbngu0DzHKa62JwBl58ZC_ui1zLF2que_nB7ukhOQc,3392
@@ -38,8 +38,7 @@ hestia_earth/models/cycle/coldCarcassWeightPerHead.py,sha256=SaTHq8AC3o8HylfN0LE
38
38
  hestia_earth/models/cycle/coldDressedCarcassWeightPerHead.py,sha256=9i52CQHiqZjFYcW1IwKUAgJvFkUvp0BZT_z3Ik-HiSM,3041
39
39
  hestia_earth/models/cycle/concentrateFeed.py,sha256=TBhBuh98WYrzMEajXyuFRTdVq_pnp0fokCCqL67nfmk,5594
40
40
  hestia_earth/models/cycle/cropResidueManagement.py,sha256=QTRCCFu9VvD_a3_8aAj216vsuhAJEhlAwTJH7ifMkDo,2237
41
- hestia_earth/models/cycle/cycleDuration.py,sha256=ZgK6lQ8wmRv5uhM30OiV8ctqE4v8ldkBzzo23JlNwWY,1576
42
- hestia_earth/models/cycle/endDate.py,sha256=YwXvYDO2dz5TxspsqRGIWOYFHj5PYtAL-DtCqEkxIvE,1396
41
+ hestia_earth/models/cycle/cycleDuration.py,sha256=9EvmdBdyjgKqiMi643PMVPvlrzRInP00WKiB2hv96NQ,3016
43
42
  hestia_earth/models/cycle/energyContentLowerHeatingValue.py,sha256=AyVKCQbb3Pto3Ca__F0KJ_wlwTxbPd7mUyehZW7AJPM,2212
44
43
  hestia_earth/models/cycle/excretaKgMass.py,sha256=iA8Kfl3WvyxbQpx1QOGPQZ9O_Pc5rj7xhucYx3rB8Co,3949
45
44
  hestia_earth/models/cycle/excretaKgN.py,sha256=mgJTneQIYJ9Su-rTK5ppb_k3YhICFNWsfPZtGR98RI0,2968
@@ -56,7 +55,8 @@ hestia_earth/models/cycle/residueIncorporated.py,sha256=9_s2RMOy5D20eq9ziDBEA_Y7
56
55
  hestia_earth/models/cycle/residueLeftOnField.py,sha256=qYxKGAdUORN7Vjqj7AZC2VGV_rM3MN0-padDGhgjiNU,2175
57
56
  hestia_earth/models/cycle/residueRemoved.py,sha256=jxDu_Jfcyd-rm-qo8ZuRIf-GGxtFBMpmGy1zHOavwy0,2135
58
57
  hestia_earth/models/cycle/siteDuration.py,sha256=XAxCA_51kQaWh4_0L_Y08cGn-qsMRUcyaPrn84rfafI,1058
59
- hestia_earth/models/cycle/startDate.py,sha256=RTpA7NX5afktdQH0Z6c2SB7LCSi5R28aPcqq7Xn5lkw,1181
58
+ hestia_earth/models/cycle/startDate.py,sha256=OnuMf4TkDb0WwCntjXNy3ipLS-b4drMWSkXWeXU142Q,1507
59
+ hestia_earth/models/cycle/startDateDefinition.py,sha256=4C7Gh3x7nBtAK7q1LbNUInwPpS5Vv7ivnkxP5QFhHBs,2273
60
60
  hestia_earth/models/cycle/transformation.py,sha256=06KTfVubh2I47dfnG9Iv6AbuUBbURM8BAVOkRu7XmHw,1255
61
61
  hestia_earth/models/cycle/utils.py,sha256=ZcVwvRwVNK48jZfnhrHl2ai4a96YzcmRgO-eQXwQNjo,1408
62
62
  hestia_earth/models/cycle/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -178,21 +178,9 @@ hestia_earth/models/hyde32/landTransformationFromPermanentPasture100YearAverageD
178
178
  hestia_earth/models/hyde32/landTransformationFromPermanentPasture20YearAverageDuringCycle.py,sha256=khH8zdALTeaCaIDK6L-3OexD03I7MB8vA_mBOSkwe1M,2408
179
179
  hestia_earth/models/hyde32/utils.py,sha256=j9QavyBZIQ-ZCNjdPLWjOjg2LrxcNlanQ1wPnT0IKX8,3098
180
180
  hestia_earth/models/impact_assessment/__init__.py,sha256=gTR_PhWps593fPhm-V826VLLrZVH8CNQTqxExB7GGNI,418
181
- hestia_earth/models/impact_assessment/emissions.py,sha256=zRQd17joMqij8mjRcrY9LssHgwzsYC5bkoy7iGdjj-Q,3429
182
- hestia_earth/models/impact_assessment/freshwaterWithdrawalsDuringCycle.py,sha256=wvNwABEh4blgm95G9y_yorMNEjyYsq4MZiFggkPRuIE,3932
183
- hestia_earth/models/impact_assessment/freshwaterWithdrawalsInputsProduction.py,sha256=DSLX_aEWaUFcFZRD46bG5lIQ4TtAtIqH-sMkVCJH2Dg,990
181
+ hestia_earth/models/impact_assessment/emissions.py,sha256=6eq88G_U-JxXvysOnGDSXOB2dhJOjlqmJCq-CHQ7ZIM,3357
184
182
  hestia_earth/models/impact_assessment/irrigated.py,sha256=qopAYbD91uu1Q2hJ3aB5Xl3br2Nzh7LoMTRCFOXmOv0,783
185
- hestia_earth/models/impact_assessment/landOccupationInputsProduction.py,sha256=SggB_4tpiKNeb6TIQWBm-X9VwG4pzLoyHdK8JroRIsE,576
186
- hestia_earth/models/impact_assessment/landTransformationFromCropland100YearAverageInputsProduction.py,sha256=jxeJS8r1qYIoyeEE-MGKbldEDL3x9CG8aIb4JdcUnj4,1036
187
- hestia_earth/models/impact_assessment/landTransformationFromCropland20YearAverageInputsProduction.py,sha256=vluuIcr1jYhs11oz7nANk2qUuUVPy5uNkvpfMv_M4LE,1034
188
- hestia_earth/models/impact_assessment/landTransformationFromForest100YearAverageInputsProduction.py,sha256=pDPLaJh6eWD_ENuWIuAhHHcgzWK44emt9A6Ckc0ob0c,1032
189
- hestia_earth/models/impact_assessment/landTransformationFromForest20YearAverageInputsProduction.py,sha256=h-ZxPjc4Wdl4fJThcbVkktHL2btO48cfmYA3pZLeKiY,1030
190
- hestia_earth/models/impact_assessment/landTransformationFromOtherNaturalVegetation100YearAverageInputsProduction.py,sha256=Bb-qMHTjazCSZi0MGT9nYXDBb14jnpTbMzlz-X_5lMM,1064
191
- hestia_earth/models/impact_assessment/landTransformationFromOtherNaturalVegetation20YearAverageInputsProduction.py,sha256=wQdJ4NqEfjI3N3tD8X5bCEmz-2XVoYVLriKcLRLhPmU,1062
192
- hestia_earth/models/impact_assessment/landTransformationFromPermanentPasture100YearAverageInputsProduction.py,sha256=7btlXl5PL47qIjfs-w_xLZY_nsRnJAwTREtt8LpY6UI,1052
193
- hestia_earth/models/impact_assessment/landTransformationFromPermanentPasture20YearAverageInputsProduction.py,sha256=pdluhfRQuJK0EHq-L0s0TOf37tvOQYB-M-wZiuSbarw,1050
194
183
  hestia_earth/models/impact_assessment/organic.py,sha256=vgY-Wwt_gE6t2EQSFDY6XvDjI0TXb7YeMxH7gty-u6Q,759
195
- hestia_earth/models/impact_assessment/utils.py,sha256=qMEIcXYBgVgEFnY_KFhZ8Y_07trNkLOIQGnbXWjczCE,1869
196
184
  hestia_earth/models/impact_assessment/post_checks/__init__.py,sha256=rkHO4Z3Zz8LCT1OoDgHmUuGURvXsdzh2nQqgU2M4tjU,304
197
185
  hestia_earth/models/impact_assessment/post_checks/cycle.py,sha256=FxfDEswd9uPYL-ZRqgr_IrrtOJyD9BnqA8-l1ZOxwiY,838
198
186
  hestia_earth/models/impact_assessment/post_checks/site.py,sha256=KyQmQ8dizBPZ6R31Th5S99EMw6LAfeqc1sX4_PX73MY,828
@@ -251,7 +239,7 @@ hestia_earth/models/ipcc2019/no3ToGroundwaterOrganicFertiliser.py,sha256=zOhp6Nh
251
239
  hestia_earth/models/ipcc2019/noxToAirInorganicFertiliser.py,sha256=D-UyzY55mOiIcXRzEtvPY-r1bDFgb9YqA08SmHsQeNA,4226
252
240
  hestia_earth/models/ipcc2019/noxToAirOrganicFertiliser.py,sha256=SVgVNp76bIv9oUjrZZuI6xYLo4Gw2DRU5tbp14gydOE,3911
253
241
  hestia_earth/models/ipcc2019/organicCarbonPerHa.py,sha256=omxrtnAZ58qHQYIhi38R7VFn7SRzf8Kk89KgP0VELFQ,141507
254
- hestia_earth/models/ipcc2019/pastureGrass.py,sha256=TNKK3P0s0euV1jnZTFVxomed5G74R2dAHjKnoGZSS0g,8708
242
+ hestia_earth/models/ipcc2019/pastureGrass.py,sha256=Q3uX7IcTk0PmzxqEhU3JAcHb5LnUymZbmdRFP9xXsfo,8713
255
243
  hestia_earth/models/ipcc2019/pastureGrass_utils.py,sha256=nUJYYkovzF7QD4LeUqhV5mBYFKdrhxeG4gyPRv0Xpuk,16002
256
244
  hestia_earth/models/ipcc2019/utils.py,sha256=MSDMu15D9DnilFUgi4_6jYXC0FaKso3OODauGTMB6hs,6229
257
245
  hestia_earth/models/ipcc2019/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -353,16 +341,29 @@ hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystems
353
341
  hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsPhotochemicalOzoneFormation.py,sha256=t8DTybm_3DIlvtpSJP-KBWsgp0SKe4d_pw2Y0BKGxMg,1175
354
342
  hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsTerrestrialAcidification.py,sha256=U74max756dWZLVbLNUAHcHeUiHADLxuvRbvpJc4eSLc,1182
355
343
  hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsTerrestrialEcotoxicity.py,sha256=-8e8-lt0yByEcVbk7bTF4-z3t51w5iQKVdZ5bgYsyJg,1063
356
- hestia_earth/models/linkedImpactAssessment/__init__.py,sha256=d19wzr4GnWXpMWRhchqwp3S8txrUkpIWrGPwnWdXhjI,6236
344
+ hestia_earth/models/linkedImpactAssessment/__init__.py,sha256=SPP09DMS4zUThyQfcgLpivFwsey4WSt77CDMYHJPKWE,423
345
+ hestia_earth/models/linkedImpactAssessment/emissions.py,sha256=od49hQAJCnjxG3mI2W7ZoOfiNPoUAWMWtklB5_2syoY,6274
346
+ hestia_earth/models/linkedImpactAssessment/freshwaterWithdrawalsInputsProduction.py,sha256=DSLX_aEWaUFcFZRD46bG5lIQ4TtAtIqH-sMkVCJH2Dg,990
347
+ hestia_earth/models/linkedImpactAssessment/landOccupationInputsProduction.py,sha256=SggB_4tpiKNeb6TIQWBm-X9VwG4pzLoyHdK8JroRIsE,576
348
+ hestia_earth/models/linkedImpactAssessment/landTransformationFromCropland100YearAverageInputsProduction.py,sha256=jxeJS8r1qYIoyeEE-MGKbldEDL3x9CG8aIb4JdcUnj4,1036
349
+ hestia_earth/models/linkedImpactAssessment/landTransformationFromCropland20YearAverageInputsProduction.py,sha256=vluuIcr1jYhs11oz7nANk2qUuUVPy5uNkvpfMv_M4LE,1034
350
+ hestia_earth/models/linkedImpactAssessment/landTransformationFromForest100YearAverageInputsProduction.py,sha256=pDPLaJh6eWD_ENuWIuAhHHcgzWK44emt9A6Ckc0ob0c,1032
351
+ hestia_earth/models/linkedImpactAssessment/landTransformationFromForest20YearAverageInputsProduction.py,sha256=h-ZxPjc4Wdl4fJThcbVkktHL2btO48cfmYA3pZLeKiY,1030
352
+ hestia_earth/models/linkedImpactAssessment/landTransformationFromOtherNaturalVegetation100YearAverageInputsProduction.py,sha256=Bb-qMHTjazCSZi0MGT9nYXDBb14jnpTbMzlz-X_5lMM,1064
353
+ hestia_earth/models/linkedImpactAssessment/landTransformationFromOtherNaturalVegetation20YearAverageInputsProduction.py,sha256=wQdJ4NqEfjI3N3tD8X5bCEmz-2XVoYVLriKcLRLhPmU,1062
354
+ hestia_earth/models/linkedImpactAssessment/landTransformationFromPermanentPasture100YearAverageInputsProduction.py,sha256=7btlXl5PL47qIjfs-w_xLZY_nsRnJAwTREtt8LpY6UI,1052
355
+ hestia_earth/models/linkedImpactAssessment/landTransformationFromPermanentPasture20YearAverageInputsProduction.py,sha256=pdluhfRQuJK0EHq-L0s0TOf37tvOQYB-M-wZiuSbarw,1050
356
+ hestia_earth/models/linkedImpactAssessment/utils.py,sha256=dGwGc2d-8_WQElTpfyPmz5vQtL-LHQRmiZnCTuPXMDs,1876
357
357
  hestia_earth/models/mocking/__init__.py,sha256=kmSeOTSvurMUxw7Ajhf3G-SVPQ1NgmirMTk4TSOEicY,765
358
358
  hestia_earth/models/mocking/mock_search.py,sha256=V-ycVBTkJu7PP37Ivy_16hpKBV4aEtJb5S9DfChPNSU,2038
359
- hestia_earth/models/mocking/search-results.json,sha256=d8oBES7NajlmrvfYZUeyGhDJsOQIOXQlY4ky6lsmoZ8,39547
359
+ hestia_earth/models/mocking/search-results.json,sha256=jLKoR2nmYGXg5zicRlzRL1BSQks7tJtkM3_Vrfvt5eE,40203
360
360
  hestia_earth/models/pooreNemecek2018/__init__.py,sha256=nPboL7ULJzL5nJD5q7q9VOZt_fxbKVm8fmn1Az5YkVY,417
361
361
  hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py,sha256=Qt-mel4dkhK6N5uUOutNOinCTFjbjtGzITaaI0LvYc4,2396
362
362
  hestia_earth/models/pooreNemecek2018/belowGroundCropResidue.py,sha256=JT0RybbvWVlo01FO8K0Yj41HrEaJT3Kj1xfayr2X-xw,2315
363
363
  hestia_earth/models/pooreNemecek2018/ch4ToAirAquacultureSystems.py,sha256=CxjhFinScTebBGNVheEdbdw36DdHwoPszAnbxtd6_9s,6590
364
364
  hestia_earth/models/pooreNemecek2018/excretaKgN.py,sha256=kLWtv49c1sD3YrporqRcmwr36Q_fJc-hIrvi8LS-864,6418
365
365
  hestia_earth/models/pooreNemecek2018/excretaKgVs.py,sha256=nlnZSDx-bIvtukL79Syhon0cSQ8o4OC1YKtAG6haGhI,8500
366
+ hestia_earth/models/pooreNemecek2018/freshwaterWithdrawalsDuringCycle.py,sha256=HB_9q5eE6al2Te3v29hC5wqxsYe4P46ZAPwdWNzx3v0,3939
366
367
  hestia_earth/models/pooreNemecek2018/landOccupationDuringCycle.py,sha256=jE110XgPMgfnBMUXyKIL5SL9yZWYhdGr5NrfHcqn2h0,2785
367
368
  hestia_earth/models/pooreNemecek2018/longFallowPeriod.py,sha256=8Z--QMhRItR77RsZFr6v1EPVZdv7pBxyl685t3Iit5M,1561
368
369
  hestia_earth/models/pooreNemecek2018/n2OToAirAquacultureSystemsDirect.py,sha256=HJ7IstImGyasIKosK2lQZ-v6Lqt3_aEfZhoiC4CY0rM,2586
@@ -450,8 +451,10 @@ hestia_earth/models/schmidt2007/n2OToAirWasteTreatmentDirect.py,sha256=3i7tgar2D
450
451
  hestia_earth/models/schmidt2007/nh3ToAirWasteTreatment.py,sha256=yGrw7LHTrgRU_LyUsdl96TO6omEZju7JaBbW_A8ufX4,1474
451
452
  hestia_earth/models/schmidt2007/utils.py,sha256=pQ76IBWMwi10Wa5PjsehtdnOMw-GVgDtB4nLGYKT-Ic,812
452
453
  hestia_earth/models/site/__init__.py,sha256=aVuLLhq0OQVm-_MZoq4JAKMidqexUWJBg_7mmojmDzc,405
454
+ hestia_earth/models/site/brackishWater.py,sha256=dl-R_vwFlXwAkir3grhCYZTLf05FYrfUJS9ZdnprzY0,1277
453
455
  hestia_earth/models/site/cationExchangeCapacityPerKgSoil.py,sha256=0eH4A-tXJ0hvIkiYXWxlx8TfrdbIKUGYUDk97-yQJgg,3653
454
456
  hestia_earth/models/site/flowingWater.py,sha256=0ZuSXMr3EUTY3wsy8hdfuXeZcNX-n3D45MfX3dwyaeA,1728
457
+ hestia_earth/models/site/freshWater.py,sha256=z-C_Il0U6UhZUQUPwh72Z0vixmSrUNEmBN5Lz-nl9_w,1254
455
458
  hestia_earth/models/site/management.py,sha256=gYmFaWIYtki112b3A3qf_1hLl9bb98T6oYMG4KbaXzQ,8628
456
459
  hestia_earth/models/site/netPrimaryProduction.py,sha256=UIIQkYd911qVzrWjxBLrC37e-RARIVgDwLdARY9BuLw,1849
457
460
  hestia_earth/models/site/organicCarbonPerHa.py,sha256=gcmhZavc2EWvkroKkpFM5xXowPTgyXGh1XL6lgs3CX4,14303
@@ -465,6 +468,7 @@ hestia_earth/models/site/precipitationAnnual.py,sha256=to14BEFjUaYyCu5aIBQZtuaIr
465
468
  hestia_earth/models/site/precipitationMonthly.py,sha256=yGUbiUCu1Prp3qVHuZodGrcfrbYu170WTUGyaj-KEjY,1896
466
469
  hestia_earth/models/site/rainfallAnnual.py,sha256=Ix_B8Ny7IIRkJ_3lUvoHOjPgqCyR9I0U3_ADUUtMqsY,2003
467
470
  hestia_earth/models/site/rainfallMonthly.py,sha256=2Uo8F-YxnTK0_txlHmiAyVp1bGfWD4bneRKyg4tdQkI,1881
471
+ hestia_earth/models/site/salineWater.py,sha256=HO31JcUBw5WQYGu9zHNqbARasBubNFgJ7OxSVrK3D2o,1255
468
472
  hestia_earth/models/site/soilMeasurement.py,sha256=q5CJ4caCqH8pSbQxen0IqTjrFyMRLrrCU2M2BMUgzTE,7851
469
473
  hestia_earth/models/site/temperatureAnnual.py,sha256=Q3b1RH2_hpA0JWwOYA5nKgMGcXHjV8-akXT9vB0cbwc,2012
470
474
  hestia_earth/models/site/temperatureMonthly.py,sha256=yXwpFCGT2tUqvVBNedaPyBmN_KlzZqo5yv2TWem1pBk,1890
@@ -509,7 +513,7 @@ hestia_earth/models/transformation/product/__init__.py,sha256=47DEQpj8HBSa-_TImW
509
513
  hestia_earth/models/transformation/product/excreta.py,sha256=Yj9wMF5if-zivb6qbN3vy1X51ZNYxvoyG9f4KPp3Y18,5700
510
514
  hestia_earth/models/usetoxV2/__init__.py,sha256=pK37V3H-KvYcvRKw4Mv8CWrB2N0LFLzmv0jKLdhGGqs,409
511
515
  hestia_earth/models/usetoxV2/freshwaterEcotoxicityPotentialCtue.py,sha256=oYNwThnMXjZymif5buyHiczFiOq_61jOdDMOAyy8vwQ,1018
512
- hestia_earth/models/utils/__init__.py,sha256=XBoIFLfdddas7ser6X1TxFL8bHipnmYn83KjY33sTXc,4379
516
+ hestia_earth/models/utils/__init__.py,sha256=ULNgkb5S7UXoHnqmFSbqm6fVkit03FKV3WL924XGr0I,4459
513
517
  hestia_earth/models/utils/aggregated.py,sha256=sz6usleZmo_tC_hIvmGgYsX8-H0dulXmmhHK4EkA5Kg,4946
514
518
  hestia_earth/models/utils/animalProduct.py,sha256=M5IunAKGY6oZv3j1Ascl34ywyeLWApqOIlBzbtlA2FE,721
515
519
  hestia_earth/models/utils/aquacultureManagement.py,sha256=3uSTSMDNNPa26NTJGZCYwByv3QZVyxj6bh2aFCoBzHk,126
@@ -549,7 +553,6 @@ tests/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
549
553
  tests/models/test_cache_sites.py,sha256=AsZSGb4ruFqag74wRaQxpoZxbMxexPY8q8sMb2ergzg,1986
550
554
  tests/models/test_ecoinventV3.py,sha256=zyIWeeS7VndjXAHcROhDi3E0I52U8uQu8u-t1EXwqW8,1492
551
555
  tests/models/test_emissionNotRelevant.py,sha256=YXTdRfcdR_JepHuj2P3Y3r0aFMKNOmsXQHY48tmLTQo,1316
552
- tests/models/test_linkedImpactAssessment.py,sha256=RiBNTF34GMA5YsuJ0MAsEPhMuHNC2W0Qq9YnWYDpXM4,1172
553
556
  tests/models/agribalyse2016/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
554
557
  tests/models/agribalyse2016/test_fuelElectricity.py,sha256=u_wNlqngJc8NELPr16kYsYQ-_2PcL8BnrfJucY7dccU,1353
555
558
  tests/models/agribalyse2016/test_machineryInfrastructureDepreciatedAmountPerCycle.py,sha256=75yJ0yuPbIizpSsHr7CpZnUv01LZbuYsm5s9hE0VL_o,1090
@@ -584,8 +587,7 @@ tests/models/cycle/test_coldDressedCarcassWeightPerHead.py,sha256=DrdI1TUmggeeQv
584
587
  tests/models/cycle/test_completeness.py,sha256=Ku1ZSApGaACkXe3ae14yP01C4GssHMwlPG_UPrSytPo,1625
585
588
  tests/models/cycle/test_concentrateFeed.py,sha256=tgkThL4g293CexLvb89ftO9UqUbHhNOxiP6QMmsqCCo,2013
586
589
  tests/models/cycle/test_cropResidueManagement.py,sha256=vQWl7rDYLJjiKyBQlCiOA76LpzM4dI2t7JJ30uF8H9M,2020
587
- tests/models/cycle/test_cycleDuration.py,sha256=jD9L6eGwi0woUMpqcGm6MxP_Wvh_H6FCSmiHME5eOZc,1296
588
- tests/models/cycle/test_endDate.py,sha256=SY04-jtp9dAaCJpFv8Ef09jhUmsB0IWRphWrilR_wv4,649
590
+ tests/models/cycle/test_cycleDuration.py,sha256=5anGBbvxFP7YKO9za80bNFL_DoZdtqhMYwJKkvNSi34,856
589
591
  tests/models/cycle/test_energyContentLowerHeatingValue.py,sha256=ZvHigQrtneKrRc8qr7rN8aj6tuA0ds0V6Brh0UzN_T8,1204
590
592
  tests/models/cycle/test_excretaKgMass.py,sha256=xpuq0k5HKvnGmWdJy0GmIv6A4xYk2VDFB4BMb8J2Z0g,2925
591
593
  tests/models/cycle/test_excretaKgN.py,sha256=xoe0PF-DwhVkihN-1BonUa7u_QNM9lr7CmGXsOozQ0Y,1090
@@ -605,7 +607,8 @@ tests/models/cycle/test_residueIncorporated.py,sha256=esB_wnpf6W0PB24HW0YUgtfD9m
605
607
  tests/models/cycle/test_residueLeftOnField.py,sha256=_8CoSp-7z3BBLGN5Hv067FRYz8yDFw5fi_Cu5n6Rl3g,1290
606
608
  tests/models/cycle/test_residueRemoved.py,sha256=R5v8lwGyz_4a9_X_LnugBEmgVgcisS5LTM5GFCtKIco,1278
607
609
  tests/models/cycle/test_siteDuration.py,sha256=3VS9oyEey_dkaIaKtXfnxfARkfSmZbbM-Px0_lvqxQM,881
608
- tests/models/cycle/test_startDate.py,sha256=on3OdP7HtR005cQUTiFbiz_iQ7pX53WZ368wYYBHbks,556
610
+ tests/models/cycle/test_startDate.py,sha256=cGhqeZWkJdp6PNxmT0rJ5ZVsTAKm_8CyZKivAzRwSeI,592
611
+ tests/models/cycle/test_startDateDefinition.py,sha256=42BmsT1I7Jq_YMVN-VNU7a0fIZ2w3i5jgwy4H_r4dNM,920
609
612
  tests/models/cycle/test_transformations.py,sha256=Ws_8KhNqeHogGFXTQ4qZXQ5Ph2I3ZUaY0yO1itFUHLk,464
610
613
  tests/models/cycle/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
611
614
  tests/models/cycle/animal/test_milkYield.py,sha256=e3FX8ikrS7nNeOuy8K7rNLs577odN5xrFohUWQw-tag,1323
@@ -714,18 +717,7 @@ tests/models/hyde32/test_landTransformationFromPermanentPasture100YearAverageDur
714
717
  tests/models/hyde32/test_landTransformationFromPermanentPasture20YearAverageDuringCycle.py,sha256=Bnoy946OwVhgn_jtZBiYXMebyJMT0LX7ATOVa0ivXrs,713
715
718
  tests/models/impact_assessment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
716
719
  tests/models/impact_assessment/test_emissions.py,sha256=nygoe5JeuQ1rbMQSqAr8oBSm6jC4ygZb2XNHyEx85lo,990
717
- tests/models/impact_assessment/test_freshwaterWithdrawalsDuringCycle.py,sha256=cIVhNaE3L7XldfEI2SNr4EaMFLSc-fZhOkzBhdwmtlk,1624
718
- tests/models/impact_assessment/test_freshwaterWithdrawalsInputsProduction.py,sha256=JYrGPA-w3ghkM56FOa3zug9IMuXz-9vJe8XPq_TaEOw,839
719
720
  tests/models/impact_assessment/test_irrigated.py,sha256=3elSWEN1NE05JO1OMfJ7uf0JmU-fqLpazCvS6FVxMQE,377
720
- tests/models/impact_assessment/test_landOccupationInputsProduction.py,sha256=g_sfSvN2rbDyqRsJUPFkZgB2EVVv5Okre1PVVWFRJ4Y,832
721
- tests/models/impact_assessment/test_landTransformationFromCropland100YearAverageInputsProduction.py,sha256=AhJRlwxLfsboA2-to3haNHFggIJXLZQAd0vWiT-re5Y,870
722
- tests/models/impact_assessment/test_landTransformationFromCropland20YearAverageInputsProduction.py,sha256=ED81hhRRZMIIKwEX8atmMMVN9dVoXP-lZa20QYCr0ws,869
723
- tests/models/impact_assessment/test_landTransformationFromForest100YearAverageInputsProduction.py,sha256=3sZNCkxr7g1gRBwWDxQAL_AcsAc7I-yvcLrVyM4Wy_w,868
724
- tests/models/impact_assessment/test_landTransformationFromForest20YearAverageInputsProduction.py,sha256=ZwirLlYpClbDxMmnLCGNyudOobwjslr00JqLCZc03vY,867
725
- tests/models/impact_assessment/test_landTransformationFromOtherNaturalVegetation100YearAverageInputsProduction.py,sha256=UJ47_paA5V3x7gnQu13MuqmfsfEo8p2qlCE4f7SCyHs,898
726
- tests/models/impact_assessment/test_landTransformationFromOtherNaturalVegetation20YearAverageInputsProduction.py,sha256=ljyVAoY89OYIxSG7v1xr3bLOn9uUIgoGZo6kknX3RF8,897
727
- tests/models/impact_assessment/test_landTransformationFromPermanentPasture100YearAverageInputsProduction.py,sha256=7ZcnHUYedq46fYEVqZ6N1JzP1P5MGuoCYyRSitQxp0c,878
728
- tests/models/impact_assessment/test_landTransformationFromPermanentPasture20YearAverageInputsProduction.py,sha256=97jyVVOeqL5ogKrdlAsRvKO7Ce9KUQALT-IMaPC1_tY,877
729
721
  tests/models/impact_assessment/test_oganic.py,sha256=Ei73bkB2MzKlr3jZmg8Cimxw_ImJSBdB3xKBn6ZCRx8,375
730
722
  tests/models/impact_assessment/test_post_checks.py,sha256=B-KVdkWaG8v-9aT1fNDQ9sml3q9I5XPo38NKxear1nY,310
731
723
  tests/models/impact_assessment/test_pre_checks.py,sha256=1oXCdhldG7O7fntwbUqbCheVhuHgf5N3BionfEGC7Nc,308
@@ -886,12 +878,25 @@ tests/models/lcImpactCertainEffectsInfinite/test_damageToTerrestrialEcosystemsPd
886
878
  tests/models/lcImpactCertainEffectsInfinite/test_damageToTerrestrialEcosystemsPhotochemicalOzoneFormation.py,sha256=d_rysPRtlmb_sjX-e857qNxL9sQK0m8RP3zRwTjM6Ko,951
887
879
  tests/models/lcImpactCertainEffectsInfinite/test_damageToTerrestrialEcosystemsTerrestrialAcidification.py,sha256=rdiAapP73gXosOBZ2loTEbeBBASFUtdifbZwYYB8SLA,934
888
880
  tests/models/lcImpactCertainEffectsInfinite/test_damageToTerrestrialEcosystemsTerrestrialEcotoxicity.py,sha256=UJJ0raY5leOqtBpBlIGRZSUYqA5mNt-xmq5Eos_nysg,882
881
+ tests/models/linkedImpactAssessment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
882
+ tests/models/linkedImpactAssessment/test_emissions.py,sha256=07z9LW5Ir3uL8odeU6puaeb9ZsgGclfWX3_h13cxeio,752
883
+ tests/models/linkedImpactAssessment/test_freshwaterWithdrawalsInputsProduction.py,sha256=uGiKffgLCzWqeSrofmiZTBv6WNItar-ArC7jCofSNw0,859
884
+ tests/models/linkedImpactAssessment/test_landOccupationInputsProduction.py,sha256=epP6d1bRI6YNJZt_dkQhBKpMzFg9D8nxahIYQiLyUnE,852
885
+ tests/models/linkedImpactAssessment/test_landTransformationFromCropland100YearAverageInputsProduction.py,sha256=l15bLWmKG71Pr0WhAQSxRDuqc1SyVl7R4H9iQIZWY_g,890
886
+ tests/models/linkedImpactAssessment/test_landTransformationFromCropland20YearAverageInputsProduction.py,sha256=cfG3sKQQ3B_NODSHHTcA6-vtI4d3lcqm1QYk8CmwukQ,889
887
+ tests/models/linkedImpactAssessment/test_landTransformationFromForest100YearAverageInputsProduction.py,sha256=JWJNssUohSvj9Vrv_hpBHayIBoZ5iLDWPFkabRhzfbI,888
888
+ tests/models/linkedImpactAssessment/test_landTransformationFromForest20YearAverageInputsProduction.py,sha256=SbSkYLqMq5UapyZpFYIjmAIvVFfsh-og8PG2fVYRoZs,887
889
+ tests/models/linkedImpactAssessment/test_landTransformationFromOtherNaturalVegetation100YearAverageInputsProduction.py,sha256=cCNqfR4c8teYaqz3YDWBd8vrqlcJm4eD8p09XUMQsp0,918
890
+ tests/models/linkedImpactAssessment/test_landTransformationFromOtherNaturalVegetation20YearAverageInputsProduction.py,sha256=GYR71LUEHr8EPnXkCothX23viB2df_NbZ5g6fBhl75Q,917
891
+ tests/models/linkedImpactAssessment/test_landTransformationFromPermanentPasture100YearAverageInputsProduction.py,sha256=KB2zZ07QHk9IuPCRGIVdNBcx6CQqBEqdLjUGNZR8hDk,1041
892
+ tests/models/linkedImpactAssessment/test_landTransformationFromPermanentPasture20YearAverageInputsProduction.py,sha256=9nxdXerjwr3hMshI3hyhHrIscPuqzbj54ekpJ9HKlyY,1038
889
893
  tests/models/pooreNemecek2018/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
890
894
  tests/models/pooreNemecek2018/test_aboveGroundCropResidueTotal.py,sha256=m-cpFULarm0Ee4MV-OvhYPRg7W2_mvbrqHkjDZgcQsw,1660
891
895
  tests/models/pooreNemecek2018/test_belowGroundCropResidue.py,sha256=A6EOD2B6frN0UtuUTP3GwZ7bNEtEudQfztHXjdiDwdQ,1655
892
896
  tests/models/pooreNemecek2018/test_ch4ToAirAquacultureSystems.py,sha256=rUxD57yl82Ht8IyhbiQhi0xl8L9iLdnLpbI-T5C0Mck,2722
893
897
  tests/models/pooreNemecek2018/test_excretaKgN.py,sha256=lKM-Q7TjQoxjvjY9tCcmJxoWvHuxglNCVsPXh6JBgCY,4063
894
898
  tests/models/pooreNemecek2018/test_excretaKgVs.py,sha256=LIoLevR0tHrZwazuGprt6SCFtmDrj4NBq1s1SJEhQCA,3252
899
+ tests/models/pooreNemecek2018/test_freshwaterWithdrawalsDuringCycle.py,sha256=5QxDU6VzcwWup3Nuhn32kJoIlAkqcSggGr4CmoRqrFA,1623
895
900
  tests/models/pooreNemecek2018/test_landOccupationDuringCycle.py,sha256=XbsApbRIuzq4GeaN7PrzlMA7grU7y6j_HPesgQIf_Uw,1650
896
901
  tests/models/pooreNemecek2018/test_longFallowPeriod.py,sha256=zAa-zmCbHOjCUsOQdEvZRBw_r8gdmxYZXYurRGVLxfM,923
897
902
  tests/models/pooreNemecek2018/test_n2OToAirAquacultureSystemsDirect.py,sha256=4YAoUhIwfEmRe2B5BvNg247VeB7UXHNeZqr2mRtJA7Y,2207
@@ -977,8 +982,10 @@ tests/models/schmidt2007/test_n2OToAirWasteTreatmentDirect.py,sha256=xgikZTGcDqi
977
982
  tests/models/schmidt2007/test_nh3ToAirWasteTreatment.py,sha256=22x5Hc0keF41LYMKvARrJvmPtOjIKJ6vCrF2d8AOyAc,1454
978
983
  tests/models/schmidt2007/test_utils.py,sha256=rmtOV3xiFynjgx8lQNGsJqquG8HDxz3LDmh1efN8AkI,1278
979
984
  tests/models/site/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
985
+ tests/models/site/test_brackishWater.py,sha256=YGCp4glaWudKklYBSp-50KbfvIRtp3F4Qrj5T81ECTk,986
980
986
  tests/models/site/test_cationExchangeCapacityPerKgSoil.py,sha256=tNMhN998vcjQ15I-5mNnFh2d7mHzEBIBO6o1VSfQNUE,1075
981
987
  tests/models/site/test_flowingWater.py,sha256=t_rxvdlmUVDsFBoDF20_zDM-0iiLKkNCV7knO9l1T7o,1370
988
+ tests/models/site/test_freshWater.py,sha256=GOeAxHhPW_2E1wQdQRX4W-r7mnb_LgmiAVLImitoApw,982
982
989
  tests/models/site/test_management.py,sha256=CO9wghyFmnG5ynU6iuKcJ3LkZCoV9pY35hQedrY6-kk,4470
983
990
  tests/models/site/test_netPrimaryProduction.py,sha256=JCxG0MODbKVvl3hOqmKzh4FjHYn3Xs9KsVod6LvKQII,1108
984
991
  tests/models/site/test_organicCarbonPerHa.py,sha256=6Qtc0Xmveir7MmNF4Ekv5YkV92TNp8GfDnURPVg05-4,3471
@@ -992,6 +999,7 @@ tests/models/site/test_precipitationAnnual.py,sha256=h0tXvykZw4Zaw225RHfvw-3DvAy
992
999
  tests/models/site/test_precipitationMonthly.py,sha256=iccr-_ZrseM_OT3AKZbTNQhRFSIe-R6wXTDS-2wIVew,995
993
1000
  tests/models/site/test_rainfallAnnual.py,sha256=4YYna66qjJptPJ_URvdcQuRC3dri9SB0xmWP8DFwslM,986
994
1001
  tests/models/site/test_rainfallMonthly.py,sha256=A3gIe2Yxt9CLtLcAJNCQ0-8aRB49VdfKBLBy-7eDgJw,985
1002
+ tests/models/site/test_salineWater.py,sha256=by_goKU4q5Dr-ctqosfrjFPZsG9KeG26Y_xMWEHBhpA,985
995
1003
  tests/models/site/test_soilMeasurement.py,sha256=IMSnjbyBYAqWicXGgpdNPpJ_OQw6QEJEmfHJxyF4iec,4887
996
1004
  tests/models/site/test_temperatureAnnual.py,sha256=nOJG9ZJ8NCMM8T47uxxBeloIYLFN6-xtvUBqJsqt8xk,992
997
1005
  tests/models/site/test_temperatureMonthly.py,sha256=C2lv-lpYqH7VUGOlxNLE6d7k_dFS6NYe8BvMlrJorCw,991
@@ -1054,8 +1062,8 @@ tests/models/utils/test_source.py,sha256=mv3vHZV5cjpoLA2I1109-YUkuzAiuhbRSnv_76_
1054
1062
  tests/models/utils/test_term.py,sha256=M5Sa26v2gzQYbZ4H_fo7DspnaCx__-WtL-MULGapCWk,3509
1055
1063
  tests/models/webbEtAl2012AndSintermannEtAl2012/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1056
1064
  tests/models/webbEtAl2012AndSintermannEtAl2012/test_nh3ToAirOrganicFertiliser.py,sha256=qi2FNXS5Af2WDtm7nq_FsprH3BfCF0XxnE0XHmC4aIY,2244
1057
- hestia_earth_models-0.60.1.dist-info/LICENSE,sha256=AC7h7GAgCZGJK_Tzh6LUCrML9gQEfowWwecEw2w54QM,1154
1058
- hestia_earth_models-0.60.1.dist-info/METADATA,sha256=tJULz_gVDoPAkvfkSD8ooAES548NXNxa4hQkQ_sS2WM,3134
1059
- hestia_earth_models-0.60.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
1060
- hestia_earth_models-0.60.1.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1061
- hestia_earth_models-0.60.1.dist-info/RECORD,,
1065
+ hestia_earth_models-0.61.1.dist-info/LICENSE,sha256=AC7h7GAgCZGJK_Tzh6LUCrML9gQEfowWwecEw2w54QM,1154
1066
+ hestia_earth_models-0.61.1.dist-info/METADATA,sha256=Agkt0rgmCQ9lu5aVl2F1Dsg-FBO08o2dGEUyS755zHo,3134
1067
+ hestia_earth_models-0.61.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
1068
+ hestia_earth_models-0.61.1.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1069
+ hestia_earth_models-0.61.1.dist-info/RECORD,,
@@ -1,43 +1,31 @@
1
- from unittest.mock import patch
2
1
  import json
3
2
  from tests.utils import fixtures_path
4
3
 
5
- from hestia_earth.models.cycle.cycleDuration import MODEL, MODEL_KEY, _should_run, run
4
+ from hestia_earth.models.cycle.cycleDuration import MODEL, MODEL_KEY, run
6
5
 
7
6
  class_path = f"hestia_earth.models.{MODEL}.{MODEL_KEY}"
8
7
  fixtures_folder = f"{fixtures_path}/{MODEL}/{MODEL_KEY}"
9
8
 
10
9
 
11
- @patch(f"{class_path}.valid_site_type", return_value=True)
12
- @patch(f"{class_path}.find_term_match", return_value={})
13
- def test_should_run(mock_practice, *args):
14
- # no cycleDuration => no run
15
- cycle = {}
16
- should_run, *args = _should_run(cycle)
17
- assert not should_run
10
+ def test_run_with_dates():
11
+ with open(f"{fixtures_folder}/with-dates/cycle.jsonld", encoding='utf-8') as f:
12
+ data = json.load(f)
13
+
14
+ result = run(data)
15
+ assert result == 335
18
16
 
19
- # with cycleDuration = 100 => no run
20
- cycle['cycleDuration'] = 100
21
- should_run, *args = _should_run(cycle)
22
- assert not should_run
23
17
 
24
- # with practice => no run
25
- mock_practice.return_value = {'value': [100]}
26
- should_run, *args = _should_run(cycle)
27
- assert not should_run
18
+ def test_run_with_permanent_crop():
19
+ with open(f"{fixtures_folder}/permanent-crop/cycle.jsonld", encoding='utf-8') as f:
20
+ data = json.load(f)
28
21
 
29
- # with cycleDuration = 365 => run
30
- cycle['cycleDuration'] = 365
31
- should_run, *args = _should_run(cycle)
32
- assert should_run is True
22
+ result = run(data)
23
+ assert result == 365
33
24
 
34
25
 
35
- def test_run():
36
- with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
26
+ def test_run_with_temporary_crop():
27
+ with open(f"{fixtures_folder}/temporary-crop/cycle.jsonld", encoding='utf-8') as f:
37
28
  data = json.load(f)
38
29
 
39
- with open(f"{fixtures_folder}/result.txt", encoding='utf-8') as f:
40
- expected = f.read().strip()
41
-
42
30
  result = run(data)
43
- assert float(result) == float(expected)
31
+ assert float(result) == 264.7807110234042
@@ -2,21 +2,21 @@ from hestia_earth.models.cycle.startDate import _should_run, run
2
2
 
3
3
 
4
4
  def test_should_run():
5
- # no startDate => no run
6
- cycle = {}
5
+ # no endDate => no run
6
+ cycle = {'cycleDuration': 365}
7
7
  should_run = _should_run(cycle)
8
8
  assert not should_run
9
9
 
10
- # with startDate full date => no run
11
- cycle['startDate'] = '2020-01-01'
10
+ # with startDate missing days => not run
11
+ cycle['endDate'] = '2020-01'
12
12
  should_run = _should_run(cycle)
13
13
  assert not should_run
14
14
 
15
- # with startDate missing days => run
16
- cycle['startDate'] = '2020-01'
15
+ # with endDate full date => run
16
+ cycle['endDate'] = '2020-01-01'
17
17
  should_run = _should_run(cycle)
18
18
  assert should_run is True
19
19
 
20
20
 
21
21
  def test_run():
22
- assert run({'startDate': '2020-01'}) == '2020-01-01'
22
+ assert run({'endDate': '2020-01-01', 'cycleDuration': 365}) == '2019-01-01'
@@ -0,0 +1,31 @@
1
+ import json
2
+ from tests.utils import fixtures_path
3
+
4
+ from hestia_earth.models.cycle.startDateDefinition import MODEL, MODEL_KEY, run
5
+
6
+ class_path = f"hestia_earth.models.{MODEL}.{MODEL_KEY}"
7
+ fixtures_folder = f"{fixtures_path}/{MODEL}/{MODEL_KEY}"
8
+
9
+
10
+ def test_run_with_permanent_crop():
11
+ with open(f"{fixtures_folder}/permanent-crop/cycle.jsonld", encoding='utf-8') as f:
12
+ data = json.load(f)
13
+
14
+ result = run(data)
15
+ assert result == 'one year prior'
16
+
17
+
18
+ def test_run_with_permanent_crop_last_day():
19
+ with open(f"{fixtures_folder}/permanent-crop-last-day/cycle.jsonld", encoding='utf-8') as f:
20
+ data = json.load(f)
21
+
22
+ result = run(data)
23
+ assert result == 'start of year'
24
+
25
+
26
+ def test_run_with_temporary_crop():
27
+ with open(f"{fixtures_folder}/temporary-crop/cycle.jsonld", encoding='utf-8') as f:
28
+ data = json.load(f)
29
+
30
+ result = run(data)
31
+ assert result == 'harvest of previous crop'
File without changes
@@ -0,0 +1,22 @@
1
+ import os
2
+ import json
3
+ from unittest.mock import patch
4
+ from tests.utils import fixtures_path, fake_new_emission, fake_load_impacts
5
+
6
+ from hestia_earth.models.linkedImpactAssessment.emissions import MODEL, run
7
+
8
+ class_path = f"hestia_earth.models.{MODEL}.emissions"
9
+ fixtures_folder = os.path.join(fixtures_path, MODEL, 'emissions')
10
+
11
+
12
+ @patch(F"{class_path}.load_impacts", side_effect=fake_load_impacts)
13
+ @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
14
+ def test_run(*args):
15
+ with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
16
+ cycle = json.load(f)
17
+
18
+ with open(f"{fixtures_folder}/result.jsonld", encoding='utf-8') as f:
19
+ expected = json.load(f)
20
+
21
+ result = run(cycle)
22
+ assert result == expected
@@ -2,14 +2,14 @@ from unittest.mock import patch
2
2
  import json
3
3
  from tests.utils import fixtures_path, fake_new_indicator, fake_load_impacts
4
4
 
5
- from hestia_earth.models.impact_assessment.freshwaterWithdrawalsInputsProduction import TERM_ID, run
5
+ from hestia_earth.models.linkedImpactAssessment.freshwaterWithdrawalsInputsProduction import TERM_ID, run
6
6
 
7
- class_path = f"hestia_earth.models.impact_assessment.{TERM_ID}"
8
- fixtures_folder = f"{fixtures_path}/impact_assessment/{TERM_ID}"
7
+ class_path = f"hestia_earth.models.linkedImpactAssessment.{TERM_ID}"
8
+ fixtures_folder = f"{fixtures_path}/linkedImpactAssessment/{TERM_ID}"
9
9
 
10
10
 
11
11
  @patch('hestia_earth.models.utils.input.load_impacts', side_effect=fake_load_impacts)
12
- @patch('hestia_earth.models.impact_assessment.utils._new_indicator', side_effect=fake_new_indicator)
12
+ @patch('hestia_earth.models.linkedImpactAssessment.utils._new_indicator', side_effect=fake_new_indicator)
13
13
  def test_run(*args):
14
14
  with open(f"{fixtures_folder}/impact-assessment.jsonld", encoding='utf-8') as f:
15
15
  impact = json.load(f)
@@ -2,14 +2,14 @@ from unittest.mock import patch
2
2
  import json
3
3
  from tests.utils import fixtures_path, fake_new_indicator, fake_load_impacts
4
4
 
5
- from hestia_earth.models.impact_assessment.landOccupationInputsProduction import TERM_ID, run
5
+ from hestia_earth.models.linkedImpactAssessment.landOccupationInputsProduction import TERM_ID, run
6
6
 
7
- class_path = f"hestia_earth.models.impact_assessment.{TERM_ID}"
8
- fixtures_folder = f"{fixtures_path}/impact_assessment/{TERM_ID}"
7
+ class_path = f"hestia_earth.models.linkedImpactAssessment.{TERM_ID}"
8
+ fixtures_folder = f"{fixtures_path}/linkedImpactAssessment/{TERM_ID}"
9
9
 
10
10
 
11
11
  @patch('hestia_earth.models.utils.input.load_impacts', side_effect=fake_load_impacts)
12
- @patch('hestia_earth.models.impact_assessment.utils._new_indicator', side_effect=fake_new_indicator)
12
+ @patch('hestia_earth.models.linkedImpactAssessment.utils._new_indicator', side_effect=fake_new_indicator)
13
13
  def test_run(*args):
14
14
  with open(f"{fixtures_folder}/impact-assessment.jsonld", encoding='utf-8') as f:
15
15
  impact = json.load(f)
@@ -2,16 +2,16 @@ from unittest.mock import patch
2
2
  import json
3
3
  from tests.utils import fixtures_path, fake_new_indicator, fake_load_impacts
4
4
 
5
- from hestia_earth.models.impact_assessment.landTransformationFromCropland100YearAverageInputsProduction import (
5
+ from hestia_earth.models.linkedImpactAssessment.landTransformationFromCropland100YearAverageInputsProduction import (
6
6
  TERM_ID, run
7
7
  )
8
8
 
9
- class_path = f"hestia_earth.models.impact_assessment.{TERM_ID}"
10
- fixtures_folder = f"{fixtures_path}/impact_assessment/{TERM_ID}"
9
+ class_path = f"hestia_earth.models.linkedImpactAssessment.{TERM_ID}"
10
+ fixtures_folder = f"{fixtures_path}/linkedImpactAssessment/{TERM_ID}"
11
11
 
12
12
 
13
13
  @patch('hestia_earth.models.utils.input.load_impacts', side_effect=fake_load_impacts)
14
- @patch('hestia_earth.models.impact_assessment.utils._new_indicator', side_effect=fake_new_indicator)
14
+ @patch('hestia_earth.models.linkedImpactAssessment.utils._new_indicator', side_effect=fake_new_indicator)
15
15
  def test_run(*args):
16
16
  with open(f"{fixtures_folder}/impact-assessment.jsonld", encoding='utf-8') as f:
17
17
  impact = json.load(f)