hestia-earth-models 0.62.4__py3-none-any.whl → 0.62.6__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 (55) hide show
  1. hestia_earth/models/cycle/croppingIntensity.py +57 -0
  2. hestia_earth/models/cycle/longFallowRatio.py +52 -0
  3. hestia_earth/models/cycle/siteDuration.py +23 -3
  4. hestia_earth/models/cycle/siteUnusedDuration.py +64 -0
  5. hestia_earth/models/emepEea2019/co2ToAirFuelCombustion.py +2 -10
  6. hestia_earth/models/emepEea2019/n2OToAirFuelCombustionDirect.py +2 -10
  7. hestia_earth/models/emepEea2019/nh3ToAirExcreta.py +2 -9
  8. hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py +2 -9
  9. hestia_earth/models/emepEea2019/noxToAirFuelCombustion.py +2 -10
  10. hestia_earth/models/emepEea2019/pm10ToAirAnimalHousing.py +57 -0
  11. hestia_earth/models/emepEea2019/pm25ToAirAnimalHousing.py +57 -0
  12. hestia_earth/models/emepEea2019/so2ToAirFuelCombustion.py +2 -10
  13. hestia_earth/models/emepEea2019/tspToAirAnimalHousing.py +57 -0
  14. hestia_earth/models/emepEea2019/utils.py +60 -1
  15. hestia_earth/models/geospatialDatabase/croppingIntensity.py +32 -22
  16. hestia_earth/models/geospatialDatabase/longFallowRatio.py +34 -23
  17. hestia_earth/models/ipcc2019/animal/pastureGrass.py +2 -2
  18. hestia_earth/models/ipcc2019/pastureGrass.py +2 -2
  19. hestia_earth/models/ipcc2019/pastureGrass_utils.py +1 -10
  20. hestia_earth/models/mocking/mock_search.py +14 -8
  21. hestia_earth/models/mocking/search-results.json +27 -27
  22. hestia_earth/models/pooreNemecek2018/longFallowPeriod.py +1 -2
  23. hestia_earth/models/pooreNemecek2018/nurseryDensity.py +1 -2
  24. hestia_earth/models/pooreNemecek2018/nurseryDuration.py +1 -2
  25. hestia_earth/models/pooreNemecek2018/plantationDensity.py +1 -2
  26. hestia_earth/models/pooreNemecek2018/plantationLifespan.py +1 -2
  27. hestia_earth/models/pooreNemecek2018/plantationProductiveLifespan.py +1 -2
  28. hestia_earth/models/preload_requests.py +14 -7
  29. hestia_earth/models/site/management.py +7 -5
  30. hestia_earth/models/utils/__init__.py +0 -9
  31. hestia_earth/models/utils/cycle.py +20 -3
  32. hestia_earth/models/utils/product.py +2 -2
  33. hestia_earth/models/version.py +1 -1
  34. {hestia_earth_models-0.62.4.dist-info → hestia_earth_models-0.62.6.dist-info}/METADATA +2 -2
  35. {hestia_earth_models-0.62.4.dist-info → hestia_earth_models-0.62.6.dist-info}/RECORD +55 -43
  36. tests/models/cycle/test_croppingIntensity.py +53 -0
  37. tests/models/cycle/test_longFallowRatio.py +49 -0
  38. tests/models/cycle/test_siteDuration.py +41 -14
  39. tests/models/cycle/test_siteUnusedDuration.py +55 -0
  40. tests/models/emepEea2019/test_co2ToAirFuelCombustion.py +3 -2
  41. tests/models/emepEea2019/test_n2OToAirFuelCombustionDirect.py +3 -2
  42. tests/models/emepEea2019/test_nh3ToAirExcreta.py +2 -1
  43. tests/models/emepEea2019/test_nh3ToAirInorganicFertiliser.py +4 -3
  44. tests/models/emepEea2019/test_noxToAirFuelCombustion.py +3 -2
  45. tests/models/emepEea2019/test_pm10ToAirAnimalHousing.py +21 -0
  46. tests/models/emepEea2019/test_pm25ToAirAnimalHousing.py +21 -0
  47. tests/models/emepEea2019/test_so2ToAirFuelCombustion.py +3 -2
  48. tests/models/emepEea2019/test_tspToAirAnimalHousing.py +21 -0
  49. tests/models/emepEea2019/test_utils.py +198 -1
  50. tests/models/geospatialDatabase/test_croppingIntensity.py +5 -3
  51. tests/models/geospatialDatabase/test_longFallowRatio.py +5 -3
  52. tests/models/site/test_management.py +1 -0
  53. {hestia_earth_models-0.62.4.dist-info → hestia_earth_models-0.62.6.dist-info}/LICENSE +0 -0
  54. {hestia_earth_models-0.62.4.dist-info → hestia_earth_models-0.62.6.dist-info}/WHEEL +0 -0
  55. {hestia_earth_models-0.62.4.dist-info → hestia_earth_models-0.62.6.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,9 @@
1
- from hestia_earth.schema import CycleFunctionalUnit, SiteSiteType, TermTermType
1
+ from hestia_earth.schema import CycleFunctionalUnit, SiteSiteType, TermTermType, AnimalReferencePeriod
2
2
  from hestia_earth.utils.model import filter_list_term_type, find_term_match, find_primary_product
3
- from hestia_earth.utils.tools import list_sum, safe_parse_float, safe_parse_date
3
+ from hestia_earth.utils.tools import list_sum, safe_parse_float, safe_parse_date, non_empty_list
4
4
 
5
5
  from ..log import logRequirements, debugValues
6
- from .lookup import factor_value
6
+ from .lookup import factor_value, is_siteType_allowed
7
7
  from .term import get_lookup_value
8
8
  from .property import get_node_property
9
9
  from .completeness import _is_term_type_complete
@@ -455,3 +455,20 @@ def check_cycle_site_ids_identical(cycles: list[dict]) -> bool:
455
455
  Whether or not all of the cycles associated site ids are identical.
456
456
  """
457
457
  return len(set(cycle.get('site', {}).get('@id', None) for cycle in cycles)) <= 1
458
+
459
+
460
+ def get_animals_by_period(cycle: dict, period: AnimalReferencePeriod = AnimalReferencePeriod.AVERAGE):
461
+ return [
462
+ a for a in cycle.get('animals', []) if all([
463
+ a.get('value'),
464
+ a.get('referencePeriod') == period.value
465
+ ])
466
+ ]
467
+
468
+
469
+ def get_allowed_sites(model: str, term_id: str, termType: TermTermType, cycle: dict):
470
+ sites = non_empty_list([cycle.get('site', None)]) + cycle.get('otherSites', [])
471
+ allowed_sites = [s for s in sites if is_siteType_allowed(s, {'@id': term_id, 'termType': termType.value})]
472
+ debugValues(cycle, model=model, term=term_id,
473
+ allowed_sites=';'.join([s.get('@id', s.get('id')) for s in allowed_sites]))
474
+ return allowed_sites
@@ -1,9 +1,9 @@
1
1
  from hestia_earth.schema import SchemaType, TermTermType, UNIQUENESS_FIELDS
2
2
  from hestia_earth.utils.api import download_hestia
3
3
  from hestia_earth.utils.model import filter_list_term_type, find_term_match, linked_node
4
- from hestia_earth.utils.tools import flatten, list_sum, non_empty_list
4
+ from hestia_earth.utils.tools import flatten, list_sum, non_empty_list, get_dict_key
5
5
 
6
- from . import _term_id, _include_model, get_dict_key
6
+ from . import _term_id, _include_model
7
7
  from .blank_node import get_total_value, get_total_value_converted
8
8
  from .constant import Units
9
9
  from .currency import DEFAULT_CURRENCY
@@ -1 +1 @@
1
- VERSION = '0.62.4'
1
+ VERSION = '0.62.6'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hestia-earth-models
3
- Version: 0.62.4
3
+ Version: 0.62.6
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
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3.6
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
14
  Requires-Dist: hestia-earth.schema==29.*
15
- Requires-Dist: hestia-earth.utils>=0.13.2
15
+ Requires-Dist: hestia-earth.utils>=0.13.3
16
16
  Requires-Dist: python-dateutil>=2.8.1
17
17
  Requires-Dist: CurrencyConverter==0.16.8
18
18
  Requires-Dist: haversine>=2.7.0
@@ -2,9 +2,9 @@ hestia_earth/__init__.py,sha256=G-d438vPx7m_ks5e9XTtM3u7LDRO5dSSukibukWmyPM,56
2
2
  hestia_earth/models/__init__.py,sha256=qEFeq3yuf3lQKVseALmL8aPM8fpCS54B_5pry00M3hk,76
3
3
  hestia_earth/models/cache_sites.py,sha256=KQp9cUKE-aIcYJoMWEtKFYS8gBFfsx5LKQhqoWpUSoM,6065
4
4
  hestia_earth/models/log.py,sha256=DbfNcGzaC5hzkuMDxQqW6XYoNBI4Uxw4SIoOYoZA6og,3474
5
- hestia_earth/models/preload_requests.py,sha256=y_okcYzSbqODvmzkw-wOK2cOZEzkJq3pmRfxRsPsUw0,1012
5
+ hestia_earth/models/preload_requests.py,sha256=Ibx-YOhR_1yuyFBxsLUbvJHVK7PLyMLoPu5l9jDN_Qk,1342
6
6
  hestia_earth/models/requirements.py,sha256=eU4yT443fx7BnaokhrLB_PCizJI7Y6m4auyo8vQauNg,17363
7
- hestia_earth/models/version.py,sha256=VvAcSTPsHvm2Agla-EjyZ04Gq8k08dRvMyQy3jw2KbM,19
7
+ hestia_earth/models/version.py,sha256=bq12SSfdPusguwOVPL82zbxOkhoEi6X6goWBn-b5HwE,19
8
8
  hestia_earth/models/agribalyse2016/__init__.py,sha256=WvK0qCQbnYtg9oZxrACd1wGormZyXibPtpCnIQeDqbw,415
9
9
  hestia_earth/models/agribalyse2016/fuelElectricity.py,sha256=tnGxBmJdPfPFfehLUQcefEqy1lHvzsSpx_s7O8nf3Zs,4412
10
10
  hestia_earth/models/agribalyse2016/machineryInfrastructureDepreciatedAmountPerCycle.py,sha256=_Rbngu0DzHKa62JwBl58ZC_ui1zLF2que_nB7ukhOQc,3392
@@ -39,6 +39,7 @@ hestia_earth/models/cycle/coldCarcassWeightPerHead.py,sha256=fQ7huuxyS5PQkRmR_tR
39
39
  hestia_earth/models/cycle/coldDressedCarcassWeightPerHead.py,sha256=k0xg5SIfJGwEKteFr2Fh-lh8yDC_sqQw_lBnnfwl9zU,3069
40
40
  hestia_earth/models/cycle/concentrateFeed.py,sha256=wiq9KLRuipHz_2_CVfXDuUek0JN1ZPSyKSimtJntG9E,5636
41
41
  hestia_earth/models/cycle/cropResidueManagement.py,sha256=QTRCCFu9VvD_a3_8aAj216vsuhAJEhlAwTJH7ifMkDo,2237
42
+ hestia_earth/models/cycle/croppingIntensity.py,sha256=44CgDqXg9CBRfTPYTyOleQT-M4_tsQgPba-0vjjk_C4,1770
42
43
  hestia_earth/models/cycle/cycleDuration.py,sha256=SuTFqCP3Zr3nOV9HuvvvIVcaHtOlTAdSaaswvRLSEwc,3242
43
44
  hestia_earth/models/cycle/energyContentLowerHeatingValue.py,sha256=AyVKCQbb3Pto3Ca__F0KJ_wlwTxbPd7mUyehZW7AJPM,2212
44
45
  hestia_earth/models/cycle/excretaKgMass.py,sha256=iA8Kfl3WvyxbQpx1QOGPQZ9O_Pc5rj7xhucYx3rB8Co,3949
@@ -47,6 +48,7 @@ hestia_earth/models/cycle/excretaKgVs.py,sha256=ed-DcQoQXZgWF8UZDs2N-G6EBIOPmpXu
47
48
  hestia_earth/models/cycle/inorganicFertiliser.py,sha256=Yt5NcP9FQEzWwlritrPGbhh2W9wR378OM3lDPBzDiL4,6967
48
49
  hestia_earth/models/cycle/irrigatedTypeUnspecified.py,sha256=KlIa5eDvT47Twz6Q1kpw0rMlRjCK25CExaW58DEvc9w,2125
49
50
  hestia_earth/models/cycle/liveAnimal.py,sha256=LWAMnNKRoLDdChrGApVIN-Ns7em0Lspz5UtLbf7PPLY,3988
51
+ hestia_earth/models/cycle/longFallowRatio.py,sha256=RmUAUrTmSi8YG3A43R60N_7iy66vN_aY3d4uSJoJcDc,1661
50
52
  hestia_earth/models/cycle/milkYield.py,sha256=RhzePjkvEAGicTzRA4eatc0K_4NSGHhyEhYF0EbbGXw,5820
51
53
  hestia_earth/models/cycle/pastureGrass.py,sha256=7PrmDMJPtsbKGa8WIOh_4NXNtbH3Pxb23pmjawQuY9o,1226
52
54
  hestia_earth/models/cycle/pastureSystem.py,sha256=uksVgl_3bp_t2niwZ5BvS3VT-Kndx26Se6GpzqG0bX8,2709
@@ -55,7 +57,8 @@ hestia_earth/models/cycle/residueBurnt.py,sha256=HwU1D9ibiIul-FlXDUcEMDEc_KxpB8u
55
57
  hestia_earth/models/cycle/residueIncorporated.py,sha256=9_s2RMOy5D20eq9ziDBEA_Y7RiFFMeK0bDJ65CW4qlE,2763
56
58
  hestia_earth/models/cycle/residueLeftOnField.py,sha256=qYxKGAdUORN7Vjqj7AZC2VGV_rM3MN0-padDGhgjiNU,2175
57
59
  hestia_earth/models/cycle/residueRemoved.py,sha256=jxDu_Jfcyd-rm-qo8ZuRIf-GGxtFBMpmGy1zHOavwy0,2135
58
- hestia_earth/models/cycle/siteDuration.py,sha256=XAxCA_51kQaWh4_0L_Y08cGn-qsMRUcyaPrn84rfafI,1058
60
+ hestia_earth/models/cycle/siteDuration.py,sha256=793ez4IDOHxsbDIREZQ5rUgS6FQare2jL6SZ8qemxKs,2014
61
+ hestia_earth/models/cycle/siteUnusedDuration.py,sha256=HvVyok1HPt0_WsTPZq2PklsFT9WKPF9frncS07nqzGA,2105
59
62
  hestia_earth/models/cycle/startDate.py,sha256=OnuMf4TkDb0WwCntjXNy3ipLS-b4drMWSkXWeXU142Q,1507
60
63
  hestia_earth/models/cycle/startDateDefinition.py,sha256=nCFeKjZjC3MoYNFH0N66WNW4HJUzKD_UkznvTMl_KfM,2244
61
64
  hestia_earth/models/cycle/transformation.py,sha256=06KTfVubh2I47dfnG9Iv6AbuUBbURM8BAVOkRu7XmHw,1255
@@ -114,13 +117,16 @@ hestia_earth/models/ecoinventV3/utils.py,sha256=HqtD8MzK9C_RCJ-ME-5G4J1KoCn5FqmA
114
117
  hestia_earth/models/ecoinventV3AndEmberClimate/__init__.py,sha256=XYFDUNpQpzbjPgLus0YlM3UdiXX7LLwn-XJqjrH9ywM,5801
115
118
  hestia_earth/models/ecoinventV3AndEmberClimate/utils.py,sha256=INWB7gyhzk49GQ0KAcBS-Kzwdoyd5MQJcsCtuT6XxZA,1352
116
119
  hestia_earth/models/emepEea2019/__init__.py,sha256=l90-pWrqIzt1ap1WNk0gF4iZeF5_TSG62hE83bIi4rQ,412
117
- hestia_earth/models/emepEea2019/co2ToAirFuelCombustion.py,sha256=DfoGlB5HjA1gafO0OutJjfsA6yPP_PsAd-p16evwCiQ,1609
118
- hestia_earth/models/emepEea2019/n2OToAirFuelCombustionDirect.py,sha256=R3lRF5-Md4Jd7irvTe8WJZJPc9-wa1pD6UWVk7lnGtQ,1616
119
- hestia_earth/models/emepEea2019/nh3ToAirExcreta.py,sha256=lWo1AaorIk4HtTCQAND3RFbCHO-em1DbA5ZOxv0Ldn8,3750
120
- hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py,sha256=AMZlOpeajrhbjGWIq_mLJJHfOF9RH9GswkbvVyrqop0,6201
121
- hestia_earth/models/emepEea2019/noxToAirFuelCombustion.py,sha256=y49RvO5OkrZ4iK7o2Kmx5xW52y8SS9xEKAmlXlTQtWc,1609
122
- hestia_earth/models/emepEea2019/so2ToAirFuelCombustion.py,sha256=bo_0mFcwicpOkPsvZRAnL2tDBDRBAQqsPD_Wc5e20K4,1609
123
- hestia_earth/models/emepEea2019/utils.py,sha256=JcynSOdMU_jGuTptO0LLoK_JLkYtvn2gLPtYQBnM9Yo,1486
120
+ hestia_earth/models/emepEea2019/co2ToAirFuelCombustion.py,sha256=ib_xzEbIg-iQwvW2L4BosD9lV6EYOXAiIs8gYhSD9GE,1431
121
+ hestia_earth/models/emepEea2019/n2OToAirFuelCombustionDirect.py,sha256=H4dgGqDuvYN4S7TRxYsX3hms1xMWr8clR2gkyyO8T18,1438
122
+ hestia_earth/models/emepEea2019/nh3ToAirExcreta.py,sha256=HNz3w35V0X1Av7if4ZPlDxozrSMurjiy7Hl4iAVEoNg,3590
123
+ hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py,sha256=n_lpGX6pnJdOy1GJoVSLgA9LnnnWOb_ZHBueZAEDCbk,6041
124
+ hestia_earth/models/emepEea2019/noxToAirFuelCombustion.py,sha256=2--8lI6C6WaYtd9LQe-WZnhvW1eUsjBVAgzT8jclcsc,1431
125
+ hestia_earth/models/emepEea2019/pm10ToAirAnimalHousing.py,sha256=ZxiyoKpT0JbwgEnK9HlselO5-nIq_CTpcGK5a8X5UkM,1527
126
+ hestia_earth/models/emepEea2019/pm25ToAirAnimalHousing.py,sha256=MYMRoFrmu3lhqS9aYE-GCWHfE-NFIgk9Q3Uj1osTlKA,1527
127
+ hestia_earth/models/emepEea2019/so2ToAirFuelCombustion.py,sha256=8B1GVsn5gEXVW3iZYBct-s_OTRaH-asXo6JvGW_jls0,1431
128
+ hestia_earth/models/emepEea2019/tspToAirAnimalHousing.py,sha256=hHHhu_EZWhxAKhGJgrHY3vNI7Kuy6h8-JyOuas7KRXk,1524
129
+ hestia_earth/models/emepEea2019/utils.py,sha256=oTHjbRRwJZv_tpO9MOlfpyQRmN0a1kvEZsVHUPliZpQ,4014
124
130
  hestia_earth/models/emissionNotRelevant/__init__.py,sha256=nIuPIkQR1ghv_T_Ab4Ckq5wmGdWVmgbaOjhtKfIJ-WE,2183
125
131
  hestia_earth/models/environmentalFootprintV3/__init__.py,sha256=lzg9qccwd9tbspw0lQ58YPprnvvSLTn3QV5T2-tPcC4,425
126
132
  hestia_earth/models/environmentalFootprintV3/freshwaterEcotoxicityPotentialCtue.py,sha256=X62-4v0NJdM_Z5kLK3NuU4GNEeSrXlKlMZQB_o4JZ6c,1018
@@ -140,14 +146,14 @@ hestia_earth/models/faostat2018/product/price.py,sha256=X7Zxa-rXthzYdgw2lzybbHc-
140
146
  hestia_earth/models/geospatialDatabase/__init__.py,sha256=TH-FW3aoL7r1GquRChr7rde7uQonKQRDR00udG8tDrQ,957
141
147
  hestia_earth/models/geospatialDatabase/aware.py,sha256=cbxFnShXW8QUCIjU4uuO1DdK9KhYiLf41ZVjS9hSppI,1358
142
148
  hestia_earth/models/geospatialDatabase/clayContent.py,sha256=HWaswqkf1FZXcRHw8DrMvvpH2Uo3nbjX4C0D1tqyTBw,2710
143
- hestia_earth/models/geospatialDatabase/croppingIntensity.py,sha256=V6ra1BvyXWXfHZHdJNfgbQU8D6piI0-rG6GxKHcy1pU,1975
149
+ hestia_earth/models/geospatialDatabase/croppingIntensity.py,sha256=4HVrl7Hayg6IpdCrz19Xq_clKdcS_0Sw9uiA4kjKJ40,2509
144
150
  hestia_earth/models/geospatialDatabase/drainageClass.py,sha256=CVagB2wxLnHgQQauDyYCJCfJw21OPB7Ry8BVyt2uPak,1883
145
151
  hestia_earth/models/geospatialDatabase/ecoClimateZone.py,sha256=hzK9Je_4NvbLtgAM48G7yf-6jrcMpsDzqSlLkVP3oYg,3625
146
152
  hestia_earth/models/geospatialDatabase/ecoregion.py,sha256=awvHn0YEVu-YaW0ZDgBo_zbjSJU2EvydM_qAT_CL78A,1462
147
153
  hestia_earth/models/geospatialDatabase/erodibility.py,sha256=M62CetEcHuExeXl7P7DVKZWWbk9tenjaDFvjMsWbga4,1843
148
154
  hestia_earth/models/geospatialDatabase/heavyWinterPrecipitation.py,sha256=54pvHOfcfEUNNhTIWIPGRzqO_t59ACh-zhnLidO2xro,1956
149
155
  hestia_earth/models/geospatialDatabase/histosol.py,sha256=5zwKdF1t9aOjTzBoear62T0Kzpjco-IJXu4oRYrUFQ8,2387
150
- hestia_earth/models/geospatialDatabase/longFallowRatio.py,sha256=VnTW2Y7qpoxlEarOM85SzxhFb1kayNJAiecRXatrEpw,1872
156
+ hestia_earth/models/geospatialDatabase/longFallowRatio.py,sha256=OXInoU4uYlgLwpAF3PetIDQ2ck4rOdf9_EyjXEtzD4Q,2505
151
157
  hestia_earth/models/geospatialDatabase/nutrientLossToAquaticEnvironment.py,sha256=uEsoYJ1mzgUo6fQhUrcJ-ATcFw1j9oEgqMXKbQuFRxQ,1973
152
158
  hestia_earth/models/geospatialDatabase/organicCarbonPerKgSoil.py,sha256=gt3-crrUN0HPtIKY7Hf9dUteCXkegSICVjO-jufDqas,2196
153
159
  hestia_earth/models/geospatialDatabase/potentialEvapotranspirationAnnual.py,sha256=UlCBvAD-6H-4sdryfPuX1YDlOsGPOI8T9y0q4O0Tau8,2544
@@ -249,11 +255,11 @@ hestia_earth/models/ipcc2019/organicCarbonPerHa.py,sha256=iRUSVxMpBGgsVDkuBABPKI
249
255
  hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1_utils.py,sha256=JxVJ9mRml63VhwNSNq7H3O7YQJoXLgP4j9fIRs3ms5o,82431
250
256
  hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_2_utils.py,sha256=A84r6u45HFk5jEb2nTWGTFTwX1qjq8F6qwkNUuiyH48,63542
251
257
  hestia_earth/models/ipcc2019/organicCarbonPerHa_utils.py,sha256=jIhRks8ewCtQNIIN89N_4A4Tp529YMQnk4YmZV6FOCY,10668
252
- hestia_earth/models/ipcc2019/pastureGrass.py,sha256=Dg94o-tMVR-SWW6dIK5kwbV4pcMBHEWtcSS2JhAtpXY,9491
253
- hestia_earth/models/ipcc2019/pastureGrass_utils.py,sha256=TqGHj4yZmEO6cVV3VeqSTl11TGRpipnliMMUIOqTy1k,13744
258
+ hestia_earth/models/ipcc2019/pastureGrass.py,sha256=4ZPbLlaIVf4-_ItoLU8fFhRhkWIUFIOcX2isSUOtLco,9550
259
+ hestia_earth/models/ipcc2019/pastureGrass_utils.py,sha256=KA5MAnaPXBgrNncBhcQtOF-cdLwEKI6O2F_DPEz5oTM,13502
254
260
  hestia_earth/models/ipcc2019/utils.py,sha256=MSDMu15D9DnilFUgi4_6jYXC0FaKso3OODauGTMB6hs,6229
255
261
  hestia_earth/models/ipcc2019/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
256
- hestia_earth/models/ipcc2019/animal/pastureGrass.py,sha256=QyT0qRO0lAJJU0Tp3PlDtXzbs7J6BXSX9kWo57T9GMw,11417
262
+ hestia_earth/models/ipcc2019/animal/pastureGrass.py,sha256=fSsWwf6lBlro4DIwbcAHSv0L-UMFe-liljfNr-kXWYw,11476
257
263
  hestia_earth/models/ipcc2019/animal/weightAtMaturity.py,sha256=5smSAmKVCIlELCD6S_3I16YuSWNFhcClGDOdvrIuYsE,3657
258
264
  hestia_earth/models/ipcc2021/__init__.py,sha256=VTgGFKhwMmk_nuI1RRq0in27fHYVPBonlXlPK00K8no,409
259
265
  hestia_earth/models/ipcc2021/gwp100.py,sha256=v-DYU-11XnWI1Ns1GEiKrJqL3JafxvhTsLmuBuFcxJU,1021
@@ -366,8 +372,8 @@ hestia_earth/models/linkedImpactAssessment/landTransformationFromPermanentPastur
366
372
  hestia_earth/models/linkedImpactAssessment/landTransformationFromPermanentPasture20YearAverageInputsProduction.py,sha256=pdluhfRQuJK0EHq-L0s0TOf37tvOQYB-M-wZiuSbarw,1050
367
373
  hestia_earth/models/linkedImpactAssessment/utils.py,sha256=dGwGc2d-8_WQElTpfyPmz5vQtL-LHQRmiZnCTuPXMDs,1876
368
374
  hestia_earth/models/mocking/__init__.py,sha256=n3Fkkrvh8zHNWiJZmnfQ7WZ91JRzAO9P6pSG1JpwtXo,687
369
- hestia_earth/models/mocking/mock_search.py,sha256=dBCDRfbZmbMLKP21u_VYkxyimomqs-zztjX-_ZNKuuM,2036
370
- hestia_earth/models/mocking/search-results.json,sha256=_2VGybtuYwXO05Oj4wCr0t8HbJ7a0KZqDJnmqoITAVM,46411
375
+ hestia_earth/models/mocking/mock_search.py,sha256=qgABw-sZK37XtsALKt8AHF2VJPUrZSnHv5Qj1Dn93oA,2405
376
+ hestia_earth/models/mocking/search-results.json,sha256=Ej8oiIFaddQ5-eOjMO_X7TxO7yVdsd0IASgWWRPfvWg,46413
371
377
  hestia_earth/models/pooreNemecek2018/__init__.py,sha256=nPboL7ULJzL5nJD5q7q9VOZt_fxbKVm8fmn1Az5YkVY,417
372
378
  hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py,sha256=Qt-mel4dkhK6N5uUOutNOinCTFjbjtGzITaaI0LvYc4,2396
373
379
  hestia_earth/models/pooreNemecek2018/belowGroundCropResidue.py,sha256=JT0RybbvWVlo01FO8K0Yj41HrEaJT3Kj1xfayr2X-xw,2315
@@ -376,7 +382,7 @@ hestia_earth/models/pooreNemecek2018/excretaKgN.py,sha256=kLWtv49c1sD3YrporqRcmw
376
382
  hestia_earth/models/pooreNemecek2018/excretaKgVs.py,sha256=nlnZSDx-bIvtukL79Syhon0cSQ8o4OC1YKtAG6haGhI,8500
377
383
  hestia_earth/models/pooreNemecek2018/freshwaterWithdrawalsDuringCycle.py,sha256=HB_9q5eE6al2Te3v29hC5wqxsYe4P46ZAPwdWNzx3v0,3939
378
384
  hestia_earth/models/pooreNemecek2018/landOccupationDuringCycle.py,sha256=jE110XgPMgfnBMUXyKIL5SL9yZWYhdGr5NrfHcqn2h0,2785
379
- hestia_earth/models/pooreNemecek2018/longFallowPeriod.py,sha256=yttZiWc1Tr3Tqe2C3-rWYoEyogIUDraoVWnDxwH3vYs,1566
385
+ hestia_earth/models/pooreNemecek2018/longFallowPeriod.py,sha256=jXm6SeoA0kW0rpcWLcGEDxWwiLsIJRllM4md6jSAqgc,1507
380
386
  hestia_earth/models/pooreNemecek2018/n2OToAirAquacultureSystemsDirect.py,sha256=HJ7IstImGyasIKosK2lQZ-v6Lqt3_aEfZhoiC4CY0rM,2586
381
387
  hestia_earth/models/pooreNemecek2018/n2ToAirAquacultureSystems.py,sha256=SoZlogDd7_4kq5S9gc8KmVeIXacWWhaUkWlKTuho_OA,2431
382
388
  hestia_earth/models/pooreNemecek2018/nh3ToAirAquacultureSystems.py,sha256=4TDILoagYMVBSBbVXEecIOv-pzQ-W2Hg6rpL58t1-J4,4001
@@ -386,11 +392,11 @@ hestia_earth/models/pooreNemecek2018/no3ToGroundwaterInorganicFertiliser.py,sha2
386
392
  hestia_earth/models/pooreNemecek2018/no3ToGroundwaterOrganicFertiliser.py,sha256=ussLIjMsJT0_GmikEBpGqHzDZ5KqJYH8T-B2qN4LRzE,2298
387
393
  hestia_earth/models/pooreNemecek2018/no3ToGroundwaterSoilFlux.py,sha256=G0D_YBCP29Yl_hmQ7jpZP6i0I708PiiaaVRoNrI01MI,6058
388
394
  hestia_earth/models/pooreNemecek2018/noxToAirAquacultureSystems.py,sha256=NfuCdx-rt5mhUxGSsJSudSMp9YkiHRMAiWVyR6m8faM,2733
389
- hestia_earth/models/pooreNemecek2018/nurseryDensity.py,sha256=oVoMNWF64ps2SkazFhbdq4CPGqYiHYu0Tum75ACRICU,1010
390
- hestia_earth/models/pooreNemecek2018/nurseryDuration.py,sha256=QDKvYgx8JrleL1cjtsaYpguBxiu9Dlg0SVSo4b21VXs,1012
391
- hestia_earth/models/pooreNemecek2018/plantationDensity.py,sha256=p0Lu2lzDDmPRq4MPPGKO_gPP_2lTfC9E1pxPJwKW8Tg,1016
392
- hestia_earth/models/pooreNemecek2018/plantationLifespan.py,sha256=n1GhSkQ7qcQ6GE_KcMk7Iowi9H29SgS2-1Y5oRDv32w,1018
393
- hestia_earth/models/pooreNemecek2018/plantationProductiveLifespan.py,sha256=daDf6lxJdx6SWcK2mjCq65tePVQ7_6I4rllrAePmQuo,1799
395
+ hestia_earth/models/pooreNemecek2018/nurseryDensity.py,sha256=ZY4w4q6uvKls-Tj4hz770MRIwJeHxA4DZ10JUJYeBss,951
396
+ hestia_earth/models/pooreNemecek2018/nurseryDuration.py,sha256=_k8OCZxCiT5hrWGLx4HF0CHi21eYtbkFMxMNYKctzCc,953
397
+ hestia_earth/models/pooreNemecek2018/plantationDensity.py,sha256=-y-zXHFPet0LdIgSG-o2hV_sdIOLeuWoRikW2DPi3kk,957
398
+ hestia_earth/models/pooreNemecek2018/plantationLifespan.py,sha256=FudC-csC1IkiFOJ_uD0s6_rwsgqVrUN6Ej7A03JXDsM,959
399
+ hestia_earth/models/pooreNemecek2018/plantationProductiveLifespan.py,sha256=Q54woX67eUab0qEEAuW2naFGhnVPJHrMas3bG92KNeg,1740
394
400
  hestia_earth/models/pooreNemecek2018/rotationDuration.py,sha256=F3zDjhEzxZJ_1y_9LG3_DRkyNuaGiJX5i4XqiXOoP_0,1509
395
401
  hestia_earth/models/pooreNemecek2018/saplings.py,sha256=LS0zepV51-LlVmPBAjj5nlfgaJFnQF6wo40sgoFCr3Y,2258
396
402
  hestia_earth/models/pooreNemecek2018/utils.py,sha256=to2vtONKCbuG1gVSDvsUcG7EnlahELfG_57gzIAHlv0,1710
@@ -466,7 +472,7 @@ hestia_earth/models/site/brackishWater.py,sha256=vLEhIZv5PUKwzwvIuYrWi7K---fq7ZX
466
472
  hestia_earth/models/site/cationExchangeCapacityPerKgSoil.py,sha256=0eH4A-tXJ0hvIkiYXWxlx8TfrdbIKUGYUDk97-yQJgg,3653
467
473
  hestia_earth/models/site/flowingWater.py,sha256=v3g5722GIA4zQAUQI9yGFiZvFvI1QAVZqlQrY-6_B3A,1731
468
474
  hestia_earth/models/site/freshWater.py,sha256=FXs3Vt8V4e-wn325_dwSTOKlZtn5ksNUpvYGDeLJShY,1255
469
- hestia_earth/models/site/management.py,sha256=n980WNeTQpoXgTrH4KbwHFaaAJRdMmIqeCz_MvvSKqg,10655
475
+ hestia_earth/models/site/management.py,sha256=LlvXibkqJyHCQQarn1uGUp8HJRmA8PW208pp1wCuSWk,10772
470
476
  hestia_earth/models/site/netPrimaryProduction.py,sha256=UIIQkYd911qVzrWjxBLrC37e-RARIVgDwLdARY9BuLw,1849
471
477
  hestia_earth/models/site/organicCarbonPerHa.py,sha256=F2ShinHf0m9qKa1nCYBspsDkRY6jzOl0wM8mSDre22I,14916
472
478
  hestia_earth/models/site/organicCarbonPerKgSoil.py,sha256=t--wAshiAKS-JvEKhLFRadGvgSBv5NFZ68jdyms_wh4,1945
@@ -524,7 +530,7 @@ hestia_earth/models/transformation/product/__init__.py,sha256=47DEQpj8HBSa-_TImW
524
530
  hestia_earth/models/transformation/product/excreta.py,sha256=Yj9wMF5if-zivb6qbN3vy1X51ZNYxvoyG9f4KPp3Y18,5700
525
531
  hestia_earth/models/usetoxV2/__init__.py,sha256=pK37V3H-KvYcvRKw4Mv8CWrB2N0LFLzmv0jKLdhGGqs,409
526
532
  hestia_earth/models/usetoxV2/freshwaterEcotoxicityPotentialCtue.py,sha256=oYNwThnMXjZymif5buyHiczFiOq_61jOdDMOAyy8vwQ,1018
527
- hestia_earth/models/utils/__init__.py,sha256=s9kqI1lHCvY6XmssTe5s3CzgrOQ4MKzlCiGmtr3ueE4,5228
533
+ hestia_earth/models/utils/__init__.py,sha256=xC04_nMK9YSVW8Eq8BOcvi2AFjKxlVG5uAwfdZ-_cak,4964
528
534
  hestia_earth/models/utils/aggregated.py,sha256=sz6usleZmo_tC_hIvmGgYsX8-H0dulXmmhHK4EkA5Kg,4946
529
535
  hestia_earth/models/utils/animalProduct.py,sha256=M5IunAKGY6oZv3j1Ascl34ywyeLWApqOIlBzbtlA2FE,721
530
536
  hestia_earth/models/utils/aquacultureManagement.py,sha256=dxrbC1Xf140cohxTbSw6TxLAnAASWTdNZwBBam4yQnw,171
@@ -536,7 +542,7 @@ hestia_earth/models/utils/crop.py,sha256=kG054fryqPSBpmzvJFBy_CLiOdjrt7RMk5uTItO
536
542
  hestia_earth/models/utils/cropResidue.py,sha256=_0Q35CrliJeo31xGHsPWe8A2oHxijdIsOrf3gBEqhlA,612
537
543
  hestia_earth/models/utils/cropResidueManagement.py,sha256=nIDFjf39rDD10UHSVudfDyu-EiL261g8jyrgS-2aDKw,347
538
544
  hestia_earth/models/utils/currency.py,sha256=f_ArJANb--pZq4LL49SXQ1AMX_oKroqwBXKRRQqZwsM,578
539
- hestia_earth/models/utils/cycle.py,sha256=78J3pS0nW-S296OPl9RrPlHxDQdXY-3W66tKo_mANXU,15927
545
+ hestia_earth/models/utils/cycle.py,sha256=JeYxIJOwdgZltkVQqFmEdzyGIpjWLa4oBt_H65OaRxU,16706
540
546
  hestia_earth/models/utils/descriptive_stats.py,sha256=qOyG8_TpWYmaxZ0h99n9L71gDLLiVMrMf0ChtxnZLjw,8559
541
547
  hestia_earth/models/utils/ecoClimateZone.py,sha256=NHFt-A9EiWXC6tUNIxkgOWUZOjj4I4uwJIP9ddDZegw,1112
542
548
  hestia_earth/models/utils/emission.py,sha256=5Dz8Z4P6QXbYSvOzVcqJy3R_oZMrp77_Iwj5xZsxsKc,3769
@@ -554,7 +560,7 @@ hestia_earth/models/utils/measurement.py,sha256=rxrrOVdkDm-J0QVjCEapa4z4KY3hUw-b
554
560
  hestia_earth/models/utils/organicFertiliser.py,sha256=2HY-a0EBzUw4DkEAXClLMXVCEZTKYf0BwFHBo7lQ5Tg,363
555
561
  hestia_earth/models/utils/pesticideAI.py,sha256=6f8b-dFm3qr-eY049_eOvj_iDk4XBam61csozdDAvyA,2361
556
562
  hestia_earth/models/utils/practice.py,sha256=tNadOzsrNlCEt801B815XaruJXzZ5yPASam7B3sWpXE,1091
557
- hestia_earth/models/utils/product.py,sha256=H9UqJNzTqtMWXDQnbRkZlTpv_hg4s-Tya469fBk8InA,10143
563
+ hestia_earth/models/utils/product.py,sha256=DhDgiReR8k9n9aaRM2xk3PIY3nfoE1ISKg9pKsBVzVQ,10143
558
564
  hestia_earth/models/utils/productivity.py,sha256=bUBVCZInGqHuHZvHDSYPQkjWXQxOtTjEk-1-f_BsFOo,594
559
565
  hestia_earth/models/utils/property.py,sha256=_9Wy0oZIBLsa-jOiGLokKehYLNdz-_7LfLaE4fb6SWM,5085
560
566
  hestia_earth/models/utils/site.py,sha256=zEj2PtIghk-L_vVJidlXM6_ed7HTc2-ogP0sQSh49vw,3874
@@ -603,6 +609,7 @@ tests/models/cycle/test_coldDressedCarcassWeightPerHead.py,sha256=DrdI1TUmggeeQv
603
609
  tests/models/cycle/test_completeness.py,sha256=Ku1ZSApGaACkXe3ae14yP01C4GssHMwlPG_UPrSytPo,1625
604
610
  tests/models/cycle/test_concentrateFeed.py,sha256=tgkThL4g293CexLvb89ftO9UqUbHhNOxiP6QMmsqCCo,2013
605
611
  tests/models/cycle/test_cropResidueManagement.py,sha256=vQWl7rDYLJjiKyBQlCiOA76LpzM4dI2t7JJ30uF8H9M,2020
612
+ tests/models/cycle/test_croppingIntensity.py,sha256=o5nA5tGbnk1IFdOhlN_Dh9oKcSq_yzSwkbBJzYfmYMg,1565
606
613
  tests/models/cycle/test_cycleDuration.py,sha256=2KExiliuOa7_j88rJuPObJKZqq0xsRnFAb0ZEqc5KEM,846
607
614
  tests/models/cycle/test_energyContentLowerHeatingValue.py,sha256=ZvHigQrtneKrRc8qr7rN8aj6tuA0ds0V6Brh0UzN_T8,1204
608
615
  tests/models/cycle/test_excretaKgMass.py,sha256=xpuq0k5HKvnGmWdJy0GmIv6A4xYk2VDFB4BMb8J2Z0g,2925
@@ -612,6 +619,7 @@ tests/models/cycle/test_feedConversionRatio.py,sha256=V6zpZvUmBN0LciJW5YbHHaRQX6
612
619
  tests/models/cycle/test_inorganicFertiliser.py,sha256=c-JDYC0qDK4JWlYDaGX53AcKfetz_YifSfdhy-v-WMo,642
613
620
  tests/models/cycle/test_irrigatedTypeUnspecified.py,sha256=9YGwpDO_RHMaldvjJZ0xdrdfUzYDnLPt6nMJ2eRXSTI,2151
614
621
  tests/models/cycle/test_liveAnimal.py,sha256=7fRPgEnIwcir-tYwUNnr6gc2e5_vnZi-t8EuuiPioeM,2139
622
+ tests/models/cycle/test_longFallowRatio.py,sha256=Aspp7l_L4gBVDmd9cj8doma6NX-509iWmzvkDpKhFf8,1502
615
623
  tests/models/cycle/test_milkYield.py,sha256=7e5JJzLkc47OnQf3xni1Nkyq7N4xi1RglnE8caE9TfY,1778
616
624
  tests/models/cycle/test_pastureGrass.py,sha256=hNRjBLYXGybzHPMfBOCgcRjGkDBmW0k_G6tn9TLrycY,1025
617
625
  tests/models/cycle/test_pastureSystem.py,sha256=VlPn4mlaNimiu3liV5EMELJueUCqSSJ1l82yMV0UK90,1590
@@ -622,7 +630,8 @@ tests/models/cycle/test_residueBurnt.py,sha256=eBAzGR1210cBYH_s6oI1yCG6tVKUj9gGs
622
630
  tests/models/cycle/test_residueIncorporated.py,sha256=esB_wnpf6W0PB24HW0YUgtfD9mxLDIY22eNVD4WAYFA,1719
623
631
  tests/models/cycle/test_residueLeftOnField.py,sha256=_8CoSp-7z3BBLGN5Hv067FRYz8yDFw5fi_Cu5n6Rl3g,1290
624
632
  tests/models/cycle/test_residueRemoved.py,sha256=R5v8lwGyz_4a9_X_LnugBEmgVgcisS5LTM5GFCtKIco,1278
625
- tests/models/cycle/test_siteDuration.py,sha256=3VS9oyEey_dkaIaKtXfnxfARkfSmZbbM-Px0_lvqxQM,881
633
+ tests/models/cycle/test_siteDuration.py,sha256=43Hjb0f2lXCRGqj-UmfLVmk7OGJswawtcA2q5wlffXk,1712
634
+ tests/models/cycle/test_siteUnusedDuration.py,sha256=5h9R3guw6ErU_sE5omoiK9Fpke74SmQWsJYWYURE9Fo,1532
626
635
  tests/models/cycle/test_startDate.py,sha256=cGhqeZWkJdp6PNxmT0rJ5ZVsTAKm_8CyZKivAzRwSeI,592
627
636
  tests/models/cycle/test_startDateDefinition.py,sha256=42BmsT1I7Jq_YMVN-VNU7a0fIZ2w3i5jgwy4H_r4dNM,920
628
637
  tests/models/cycle/test_transformations.py,sha256=Ws_8KhNqeHogGFXTQ4qZXQ5Ph2I3ZUaY0yO1itFUHLk,464
@@ -667,13 +676,16 @@ tests/models/dammgen2009/test_noxToAirExcreta.py,sha256=RWd9QvzmJtN9M6UC6KDHkXwt
667
676
  tests/models/deRuijterEtAl2010/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
668
677
  tests/models/deRuijterEtAl2010/test_nh3ToAirCropResidueDecomposition.py,sha256=kS1nUBVohOSCb386g6Wq7iVclmx0haekUDYo7VQ4NCA,2030
669
678
  tests/models/emepEea2019/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
670
- tests/models/emepEea2019/test_co2ToAirFuelCombustion.py,sha256=HXQTSIkJzCKsb-9fGStkxtkcK65KS3sJlvShW2F6EaU,1450
671
- tests/models/emepEea2019/test_n2OToAirFuelCombustionDirect.py,sha256=vmZAAUkxfJyaRoioEEFmz8EtR3X_MCeaA-0VjjNNmQE,1456
672
- tests/models/emepEea2019/test_nh3ToAirExcreta.py,sha256=VtZFVWaHjqlxdge1Qir-OghNZtfsIJvLpg_8UNp0akU,1363
673
- tests/models/emepEea2019/test_nh3ToAirInorganicFertiliser.py,sha256=ZRU-mQiQLGX3xxOIP7r7iv08vCuRa6ElnKJs2AZ7a1E,2060
674
- tests/models/emepEea2019/test_noxToAirFuelCombustion.py,sha256=drCeoaGo6Ag3fdEDDSC3D880OXxzillzHk7rPYcVwmE,1450
675
- tests/models/emepEea2019/test_so2ToAirFuelCombustion.py,sha256=CNaT_z02DHDpBJ2IIkG0K7ra87WBg_iDkhx9QGAjk00,1450
676
- tests/models/emepEea2019/test_utils.py,sha256=jNb4T4yXWowUvY_1d_nxDTOBX-2K8jIG2TZ6SokxYP0,1843
679
+ tests/models/emepEea2019/test_co2ToAirFuelCombustion.py,sha256=z1H17R_Erox2dMg8xylGB0qt9BMZSwfLAoEMVv9z878,1518
680
+ tests/models/emepEea2019/test_n2OToAirFuelCombustionDirect.py,sha256=4uemriZAyJBSn-xMttRpxqVHOFNBXlboVODHQYl65zQ,1524
681
+ tests/models/emepEea2019/test_nh3ToAirExcreta.py,sha256=LsRynnkVjtkgxFjDS6CQBMUgN4O8qedQDuoNVClgdKQ,1425
682
+ tests/models/emepEea2019/test_nh3ToAirInorganicFertiliser.py,sha256=f623Pp6XTt9YPDr2QymAJEQ_yfx0_TZGndmawD8ZX98,2134
683
+ tests/models/emepEea2019/test_noxToAirFuelCombustion.py,sha256=HpuzWyFmfatFXwTZd8TVpHb6Kfj2Ru3IO1gHnSiuKtQ,1518
684
+ tests/models/emepEea2019/test_pm10ToAirAnimalHousing.py,sha256=xGlQeJkdP638zbHivxAqvliZCRpcogMFZYVCMWw6j3c,715
685
+ tests/models/emepEea2019/test_pm25ToAirAnimalHousing.py,sha256=cs3UaJ7ucCryOaQy0sbL9AiuC8l_N7uywmPZHcr3pC0,715
686
+ tests/models/emepEea2019/test_so2ToAirFuelCombustion.py,sha256=zRTyeeQM1fRdRVFWbtCNndaddDbKHU1xLzmp_psDceE,1518
687
+ tests/models/emepEea2019/test_tspToAirAnimalHousing.py,sha256=4MNDsxIeUk5_3IvZwEZslxgoPNyQN9OQFDNY3uGNX6E,714
688
+ tests/models/emepEea2019/test_utils.py,sha256=G6z8tEfWM0OPnUBaFCQgQyEi5-kRF_DqsqdYaPnzR_I,8761
677
689
  tests/models/environmentalFootprintV3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
678
690
  tests/models/environmentalFootprintV3/test_freshwaterEcotoxicityPotentialCtue.py,sha256=lIgsdGh_0eDi-rPcCOrSSjVYNiET2GCSRkAHdugAkDk,851
679
691
  tests/models/epa2014/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -691,14 +703,14 @@ tests/models/faostat2018/product/test_price.py,sha256=vUTT-FZVbXnDrwQVOgq8PWTDuF
691
703
  tests/models/geospatialDatabase/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
692
704
  tests/models/geospatialDatabase/test_aware.py,sha256=tbBBvXrOqdO0cMPJTa02UfhlwfosH8iNoJLzZNFs1NU,857
693
705
  tests/models/geospatialDatabase/test_clayContent.py,sha256=KdkmsJMB1FsJXZCggcGWh3LlDKDDlwvcmSLEhZpdM_g,1177
694
- tests/models/geospatialDatabase/test_croppingIntensity.py,sha256=e2opH6R2BIAEg5_Qm80UGJfzpDle0vjN5wvVBNmXdDc,943
706
+ tests/models/geospatialDatabase/test_croppingIntensity.py,sha256=p7OQZOKuxcEhokFqIE4jj6GU3YwR9GtQqNwlhOGy7uI,1006
695
707
  tests/models/geospatialDatabase/test_drainageClass.py,sha256=X75v6f8N5i40grULUNMvNOu_UC27VoahuW6BaQb19LY,1015
696
708
  tests/models/geospatialDatabase/test_ecoClimateZone.py,sha256=ad0BBOhjl6uMUP_-QhAHEG3kTo7x3EaXuEahbbnx10E,1119
697
709
  tests/models/geospatialDatabase/test_ecoregion.py,sha256=xPEXQKXpF4ghpVwuyZWC-4mmN9qywF-s_QKkmU40H70,868
698
710
  tests/models/geospatialDatabase/test_erodibility.py,sha256=UW6SZS1nY3rzr2TqRcFDoq6a5KJ6ox-8L0k-im23R0s,1013
699
711
  tests/models/geospatialDatabase/test_heavyWinterPrecipitation.py,sha256=1xv7L_b3ochbcu6y6TQrTUL0ZLr6aR44kAPsEN_1kAE,1026
700
712
  tests/models/geospatialDatabase/test_histosol.py,sha256=Jc4N7Qt2zx09L8lj9Kjmr1q36T96MBNlasxGB0jD4EQ,1102
701
- tests/models/geospatialDatabase/test_longFallowRatio.py,sha256=b1H2onTFO3NPHNG_e_kMnd_BMs1mGZnp2a9EsYpmI_c,941
713
+ tests/models/geospatialDatabase/test_longFallowRatio.py,sha256=VoYURFuOnlC8ozxcMLTzv99MGlymlVXd596T5MKVvOU,1004
702
714
  tests/models/geospatialDatabase/test_nutrientLossToAquaticEnvironment.py,sha256=ZtoNdI_dB3Nk79Ts9JJrlda7z6HRE2cwCQHC2DiWCsY,1034
703
715
  tests/models/geospatialDatabase/test_organicCarbonPerKgSoil.py,sha256=WomlRdVl4f6ooJz2YctPf0YGiNs-9To6XFwTdtpm0SQ,1024
704
716
  tests/models/geospatialDatabase/test_potentialEvapotranspirationAnnual.py,sha256=6s4XDmKi__njKE_3tFMIAHr0a1w7X4t8uFRtihN_cm4,706
@@ -1009,7 +1021,7 @@ tests/models/site/test_brackishWater.py,sha256=YGCp4glaWudKklYBSp-50KbfvIRtp3F4Q
1009
1021
  tests/models/site/test_cationExchangeCapacityPerKgSoil.py,sha256=tNMhN998vcjQ15I-5mNnFh2d7mHzEBIBO6o1VSfQNUE,1075
1010
1022
  tests/models/site/test_flowingWater.py,sha256=t_rxvdlmUVDsFBoDF20_zDM-0iiLKkNCV7knO9l1T7o,1370
1011
1023
  tests/models/site/test_freshWater.py,sha256=GOeAxHhPW_2E1wQdQRX4W-r7mnb_LgmiAVLImitoApw,982
1012
- tests/models/site/test_management.py,sha256=b6CyvJ35Qa5utjsH6d5jo5AHnrb3k3Uv-ez0P6PWask,14102
1024
+ tests/models/site/test_management.py,sha256=eIZN1PKB3rlUVrHK_Bkwc3hald3-y68rIl8cRVGEDgk,14160
1013
1025
  tests/models/site/test_netPrimaryProduction.py,sha256=JCxG0MODbKVvl3hOqmKzh4FjHYn3Xs9KsVod6LvKQII,1108
1014
1026
  tests/models/site/test_organicCarbonPerHa.py,sha256=XtGrE7ZqthTF0x8lDxJ1slNd_GvYHEyEydcRgA46jEc,3207
1015
1027
  tests/models/site/test_organicCarbonPerKgSoil.py,sha256=0M-NMg_T3UXzGT_VlKOKhSxg4cZ0_zhd3FRgY5Hpj6o,1087
@@ -1088,8 +1100,8 @@ tests/models/utils/test_source.py,sha256=mv3vHZV5cjpoLA2I1109-YUkuzAiuhbRSnv_76_
1088
1100
  tests/models/utils/test_term.py,sha256=M5Sa26v2gzQYbZ4H_fo7DspnaCx__-WtL-MULGapCWk,3509
1089
1101
  tests/models/webbEtAl2012AndSintermannEtAl2012/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1090
1102
  tests/models/webbEtAl2012AndSintermannEtAl2012/test_nh3ToAirOrganicFertiliser.py,sha256=qi2FNXS5Af2WDtm7nq_FsprH3BfCF0XxnE0XHmC4aIY,2244
1091
- hestia_earth_models-0.62.4.dist-info/LICENSE,sha256=AC7h7GAgCZGJK_Tzh6LUCrML9gQEfowWwecEw2w54QM,1154
1092
- hestia_earth_models-0.62.4.dist-info/METADATA,sha256=WJCEsKRmOjSYJeIm86qjEAHu6PX_HQK_KQwrUrabBDQ,3343
1093
- hestia_earth_models-0.62.4.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
1094
- hestia_earth_models-0.62.4.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1095
- hestia_earth_models-0.62.4.dist-info/RECORD,,
1103
+ hestia_earth_models-0.62.6.dist-info/LICENSE,sha256=AC7h7GAgCZGJK_Tzh6LUCrML9gQEfowWwecEw2w54QM,1154
1104
+ hestia_earth_models-0.62.6.dist-info/METADATA,sha256=vTHt2mh8iCpLEmF569y6GKPZrhm2xg91Fjq3bnKFc1E,3343
1105
+ hestia_earth_models-0.62.6.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
1106
+ hestia_earth_models-0.62.6.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1107
+ hestia_earth_models-0.62.6.dist-info/RECORD,,
@@ -0,0 +1,53 @@
1
+ from unittest.mock import patch
2
+ import pytest
3
+ import json
4
+ from tests.utils import fixtures_path, fake_new_practice
5
+
6
+ from hestia_earth.models.cycle.croppingIntensity import MODEL, TERM_ID, run, _should_run
7
+
8
+ class_path = f"hestia_earth.models.{MODEL}.{TERM_ID}"
9
+ fixtures_folder = f"{fixtures_path}/{MODEL}/{TERM_ID}"
10
+
11
+
12
+ @pytest.mark.parametrize(
13
+ 'test_name,cycle,expected_should_run',
14
+ [
15
+ (
16
+ 'no cycleDuration => no run',
17
+ {},
18
+ False
19
+ ),
20
+ (
21
+ 'with cycleDuration and wrong startDateDefinition => no run',
22
+ {
23
+ 'cycleDuration': 100,
24
+ 'startDateDefinition': 'random definition'
25
+ },
26
+ False
27
+ ),
28
+ (
29
+ 'with cycleDuration and correct startDateDefinition => run',
30
+ {
31
+ 'cycleDuration': 100,
32
+ 'startDateDefinition': 'harvest of previous crop'
33
+ },
34
+ True
35
+ )
36
+ ]
37
+ )
38
+ @patch(f"{class_path}.is_plantation", return_value=False)
39
+ def test_should_run(mock_is_plantation, test_name, cycle, expected_should_run):
40
+ should_run = _should_run(cycle)
41
+ assert should_run == expected_should_run, test_name
42
+
43
+
44
+ @patch(f"{class_path}._new_practice", side_effect=fake_new_practice)
45
+ def test_run(*args):
46
+ with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
47
+ cycle = json.load(f)
48
+
49
+ with open(f"{fixtures_folder}/result.jsonld", encoding='utf-8') as f:
50
+ expected = json.load(f)
51
+
52
+ result = run(cycle)
53
+ assert result == expected
@@ -0,0 +1,49 @@
1
+ from unittest.mock import patch
2
+ import pytest
3
+ import json
4
+ from tests.utils import fixtures_path, fake_new_practice
5
+
6
+ from hestia_earth.models.cycle.longFallowRatio import MODEL, TERM_ID, run, _should_run
7
+
8
+ class_path = f"hestia_earth.models.{MODEL}.{TERM_ID}"
9
+ fixtures_folder = f"{fixtures_path}/{MODEL}/{TERM_ID}"
10
+
11
+
12
+ @pytest.mark.parametrize(
13
+ 'test_name,cycle,expected_should_run',
14
+ [
15
+ (
16
+ 'no longFallowPeriod => no run',
17
+ {'practices': []},
18
+ False
19
+ ),
20
+ (
21
+ 'with longFallowPeriod no rotationDuration => no run',
22
+ {'practices': [{'term': {'@id': 'longFallowPeriod'}, 'value': [10]}]},
23
+ False
24
+ ),
25
+ (
26
+ 'with longFallowPeriod and rotationDuration => run',
27
+ {'practices': [
28
+ {'term': {'@id': 'longFallowPeriod'}, 'value': [10]},
29
+ {'term': {'@id': 'rotationDuration'}, 'value': [10]}
30
+ ]},
31
+ True
32
+ )
33
+ ]
34
+ )
35
+ def test_should_run(test_name, cycle, expected_should_run):
36
+ should_run, *args = _should_run(cycle)
37
+ assert should_run == expected_should_run, test_name
38
+
39
+
40
+ @patch(f"{class_path}._new_practice", side_effect=fake_new_practice)
41
+ def test_run(*args):
42
+ with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
43
+ cycle = json.load(f)
44
+
45
+ with open(f"{fixtures_folder}/result.jsonld", encoding='utf-8') as f:
46
+ expected = json.load(f)
47
+
48
+ result = run(cycle)
49
+ assert result == expected
@@ -1,4 +1,5 @@
1
1
  import json
2
+ import pytest
2
3
  from tests.utils import fixtures_path
3
4
 
4
5
  from hestia_earth.models.cycle.siteDuration import MODEL, MODEL_KEY, _should_run, run
@@ -6,21 +7,47 @@ from hestia_earth.models.cycle.siteDuration import MODEL, MODEL_KEY, _should_run
6
7
  fixtures_folder = f"{fixtures_path}/{MODEL}/{MODEL_KEY}"
7
8
 
8
9
 
9
- def test_should_run():
10
- # no cycleDuration => no run
11
- cycle = {}
10
+ @pytest.mark.parametrize(
11
+ 'test_name,cycle,expected_should_run',
12
+ [
13
+ (
14
+ 'no cycleDuration => no run',
15
+ {},
16
+ False
17
+ ),
18
+ (
19
+ 'with otherSites => no run',
20
+ {'otherSites': []},
21
+ False
22
+ ),
23
+ (
24
+ 'with cycleDuration => run',
25
+ {'cycleDuration': 100},
26
+ True
27
+ ),
28
+ (
29
+ 'with a crop product and wrong startDateDefinition => no run',
30
+ {
31
+ 'cycleDuration': 100,
32
+ 'products': [{'term': {'termType': 'crop'}, 'primary': True}],
33
+ 'startDateDefinition': 'random definition'
34
+ },
35
+ False
36
+ ),
37
+ (
38
+ 'with a crop product and correct startDateDefinition => run',
39
+ {
40
+ 'cycleDuration': 100,
41
+ 'products': [{'term': {'termType': 'crop'}, 'primary': True}],
42
+ 'startDateDefinition': 'harvest of previous crop'
43
+ },
44
+ True
45
+ )
46
+ ]
47
+ )
48
+ def test_should_run_animal(test_name, cycle, expected_should_run):
12
49
  should_run = _should_run(cycle)
13
- assert not should_run
14
-
15
- # with cycleDuration => run
16
- cycle['cycleDuration'] = 100
17
- should_run = _should_run(cycle)
18
- assert should_run is True
19
-
20
- # with otherSites => no run
21
- cycle['otherSites'] = [{}]
22
- should_run = _should_run(cycle)
23
- assert not should_run
50
+ assert should_run == expected_should_run, test_name
24
51
 
25
52
 
26
53
  def test_run():
@@ -0,0 +1,55 @@
1
+ import json
2
+ import pytest
3
+ from tests.utils import fixtures_path
4
+
5
+ from hestia_earth.models.cycle.siteUnusedDuration import MODEL, MODEL_KEY, _should_run, run
6
+
7
+ fixtures_folder = f"{fixtures_path}/{MODEL}/{MODEL_KEY}"
8
+
9
+
10
+ @pytest.mark.parametrize(
11
+ 'test_name,cycle,expected_should_run',
12
+ [
13
+ (
14
+ 'no siteDuration => no run',
15
+ {},
16
+ False
17
+ ),
18
+ (
19
+ 'with siteDuration => no run',
20
+ {'siteDuration': 100},
21
+ False
22
+ ),
23
+ (
24
+ 'with siteDuration and longFallowRatio => no run',
25
+ {
26
+ 'siteDuration': 100,
27
+ 'practices': [{'term': {'@id': 'longFallowRatio'}, 'value': [10]}]
28
+ },
29
+ False
30
+ ),
31
+ (
32
+ 'with siteDuration and longFallowRatio and cropland => run',
33
+ {
34
+ 'siteDuration': 100,
35
+ 'practices': [{'term': {'@id': 'longFallowRatio'}, 'value': [10]}],
36
+ 'site': {'siteType': 'cropland'}
37
+ },
38
+ True
39
+ )
40
+ ]
41
+ )
42
+ def test_should_run_animal(test_name, cycle, expected_should_run):
43
+ should_run, *args = _should_run(cycle)
44
+ assert should_run == expected_should_run, test_name
45
+
46
+
47
+ def test_run():
48
+ with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
49
+ data = json.load(f)
50
+
51
+ with open(f"{fixtures_folder}/result.txt", encoding='utf-8') as f:
52
+ expected = f.read().strip()
53
+
54
+ value = run(data)
55
+ assert float(value) == float(expected)
@@ -5,6 +5,7 @@ from tests.utils import fixtures_path, fake_new_emission
5
5
  from hestia_earth.models.emepEea2019.co2ToAirFuelCombustion import MODEL, TERM_ID, run, _should_run
6
6
 
7
7
  class_path = f"hestia_earth.models.{MODEL}.{TERM_ID}"
8
+ model_utils_path = f"hestia_earth.models.{MODEL}.utils"
8
9
  fixtures_folder = f"{fixtures_path}/{MODEL}/{TERM_ID}"
9
10
 
10
11
 
@@ -21,7 +22,7 @@ def test_should_run(mock_get_fuel_values):
21
22
  assert should_run is True
22
23
 
23
24
 
24
- @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
25
+ @patch(f"{model_utils_path}._new_emission", side_effect=fake_new_emission)
25
26
  def test_run(*args):
26
27
  with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
27
28
  cycle = json.load(f)
@@ -33,7 +34,7 @@ def test_run(*args):
33
34
  assert value == expected
34
35
 
35
36
 
36
- @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
37
+ @patch(f"{model_utils_path}._new_emission", side_effect=fake_new_emission)
37
38
  def test_run_data_complete(*args):
38
39
  with open(f"{fixtures_folder}/no-input-data-complete/cycle.jsonld", encoding='utf-8') as f:
39
40
  cycle = json.load(f)
@@ -5,6 +5,7 @@ from tests.utils import fixtures_path, fake_new_emission
5
5
  from hestia_earth.models.emepEea2019.n2OToAirFuelCombustionDirect import MODEL, TERM_ID, run, _should_run
6
6
 
7
7
  class_path = f"hestia_earth.models.{MODEL}.{TERM_ID}"
8
+ model_utils_path = f"hestia_earth.models.{MODEL}.utils"
8
9
  fixtures_folder = f"{fixtures_path}/{MODEL}/{TERM_ID}"
9
10
 
10
11
 
@@ -21,7 +22,7 @@ def test_should_run(mock_get_fuel_values):
21
22
  assert should_run is True
22
23
 
23
24
 
24
- @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
25
+ @patch(f"{model_utils_path}._new_emission", side_effect=fake_new_emission)
25
26
  def test_run(*args):
26
27
  with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
27
28
  cycle = json.load(f)
@@ -33,7 +34,7 @@ def test_run(*args):
33
34
  assert value == expected
34
35
 
35
36
 
36
- @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
37
+ @patch(f"{model_utils_path}._new_emission", side_effect=fake_new_emission)
37
38
  def test_run_data_complete(*args):
38
39
  with open(f"{fixtures_folder}/no-input-data-complete/cycle.jsonld", encoding='utf-8') as f:
39
40
  cycle = json.load(f)
@@ -5,6 +5,7 @@ from tests.utils import fixtures_path, fake_new_emission
5
5
  from hestia_earth.models.emepEea2019.nh3ToAirExcreta import MODEL, TERM_ID, run, _should_run
6
6
 
7
7
  class_path = f"hestia_earth.models.{MODEL}.{TERM_ID}"
8
+ model_utils_path = f"hestia_earth.models.{MODEL}.utils"
8
9
  fixtures_folder = f"{fixtures_path}/{MODEL}/{TERM_ID}"
9
10
 
10
11
 
@@ -34,7 +35,7 @@ def test_should_run(mock_get_lookup_factor, mock_excreta, *args):
34
35
  assert should_run is True
35
36
 
36
37
 
37
- @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
38
+ @patch(f"{model_utils_path}._new_emission", side_effect=fake_new_emission)
38
39
  def test_run(*args):
39
40
  with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
40
41
  cycle = json.load(f)