hestia-earth-models 0.59.5__py3-none-any.whl → 0.59.7__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 (46) hide show
  1. hestia_earth/models/cache_sites.py +6 -8
  2. hestia_earth/models/cycle/animal/milkYield.py +86 -0
  3. hestia_earth/models/cycle/endDate.py +50 -0
  4. hestia_earth/models/cycle/inorganicFertiliser.py +3 -2
  5. hestia_earth/models/cycle/milkYield.py +8 -3
  6. hestia_earth/models/cycle/pre_checks/__init__.py +1 -2
  7. hestia_earth/models/cycle/siteDuration.py +1 -1
  8. hestia_earth/models/cycle/startDate.py +42 -0
  9. hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py +9 -6
  10. hestia_earth/models/faostat2018/liveweightPerHead.py +77 -41
  11. hestia_earth/models/faostat2018/product/price.py +43 -57
  12. hestia_earth/models/faostat2018/utils.py +10 -2
  13. hestia_earth/models/geospatialDatabase/utils.py +0 -1
  14. hestia_earth/models/haversineFormula/transport/distance.py +6 -3
  15. hestia_earth/models/ipcc2006/n2OToAirInorganicFertiliserIndirect.py +1 -1
  16. hestia_earth/models/ipcc2019/co2ToAirLimeHydrolysis.py +1 -1
  17. hestia_earth/models/ipcc2019/co2ToAirUreaHydrolysis.py +2 -7
  18. hestia_earth/models/ipcc2019/organicCarbonPerHa.py +26 -6
  19. hestia_earth/models/ipcc2019/pastureGrass.py +2 -1
  20. hestia_earth/models/linkedImpactAssessment/__init__.py +3 -3
  21. hestia_earth/models/mocking/search-results.json +244 -232
  22. hestia_earth/models/schmidt2007/h2SToAirWasteTreatment.py +58 -0
  23. hestia_earth/models/site/management.py +3 -1
  24. hestia_earth/models/site/pre_checks/cache_geospatialDatabase.py +2 -2
  25. hestia_earth/models/utils/__init__.py +4 -1
  26. hestia_earth/models/utils/animalProduct.py +6 -4
  27. hestia_earth/models/utils/blank_node.py +3 -2
  28. hestia_earth/models/utils/product.py +9 -1
  29. hestia_earth/models/utils/property.py +2 -1
  30. hestia_earth/models/utils/site.py +7 -4
  31. hestia_earth/models/version.py +1 -1
  32. {hestia_earth_models-0.59.5.dist-info → hestia_earth_models-0.59.7.dist-info}/METADATA +1 -1
  33. {hestia_earth_models-0.59.5.dist-info → hestia_earth_models-0.59.7.dist-info}/RECORD +44 -38
  34. tests/models/cycle/animal/test_milkYield.py +43 -0
  35. tests/models/cycle/test_endDate.py +24 -0
  36. tests/models/cycle/test_startDate.py +22 -0
  37. tests/models/faostat2018/product/test_price.py +40 -48
  38. tests/models/faostat2018/test_liveweightPerHead.py +106 -42
  39. tests/models/ipcc2019/test_organicCarbonPerHa.py +102 -39
  40. tests/models/schmidt2007/test_h2SToAirWasteTreatment.py +45 -0
  41. tests/models/utils/test_blank_node.py +71 -3
  42. hestia_earth/models/cycle/pre_checks/startDate.py +0 -52
  43. tests/models/cycle/pre_checks/test_startDate.py +0 -44
  44. {hestia_earth_models-0.59.5.dist-info → hestia_earth_models-0.59.7.dist-info}/LICENSE +0 -0
  45. {hestia_earth_models-0.59.5.dist-info → hestia_earth_models-0.59.7.dist-info}/WHEEL +0 -0
  46. {hestia_earth_models-0.59.5.dist-info → hestia_earth_models-0.59.7.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,58 @@
1
+ from hestia_earth.schema import EmissionMethodTier
2
+ from hestia_earth.utils.tools import list_sum
3
+
4
+ from hestia_earth.models.log import logRequirements, logShouldRun
5
+ from hestia_earth.models.utils.emission import _new_emission
6
+ from .utils import get_waste_values
7
+ from . import MODEL
8
+
9
+ REQUIREMENTS = {
10
+ "Cycle": {
11
+ "or": {
12
+ "product": [
13
+ {"@type": "Product", "value": "", "term.termType": "waste"}
14
+ ],
15
+ "completeness.waste": ""
16
+ }
17
+ }
18
+ }
19
+ RETURNS = {
20
+ "Emission": [{
21
+ "value": "",
22
+ "methodTier": "tier 1"
23
+ }]
24
+ }
25
+ LOOKUPS = {
26
+ "waste": "h2SEfSchmidt2007"
27
+ }
28
+ TERM_ID = 'h2SToAirWasteTreatment'
29
+ TIER = EmissionMethodTier.TIER_1.value
30
+
31
+
32
+ def _emission(value: float):
33
+ emission = _new_emission(TERM_ID, MODEL)
34
+ emission['value'] = [value]
35
+ emission['methodTier'] = TIER
36
+ return emission
37
+
38
+
39
+ def _run(waste_values: list):
40
+ value = list_sum(waste_values)
41
+ return [_emission(value)]
42
+
43
+
44
+ def _should_run(cycle: dict):
45
+ waste_values = get_waste_values(TERM_ID, cycle, LOOKUPS['waste'])
46
+ has_waste = len(waste_values) > 0
47
+
48
+ logRequirements(cycle, model=MODEL, term=TERM_ID,
49
+ has_waste=has_waste)
50
+
51
+ should_run = any([has_waste])
52
+ logShouldRun(cycle, MODEL, TERM_ID, should_run, methodTier=TIER)
53
+ return should_run, waste_values
54
+
55
+
56
+ def run(cycle: dict):
57
+ should_run, waste_values = _should_run(cycle)
58
+ return _run(waste_values) if should_run else []
@@ -64,12 +64,14 @@ RETURNS = {
64
64
  }]
65
65
  }
66
66
  LOOKUPS = {
67
+ "crop": ["landCoverTermId"],
68
+ "forage": ["landCoverTermId"],
67
69
  "inorganicFertiliser": "nitrogenContent",
68
70
  "organicFertiliser": "ANIMAL_MANURE",
69
71
  "soilAmendment": "PRACTICE_INCREASING_C_INPUT"
70
72
  }
71
73
  MODEL_KEY = 'management'
72
- LAND_COVER_KEY = 'landCoverId'
74
+ LAND_COVER_KEY = LOOKUPS['crop'][0]
73
75
  ANIMAL_MANURE_USED_TERM_ID = "animalManureUsed"
74
76
  INORGANIC_NITROGEN_FERTILISER_USED_TERM_ID = "inorganicNitrogenFertiliserUsed"
75
77
  ORGANIC_FERTILISER_USED_TERM_ID = "organicFertiliserUsed"
@@ -77,7 +77,7 @@ def _extend_collections(values: list, years: list = []):
77
77
  ])
78
78
 
79
79
 
80
- def list_collections(years: list, include_region: bool = False):
80
+ def list_collections(years: list = [], include_region: bool = False):
81
81
  ee_params = list_ee_params()
82
82
  # only cache `raster` results as can be combined in a single query
83
83
  rasters = [value for value in ee_params if value.get('params').get('ee_type') == 'raster']
@@ -89,7 +89,7 @@ def list_collections(years: list, include_region: bool = False):
89
89
  ])
90
90
  ]
91
91
 
92
- return (_extend_collections(rasters, years), _extend_collections(vectors))
92
+ return (_extend_collections(rasters, years or []), _extend_collections(vectors))
93
93
 
94
94
 
95
95
  def _cache_results(site: dict, area_size: float):
@@ -134,4 +134,7 @@ def first_day_of_month(year: int, month: int):
134
134
 
135
135
 
136
136
  def last_day_of_month(year: int, month: int):
137
- return datetime.date(int(year) + int(int(month) / 12), (int(month) % 12) + 1, 1) - datetime.timedelta(days=1)
137
+ # handle special case month 12
138
+ return datetime.date(int(year), 12, 31) if month == 12 else (
139
+ datetime.date(int(year) + int(int(month) / 12), (int(month) % 12) + 1, 1) - datetime.timedelta(days=1)
140
+ )
@@ -7,10 +7,12 @@ FAO_EQUIVALENT_LOOKUP_COLUMN = 'animalProductGroupingFAOEquivalent'
7
7
 
8
8
 
9
9
  def get_animalProduct_lookup_value(model: str, term_id: str, column: str):
10
- return get_lookup_value({'@id': term_id, 'termType': TermTermType.ANIMALPRODUCT.value}, column,
11
- model=model, term=term_id)
10
+ return get_lookup_value(
11
+ {'@id': term_id, 'termType': TermTermType.ANIMALPRODUCT.value}, column, model=model, term=term_id
12
+ ) if term_id else None
12
13
 
13
14
 
14
15
  def get_animalProduct_grouping_fao(model: str, term: dict):
15
- fao_product_id = get_animalProduct_lookup_value(model, term.get('@id'), FAO_EQUIVALENT_LOOKUP_COLUMN)
16
- return get_animalProduct_lookup_value(model, fao_product_id, FAO_LOOKUP_COLUMN)
16
+ term_id = term.get('@id')
17
+ fao_product_id = get_animalProduct_lookup_value(model, term_id, FAO_EQUIVALENT_LOOKUP_COLUMN)
18
+ return get_animalProduct_lookup_value(model, fao_product_id or term_id, FAO_LOOKUP_COLUMN)
@@ -1161,9 +1161,10 @@ def group_nodes_by_year_and_month(
1161
1161
  for year in range(range_start, range_end):
1162
1162
  for month in range(1, 13):
1163
1163
 
1164
+ datestr_incomplete = f"{year}-{month:02}"
1164
1165
  group_datetime_range = DatetimeRange(
1165
- start=safe_parse_date(_gapfill_datestr(f"{year}-{month:02}", DatestrGapfillMode.START)),
1166
- end=safe_parse_date(_gapfill_datestr(f"{year}-{month}", DatestrGapfillMode.END))
1166
+ start=safe_parse_date(_gapfill_datestr(datestr_incomplete, DatestrGapfillMode.START)),
1167
+ end=safe_parse_date(_gapfill_datestr(datestr_incomplete, DatestrGapfillMode.END))
1167
1168
  )
1168
1169
 
1169
1170
  is_final_month = _datetime_within_range(node_datetime_range.end, group_datetime_range)
@@ -188,6 +188,12 @@ PRODUCT_UNITS_CONVERSIONS = {
188
188
  ]
189
189
  },
190
190
  Units.KG_LIVEWEIGHT.value: {
191
+ Units.NUMBER.value: [
192
+ ('liveweightPerHead', True)
193
+ ],
194
+ Units.HEAD.value: [
195
+ ('liveweightPerHead', True)
196
+ ],
191
197
  Units.KG_LIVEWEIGHT.value: [],
192
198
  Units.KG_COLD_CARCASS_WEIGHT.value: [
193
199
  ('processingConversionLiveweightToColdCarcassWeight', True)
@@ -224,7 +230,9 @@ PRODUCT_UNITS_CONVERSIONS = {
224
230
  },
225
231
  Units.KG_COLD_DRESSED_CARCASS_WEIGHT.value: {
226
232
  Units.KG_LIVEWEIGHT.value: [
227
- ('processingConversionLiveweightToColdDressedCarcassWeight', False)
233
+ ('processingConversionLiveweightToColdDressedCarcassWeight', False),
234
+ # fallback when cold dressed carcass weight is not provided
235
+ ('processingConversionLiveweightToColdCarcassWeight', False)
228
236
  ],
229
237
  Units.KG_COLD_DRESSED_CARCASS_WEIGHT.value: [],
230
238
  Units.KG_COLD_CARCASS_WEIGHT.value: [],
@@ -93,7 +93,8 @@ def node_property_lookup_value(model: str, term: dict, prop_id: str, default=Non
93
93
  lookup_name = f"{term.get('termType')}-property.csv"
94
94
  lookup = download_lookup(lookup_name)
95
95
  term_id = term.get('@id')
96
- value = extract_grouped_data(get_table_value(lookup, 'termid', term_id, column_name(prop_id)), 'Avg')
96
+ lookup_value = get_table_value(lookup, 'termid', term_id, column_name(prop_id))
97
+ value = extract_grouped_data(lookup_value, 'Avg') if 'Avg' in lookup_value else lookup_value
97
98
  debugMissingLookup(lookup_name, 'termid', term_id, prop_id, value, model=model, term=term_id, **log_args)
98
99
  return safe_parse_float(value, default=None)
99
100
  except Exception:
@@ -1,7 +1,7 @@
1
1
  from hestia_earth.schema import SchemaType, SiteSiteType, TermTermType
2
2
  from hestia_earth.utils.api import find_related
3
3
  from hestia_earth.utils.lookup import download_lookup, get_table_value, column_name
4
- from hestia_earth.utils.tools import non_empty_list, safe_parse_date
4
+ from hestia_earth.utils.tools import non_empty_list, safe_parse_date, flatten
5
5
 
6
6
  from hestia_earth.models.log import debugMissingLookup
7
7
  from . import cached_value, _load_calculated_node
@@ -63,14 +63,17 @@ def related_cycles(site_id: str):
63
63
  return non_empty_list(map(lambda node: _load_calculated_node(node, SchemaType.CYCLE), nodes or []))
64
64
 
65
65
 
66
- def _cycle_end_year(cycle: dict):
67
- date = safe_parse_date(cycle.get('endDate'))
66
+ def _cycle_year(cycle: dict, key: str):
67
+ date = safe_parse_date(cycle.get(key))
68
68
  return date.year if date else None
69
69
 
70
70
 
71
71
  def related_years(site: dict):
72
72
  return cached_value(site, CACHE_YEARS_KEY) or (
73
- non_empty_list(set(map(_cycle_end_year, related_cycles(site.get('@id')))))
73
+ sorted(non_empty_list(set(flatten([
74
+ _cycle_year(cycle, 'startDate'),
75
+ _cycle_year(cycle, 'endDate')
76
+ ] for cycle in related_cycles(site.get('@id'))))))
74
77
  )
75
78
 
76
79
 
@@ -1 +1 @@
1
- VERSION = '0.59.5'
1
+ VERSION = '0.59.7'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hestia-earth-models
3
- Version: 0.59.5
3
+ Version: 0.59.7
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
@@ -1,9 +1,9 @@
1
1
  hestia_earth/__init__.py,sha256=G-d438vPx7m_ks5e9XTtM3u7LDRO5dSSukibukWmyPM,56
2
2
  hestia_earth/models/__init__.py,sha256=qEFeq3yuf3lQKVseALmL8aPM8fpCS54B_5pry00M3hk,76
3
- hestia_earth/models/cache_sites.py,sha256=kp_3D09P-JdAn9vt7eU-KKTwd6BAXWKQL_0UQCDsH2s,4798
3
+ hestia_earth/models/cache_sites.py,sha256=tPuUiSVSwKfTueuinDsiVRAbxIdDmpJ8V0AOdMOX_yE,4783
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=0NY7cXt4Am8fMi02-LZZcS2D6qeEySfNIWf5ny01kfY,19
6
+ hestia_earth/models/version.py,sha256=YdTI02fIcHtygnhw1S3ojSKc9kpReMFy_DlUYJO0yXY,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
@@ -39,14 +39,15 @@ hestia_earth/models/cycle/coldDressedCarcassWeightPerHead.py,sha256=9i52CQHiqZjF
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
41
  hestia_earth/models/cycle/cycleDuration.py,sha256=ZgK6lQ8wmRv5uhM30OiV8ctqE4v8ldkBzzo23JlNwWY,1576
42
+ hestia_earth/models/cycle/endDate.py,sha256=YwXvYDO2dz5TxspsqRGIWOYFHj5PYtAL-DtCqEkxIvE,1396
42
43
  hestia_earth/models/cycle/energyContentLowerHeatingValue.py,sha256=AyVKCQbb3Pto3Ca__F0KJ_wlwTxbPd7mUyehZW7AJPM,2212
43
44
  hestia_earth/models/cycle/excretaKgMass.py,sha256=iA8Kfl3WvyxbQpx1QOGPQZ9O_Pc5rj7xhucYx3rB8Co,3949
44
45
  hestia_earth/models/cycle/excretaKgN.py,sha256=mgJTneQIYJ9Su-rTK5ppb_k3YhICFNWsfPZtGR98RI0,2968
45
46
  hestia_earth/models/cycle/excretaKgVs.py,sha256=ed-DcQoQXZgWF8UZDs2N-G6EBIOPmpXu3BD6jdmh0V0,2973
46
- hestia_earth/models/cycle/inorganicFertiliser.py,sha256=3pJRcbZ0OQSNkFq_YC4McpiwLvWJpnL29AhhmCxr7RI,6938
47
+ hestia_earth/models/cycle/inorganicFertiliser.py,sha256=Yt5NcP9FQEzWwlritrPGbhh2W9wR378OM3lDPBzDiL4,6967
47
48
  hestia_earth/models/cycle/irrigatedTypeUnspecified.py,sha256=KlIa5eDvT47Twz6Q1kpw0rMlRjCK25CExaW58DEvc9w,2125
48
49
  hestia_earth/models/cycle/liveAnimal.py,sha256=LWAMnNKRoLDdChrGApVIN-Ns7em0Lspz5UtLbf7PPLY,3988
49
- hestia_earth/models/cycle/milkYield.py,sha256=UNNlSJE_jHLp28oDPCOxEtq2YycY_JADuaPfdz0be6Y,5724
50
+ hestia_earth/models/cycle/milkYield.py,sha256=RhzePjkvEAGicTzRA4eatc0K_4NSGHhyEhYF0EbbGXw,5820
50
51
  hestia_earth/models/cycle/pastureGrass.py,sha256=7PrmDMJPtsbKGa8WIOh_4NXNtbH3Pxb23pmjawQuY9o,1226
51
52
  hestia_earth/models/cycle/pastureSystem.py,sha256=uksVgl_3bp_t2niwZ5BvS3VT-Kndx26Se6GpzqG0bX8,2709
52
53
  hestia_earth/models/cycle/readyToCookWeightPerHead.py,sha256=F4UtK1gSsIYqbQ1V2hSUszSrq2HFN5LdMB33Yc-bfTQ,2927
@@ -54,10 +55,12 @@ hestia_earth/models/cycle/residueBurnt.py,sha256=HwU1D9ibiIul-FlXDUcEMDEc_KxpB8u
54
55
  hestia_earth/models/cycle/residueIncorporated.py,sha256=9_s2RMOy5D20eq9ziDBEA_Y7RiFFMeK0bDJ65CW4qlE,2763
55
56
  hestia_earth/models/cycle/residueLeftOnField.py,sha256=qYxKGAdUORN7Vjqj7AZC2VGV_rM3MN0-padDGhgjiNU,2175
56
57
  hestia_earth/models/cycle/residueRemoved.py,sha256=jxDu_Jfcyd-rm-qo8ZuRIf-GGxtFBMpmGy1zHOavwy0,2135
57
- hestia_earth/models/cycle/siteDuration.py,sha256=Hox20n3Y-tJ4ydmkrOreWOXAENxOnd827B7qH7_66T0,1058
58
+ hestia_earth/models/cycle/siteDuration.py,sha256=XAxCA_51kQaWh4_0L_Y08cGn-qsMRUcyaPrn84rfafI,1058
59
+ hestia_earth/models/cycle/startDate.py,sha256=RTpA7NX5afktdQH0Z6c2SB7LCSi5R28aPcqq7Xn5lkw,1181
58
60
  hestia_earth/models/cycle/transformation.py,sha256=06KTfVubh2I47dfnG9Iv6AbuUBbURM8BAVOkRu7XmHw,1255
59
61
  hestia_earth/models/cycle/utils.py,sha256=ZcVwvRwVNK48jZfnhrHl2ai4a96YzcmRgO-eQXwQNjo,1408
60
62
  hestia_earth/models/cycle/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
+ hestia_earth/models/cycle/animal/milkYield.py,sha256=bx8oNw9tZkqSgcRlbxIL6V2nEHx-p0KJc31v7PaLKxI,2926
61
64
  hestia_earth/models/cycle/animal/properties.py,sha256=OGjRl79w-h439jTkjA8b4V61fMuo0McoUs3JrgK-0Zc,596
62
65
  hestia_earth/models/cycle/animal/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
66
  hestia_earth/models/cycle/animal/input/hestiaAggregatedData.py,sha256=Am0_brWKZmfiZC3qP6ZNlOXzkE1Eo3R45KrmvZrTRvQ,2505
@@ -84,10 +87,9 @@ hestia_earth/models/cycle/post_checks/cache.py,sha256=39zoY-eaYB7zb1R7YLsIdwozDF
84
87
  hestia_earth/models/cycle/post_checks/site.py,sha256=62Iylm986-ca2GL7uI0qlsjCCK9N1DXQfrakJZV28hQ,788
85
88
  hestia_earth/models/cycle/practice/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
89
  hestia_earth/models/cycle/practice/value.py,sha256=CQ1SkleHDkAtO0_xwcziJ9uCvz_Pr7W1HVOH5_meNdc,2039
87
- hestia_earth/models/cycle/pre_checks/__init__.py,sha256=v-_3pVblkF3ZpD4t_9OAmpsjeLXpBg2lt7VrjbcJfN4,350
90
+ hestia_earth/models/cycle/pre_checks/__init__.py,sha256=t35av4lLC54eZYhHJH0Nw4j2aZY_65t57Pan5dopbZk,320
88
91
  hestia_earth/models/cycle/pre_checks/cache_sources.py,sha256=jCynHYIqOVizBSPKWKip9-TXSi58NVParZd4ntR9LSY,899
89
92
  hestia_earth/models/cycle/pre_checks/site.py,sha256=n26QBpRTvUIZ-_SyD8D2_0Ny_JsFG1977ZKUaZAIFb0,870
90
- hestia_earth/models/cycle/pre_checks/startDate.py,sha256=nbaONwQPxyvK_Jd5Ux0iAFHzegM7-982uxgEA-wzSuw,1424
91
93
  hestia_earth/models/cycle/product/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
94
  hestia_earth/models/cycle/product/currency.py,sha256=lB1pCD1747Ke3oFoqjAKEHbIdHPfrHKNaJSni69iMUQ,2150
93
95
  hestia_earth/models/cycle/product/economicValueShare.py,sha256=bbEyasn6SoVRkQFfDq7tSfM0_xnfhen3MmjbDGLZN5o,7601
@@ -108,7 +110,7 @@ hestia_earth/models/emepEea2019/__init__.py,sha256=l90-pWrqIzt1ap1WNk0gF4iZeF5_T
108
110
  hestia_earth/models/emepEea2019/co2ToAirFuelCombustion.py,sha256=DfoGlB5HjA1gafO0OutJjfsA6yPP_PsAd-p16evwCiQ,1609
109
111
  hestia_earth/models/emepEea2019/n2OToAirFuelCombustionDirect.py,sha256=R3lRF5-Md4Jd7irvTe8WJZJPc9-wa1pD6UWVk7lnGtQ,1616
110
112
  hestia_earth/models/emepEea2019/nh3ToAirExcreta.py,sha256=lWo1AaorIk4HtTCQAND3RFbCHO-em1DbA5ZOxv0Ldn8,3750
111
- hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py,sha256=AGQwJX3GwI2PbV8fqW-do8EyaW8pgrQ7iVmzXNceJTg,6377
113
+ hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py,sha256=w9Cti3pBKVRsTbFJJorFy1-vREB0iIi9UkZKwRezOE4,6469
112
114
  hestia_earth/models/emepEea2019/noxToAirFuelCombustion.py,sha256=y49RvO5OkrZ4iK7o2Kmx5xW52y8SS9xEKAmlXlTQtWc,1609
113
115
  hestia_earth/models/emepEea2019/so2ToAirFuelCombustion.py,sha256=bo_0mFcwicpOkPsvZRAnL2tDBDRBAQqsPD_Wc5e20K4,1609
114
116
  hestia_earth/models/emepEea2019/utils.py,sha256=ikoZn3JPe9wz-_voVlIqVwh4jBgmnfKi2oyLhi7_7E4,1398
@@ -122,12 +124,12 @@ hestia_earth/models/faostat2018/coldCarcassWeightPerHead.py,sha256=y1ouj5FBrnGWx
122
124
  hestia_earth/models/faostat2018/coldDressedCarcassWeightPerHead.py,sha256=Aphq7r06Q5-RDer4i1CneOLifVQCKTiVPTIWE3AxLfE,3230
123
125
  hestia_earth/models/faostat2018/landTransformationFromCropland100YearAverage.py,sha256=2qVeSGMoJ15pD6-p0Fsq1yN-3mpL8SyOKkVuIiYoJMg,2655
124
126
  hestia_earth/models/faostat2018/landTransformationFromCropland20YearAverage.py,sha256=0vJHRIb4F2G_8MG9Qgz2n-7dYerG5q6r7pG-j84LKjk,2648
125
- hestia_earth/models/faostat2018/liveweightPerHead.py,sha256=7HRRupWiy7rmyEiWO2jLJflK1yoj_Dj82hggUOB05KQ,3126
127
+ hestia_earth/models/faostat2018/liveweightPerHead.py,sha256=3h8zveCVQ21ms2qtsQyAYeet-98TMkipL6QLEnyUcTU,5111
126
128
  hestia_earth/models/faostat2018/readyToCookWeightPerHead.py,sha256=b1_GZQ3oFl88w6TY5DqLSqXNaYX6TcRBK4R9M2cWSjM,3165
127
129
  hestia_earth/models/faostat2018/seed.py,sha256=ts9PKs9UnZnJ9nPFlL7etL1Qb9uIWIES8Mz8W7FWbOw,2917
128
- hestia_earth/models/faostat2018/utils.py,sha256=2rCxcWFAZ_A-3nvSHE3wMZEuLZs8cdSrXuL730nLvC4,3333
130
+ hestia_earth/models/faostat2018/utils.py,sha256=r69UWDdMOLTYkI8_oQeEnUCOAZCnmwj_NwyrypAOb_A,3734
129
131
  hestia_earth/models/faostat2018/product/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
- hestia_earth/models/faostat2018/product/price.py,sha256=VoWA9PyQKRFPiIv2woKLW3XNMh9Ayc4JHWZ97f5IYRk,8217
132
+ hestia_earth/models/faostat2018/product/price.py,sha256=J0G-Si0AnlER69FFbC8Lkwpn_05CtA8wV46KoFAYPm0,7757
131
133
  hestia_earth/models/geospatialDatabase/__init__.py,sha256=TH-FW3aoL7r1GquRChr7rde7uQonKQRDR00udG8tDrQ,957
132
134
  hestia_earth/models/geospatialDatabase/aware.py,sha256=cbxFnShXW8QUCIjU4uuO1DdK9KhYiLf41ZVjS9hSppI,1358
133
135
  hestia_earth/models/geospatialDatabase/clayContent.py,sha256=HWaswqkf1FZXcRHw8DrMvvpH2Uo3nbjX4C0D1tqyTBw,2710
@@ -158,13 +160,13 @@ hestia_earth/models/geospatialDatabase/temperatureLongTermAnnualMean.py,sha256=j
158
160
  hestia_earth/models/geospatialDatabase/temperatureMonthly.py,sha256=hJjbnTgefBtRwL5IJHaaPFtRvzTDv7l5nDI8vdadMCg,3353
159
161
  hestia_earth/models/geospatialDatabase/totalNitrogenPerKgSoil.py,sha256=kjP3ue-tlzMQNx2hBM56_CBBRa8Pcosmd2BPgyiNVW4,2081
160
162
  hestia_earth/models/geospatialDatabase/totalPhosphorusPerKgSoil.py,sha256=5oasLMYgfnPwSse0D8EEe_pV57AMusac853BgVSUh5E,2070
161
- hestia_earth/models/geospatialDatabase/utils.py,sha256=hKzR6wlVtkSyvCGcUKjI1YdvRk9mrNfvdmae4yHGLrM,6229
163
+ hestia_earth/models/geospatialDatabase/utils.py,sha256=tjc9Z1wkDzlZ0v82oy5fHwixak3YDq4QCZprNjnm5_M,6208
162
164
  hestia_earth/models/geospatialDatabase/waterDepth.py,sha256=Xy2UxwAJrgdOkcw59NetEHMt5vgRYE6qg4fgXb1ptlU,1643
163
165
  hestia_earth/models/globalCropWaterModel2008/__init__.py,sha256=vQxexzFCl2Uv2RiIJfcppkRi9RgzBsJ68yhVDK4GvAU,425
164
166
  hestia_earth/models/globalCropWaterModel2008/rootingDepth.py,sha256=pajS-6UWxqIqnzW0IjkgNm-2Vl3bMor2UZOQtQQERuc,4096
165
167
  hestia_earth/models/haversineFormula/__init__.py,sha256=o155nR-XI67iCSBVNYIu4sPRIF3C2Y1NnUZ6lfpi0Do,417
166
168
  hestia_earth/models/haversineFormula/transport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
- hestia_earth/models/haversineFormula/transport/distance.py,sha256=PyJ35ZaJdosgxwyORvgMZdVw7AF9r8bPMT592UYmRUE,4133
169
+ hestia_earth/models/haversineFormula/transport/distance.py,sha256=163KrmKzlEQuKYT1ZvpPgmKlv_-mmvxp0A1_uKya99w,4203
168
170
  hestia_earth/models/hyde32/__init__.py,sha256=hSOwDiK0M0NfmQbW_J7O_SZa8IsJMgITSHSVMsDS4KI,407
169
171
  hestia_earth/models/hyde32/landTransformationFromCropland100YearAverageDuringCycle.py,sha256=NzXqt_7UnU8LYpgadOfeIn5mMiPViVfmNu66jWB8jXk,2367
170
172
  hestia_earth/models/hyde32/landTransformationFromCropland20YearAverageDuringCycle.py,sha256=-UuJ_ctgy4kL_grYfqp9TZ6Kh23k91qsM0fpHqBrg1A,2363
@@ -210,7 +212,7 @@ hestia_earth/models/ipcc2006/n2OToAirCropResidueDecompositionIndirect.py,sha256=
210
212
  hestia_earth/models/ipcc2006/n2OToAirExcretaDirect.py,sha256=VvQTIh58JyhrdPk5FdJQBkjBDr5-Cv7CnGkNEcco3P4,1986
211
213
  hestia_earth/models/ipcc2006/n2OToAirExcretaIndirect.py,sha256=me1MLX2WI5A_VZ11774CRxwRC6seOaxgMg_GGYCckIk,2243
212
214
  hestia_earth/models/ipcc2006/n2OToAirInorganicFertiliserDirect.py,sha256=hhFioTDxWZ2g_SjDt0k5tq6P8AJrq48i65qUpAfW_sU,2144
213
- hestia_earth/models/ipcc2006/n2OToAirInorganicFertiliserIndirect.py,sha256=MNFyXPCLX_RqfRQkO0UzVIYVevpEBO3R2uh3sIoIycM,2863
215
+ hestia_earth/models/ipcc2006/n2OToAirInorganicFertiliserIndirect.py,sha256=Wy8-k96xq-auFW99w9KpBgX-mJ8Vf2ONPpP9nXkF4Fk,2863
214
216
  hestia_earth/models/ipcc2006/n2OToAirOrganicFertiliserDirect.py,sha256=MZUmA3ajGkpi4wr020OU6m4WJdujjKkRhUVsbPgUVb8,2094
215
217
  hestia_earth/models/ipcc2006/n2OToAirOrganicFertiliserIndirect.py,sha256=pgNG18EwgTA7kmVw9QFtucMn8ScVeEKJAsSPxcExbI8,2801
216
218
  hestia_earth/models/ipcc2006/n2OToAirOrganicSoilCultivationDirect.py,sha256=0J6ntZxYyLg3pUQeSQelDe36fb0nQtbMLjIBtwzHUyc,3038
@@ -226,9 +228,9 @@ hestia_earth/models/ipcc2019/carbonContent.py,sha256=I76bJaO1OYSrIjwDKxhwY-DZGZJ
226
228
  hestia_earth/models/ipcc2019/ch4ToAirEntericFermentation.py,sha256=khX90NjkmlvosyRZ77QxgwTKwg42Z_ftOWTTAanHViw,11420
227
229
  hestia_earth/models/ipcc2019/ch4ToAirExcreta.py,sha256=IzYHdnzT8Z-WQGoZIt9-O98VqriA5rKr38He_TbYadk,6723
228
230
  hestia_earth/models/ipcc2019/ch4ToAirFloodedRice.py,sha256=f3orp6tDZ7f8bE9-lLZC0H_SgCKsDASAlphVRAHKJ0I,6885
229
- hestia_earth/models/ipcc2019/co2ToAirLimeHydrolysis.py,sha256=VBNNt9q8Mku4jOog0MjT1wGbfHqtEjtYXqhqaIITwkU,2455
231
+ hestia_earth/models/ipcc2019/co2ToAirLimeHydrolysis.py,sha256=7z0zdqiiWQwkyJCgSNMoK2mft3cJkTRlqwKrMuSKdWI,2454
230
232
  hestia_earth/models/ipcc2019/co2ToAirSoilCarbonStockChangeManagementChange.py,sha256=lW3OZcIO3QEifrs_g_K_aytSXvpPFN51vYVuZRGIdDc,25367
231
- hestia_earth/models/ipcc2019/co2ToAirUreaHydrolysis.py,sha256=ICE3r8GMoHj6WfMUxQdqdejRpOLa3cxDMyF3GvSTW0U,3700
233
+ hestia_earth/models/ipcc2019/co2ToAirUreaHydrolysis.py,sha256=071H3ykjzJFW2K5PKvbAaeIj0aL8LTzMiG_pIeYEpEc,3520
232
234
  hestia_earth/models/ipcc2019/croppingDuration.py,sha256=_jlFrTNDOARH2_g8s4dzuaCoLHSX2BHzSQd3uuQN32Y,3173
233
235
  hestia_earth/models/ipcc2019/ligninContent.py,sha256=wp5EbCthCDAKyvPBfZULS9-uKEY58TQQ8ey1pf-juv8,7267
234
236
  hestia_earth/models/ipcc2019/n2OToAirCropResidueDecompositionDirect.py,sha256=Fand7NbT27unwgFTxi_9NxT024s63vQ7U6-tk9yp3d8,3990
@@ -248,8 +250,8 @@ hestia_earth/models/ipcc2019/no3ToGroundwaterInorganicFertiliser.py,sha256=wTvMB
248
250
  hestia_earth/models/ipcc2019/no3ToGroundwaterOrganicFertiliser.py,sha256=zOhp6NhYUuUNU_LMMwhZBP78YC2XRWRlGnajBUX2AN8,3095
249
251
  hestia_earth/models/ipcc2019/noxToAirInorganicFertiliser.py,sha256=D-UyzY55mOiIcXRzEtvPY-r1bDFgb9YqA08SmHsQeNA,4226
250
252
  hestia_earth/models/ipcc2019/noxToAirOrganicFertiliser.py,sha256=SVgVNp76bIv9oUjrZZuI6xYLo4Gw2DRU5tbp14gydOE,3911
251
- hestia_earth/models/ipcc2019/organicCarbonPerHa.py,sha256=_13qQlsaAljIKw4KbrGXEMnc0Do3N3TiKypBToGj52c,140870
252
- hestia_earth/models/ipcc2019/pastureGrass.py,sha256=CpDEtdnbKd_8eaDLcflJ-dGik3t879HIoEIzuaHNmC0,23168
253
+ hestia_earth/models/ipcc2019/organicCarbonPerHa.py,sha256=omxrtnAZ58qHQYIhi38R7VFn7SRzf8Kk89KgP0VELFQ,141507
254
+ hestia_earth/models/ipcc2019/pastureGrass.py,sha256=ntgDsXYIJA3xN5Cn2VzlZ2zDItTb6jXwONOW4VSfFqA,23177
253
255
  hestia_earth/models/ipcc2019/utils.py,sha256=MSDMu15D9DnilFUgi4_6jYXC0FaKso3OODauGTMB6hs,6229
254
256
  hestia_earth/models/ipcc2021/__init__.py,sha256=VTgGFKhwMmk_nuI1RRq0in27fHYVPBonlXlPK00K8no,409
255
257
  hestia_earth/models/ipcc2021/gwp100.py,sha256=v-DYU-11XnWI1Ns1GEiKrJqL3JafxvhTsLmuBuFcxJU,1021
@@ -348,10 +350,10 @@ hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystems
348
350
  hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsPhotochemicalOzoneFormation.py,sha256=t8DTybm_3DIlvtpSJP-KBWsgp0SKe4d_pw2Y0BKGxMg,1175
349
351
  hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsTerrestrialAcidification.py,sha256=U74max756dWZLVbLNUAHcHeUiHADLxuvRbvpJc4eSLc,1182
350
352
  hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsTerrestrialEcotoxicity.py,sha256=-8e8-lt0yByEcVbk7bTF4-z3t51w5iQKVdZ5bgYsyJg,1063
351
- hestia_earth/models/linkedImpactAssessment/__init__.py,sha256=fSO3M1dmQD6fuEZkzJycscjUf7HtjQyoV8u2W7ItvSk,6236
353
+ hestia_earth/models/linkedImpactAssessment/__init__.py,sha256=d19wzr4GnWXpMWRhchqwp3S8txrUkpIWrGPwnWdXhjI,6236
352
354
  hestia_earth/models/mocking/__init__.py,sha256=kmSeOTSvurMUxw7Ajhf3G-SVPQ1NgmirMTk4TSOEicY,765
353
355
  hestia_earth/models/mocking/mock_search.py,sha256=V-ycVBTkJu7PP37Ivy_16hpKBV4aEtJb5S9DfChPNSU,2038
354
- hestia_earth/models/mocking/search-results.json,sha256=FIdOQLItwJDbNc79gILosT0PVCvFBueaL2XRMYVDHHw,39085
356
+ hestia_earth/models/mocking/search-results.json,sha256=4jtf6WHW7XorahPkYbGLFzjW19pM4iSgBmjcPa-v18A,39322
355
357
  hestia_earth/models/pooreNemecek2018/__init__.py,sha256=nPboL7ULJzL5nJD5q7q9VOZt_fxbKVm8fmn1Az5YkVY,417
356
358
  hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py,sha256=Qt-mel4dkhK6N5uUOutNOinCTFjbjtGzITaaI0LvYc4,2396
357
359
  hestia_earth/models/pooreNemecek2018/belowGroundCropResidue.py,sha256=JT0RybbvWVlo01FO8K0Yj41HrEaJT3Kj1xfayr2X-xw,2315
@@ -440,13 +442,14 @@ hestia_earth/models/schererPfister2015/pToSurfaceWaterSoilFlux.py,sha256=CuqIsy3
440
442
  hestia_earth/models/schererPfister2015/utils.py,sha256=LEvz9guqto0kuF5rXcQjgYsD3CvEmORvJQqRA1f7uMI,3130
441
443
  hestia_earth/models/schmidt2007/__init__.py,sha256=xheSN6LOGXpWx7Hnv83onhe60Xk1_jk1PJg1nH_aZOQ,412
442
444
  hestia_earth/models/schmidt2007/ch4ToAirWasteTreatment.py,sha256=-N5uLvVHlA2djOs_lwR_8RmbeCfkPw5p3vmbqG2kzkI,1474
445
+ hestia_earth/models/schmidt2007/h2SToAirWasteTreatment.py,sha256=f8a5ZRuCltpO8GWwQ0l1laWrw2yPGqOPaq8j6ZOJFTE,1474
443
446
  hestia_earth/models/schmidt2007/n2OToAirWasteTreatmentDirect.py,sha256=3i7tgar2DODXzug36HBAbbx94ybst15Efode7AzvVEs,1480
444
447
  hestia_earth/models/schmidt2007/nh3ToAirWasteTreatment.py,sha256=yGrw7LHTrgRU_LyUsdl96TO6omEZju7JaBbW_A8ufX4,1474
445
448
  hestia_earth/models/schmidt2007/utils.py,sha256=pQ76IBWMwi10Wa5PjsehtdnOMw-GVgDtB4nLGYKT-Ic,812
446
449
  hestia_earth/models/site/__init__.py,sha256=aVuLLhq0OQVm-_MZoq4JAKMidqexUWJBg_7mmojmDzc,405
447
450
  hestia_earth/models/site/cationExchangeCapacityPerKgSoil.py,sha256=0eH4A-tXJ0hvIkiYXWxlx8TfrdbIKUGYUDk97-yQJgg,3653
448
451
  hestia_earth/models/site/flowingWater.py,sha256=0ZuSXMr3EUTY3wsy8hdfuXeZcNX-n3D45MfX3dwyaeA,1728
449
- hestia_earth/models/site/management.py,sha256=FSSOiisV87nmqQ32ww3ElwspyDS8JvkxOXhUEsUj-gw,8555
452
+ hestia_earth/models/site/management.py,sha256=gYmFaWIYtki112b3A3qf_1hLl9bb98T6oYMG4KbaXzQ,8628
450
453
  hestia_earth/models/site/netPrimaryProduction.py,sha256=UIIQkYd911qVzrWjxBLrC37e-RARIVgDwLdARY9BuLw,1849
451
454
  hestia_earth/models/site/organicCarbonPerHa.py,sha256=gcmhZavc2EWvkroKkpFM5xXowPTgyXGh1XL6lgs3CX4,14303
452
455
  hestia_earth/models/site/organicCarbonPerKgSoil.py,sha256=t--wAshiAKS-JvEKhLFRadGvgSBv5NFZ68jdyms_wh4,1945
@@ -470,7 +473,7 @@ hestia_earth/models/site/measurement/value.py,sha256=7IhUbIj7n5vB7yXoNxXsWbliEJj
470
473
  hestia_earth/models/site/post_checks/__init__.py,sha256=CkExxesk1GuG8NjrbKfix1iDuVUgU-9i1ccM_X7MZn4,284
471
474
  hestia_earth/models/site/post_checks/cache.py,sha256=_MZsNsclecUdHDT2MsYx4cEsVUXydIasddgZNA6SU4k,284
472
475
  hestia_earth/models/site/pre_checks/__init__.py,sha256=fjv6nU5fiL-CLyaa-cBpiLB-xujgPzeK7i7ZJuTOjCI,394
473
- hestia_earth/models/site/pre_checks/cache_geospatialDatabase.py,sha256=XmAJAohSQQwbjqx-xTqB6LuU4lyz5lcG8njVuWFDGsU,4820
476
+ hestia_earth/models/site/pre_checks/cache_geospatialDatabase.py,sha256=K-6EvJvcBijo_gVeIlOtYsYwdM9iBVTBy0jOSmr4OL4,4831
474
477
  hestia_earth/models/site/pre_checks/cache_sources.py,sha256=RzvSgHJTpVkAB3mEvRju_irDQmdJRK7GUdU6PhS2Gaw,904
475
478
  hestia_earth/models/site/pre_checks/cache_years.py,sha256=qGwTaHlWxnVT7iVxXVcpJ-oG6M-VH4ZpCDTdTixUHR4,883
476
479
  hestia_earth/models/stehfestBouwman2006/__init__.py,sha256=EhvD4NK6oEPevusLb1WdYV3GT_fCtQx4gvdMhK_dEIQ,420
@@ -503,11 +506,11 @@ hestia_earth/models/transformation/product/__init__.py,sha256=47DEQpj8HBSa-_TImW
503
506
  hestia_earth/models/transformation/product/excreta.py,sha256=Yj9wMF5if-zivb6qbN3vy1X51ZNYxvoyG9f4KPp3Y18,5700
504
507
  hestia_earth/models/usetoxV2/__init__.py,sha256=pK37V3H-KvYcvRKw4Mv8CWrB2N0LFLzmv0jKLdhGGqs,409
505
508
  hestia_earth/models/usetoxV2/freshwaterEcotoxicityPotentialCtue.py,sha256=oYNwThnMXjZymif5buyHiczFiOq_61jOdDMOAyy8vwQ,1018
506
- hestia_earth/models/utils/__init__.py,sha256=-kuwCLmQOihU3n1RxqhojRa3Izd6PGOqA30k7qKl4vc,4275
509
+ hestia_earth/models/utils/__init__.py,sha256=XBoIFLfdddas7ser6X1TxFL8bHipnmYn83KjY33sTXc,4379
507
510
  hestia_earth/models/utils/aggregated.py,sha256=sz6usleZmo_tC_hIvmGgYsX8-H0dulXmmhHK4EkA5Kg,4946
508
- hestia_earth/models/utils/animalProduct.py,sha256=JA-xGQiwsz-VPR_8UfI5hKa918bpQOWIok3--b_iVuM,681
511
+ hestia_earth/models/utils/animalProduct.py,sha256=M5IunAKGY6oZv3j1Ascl34ywyeLWApqOIlBzbtlA2FE,721
509
512
  hestia_earth/models/utils/aquacultureManagement.py,sha256=3uSTSMDNNPa26NTJGZCYwByv3QZVyxj6bh2aFCoBzHk,126
510
- hestia_earth/models/utils/blank_node.py,sha256=Yubi--CeQDSrkbZOh7PQ-IL3foe74yH9YGrPrO6nxfM,40822
513
+ hestia_earth/models/utils/blank_node.py,sha256=VviIxvHSTxKYr0KaWR56b2ro1WEN-BwKvQ5LndyWgks,40879
511
514
  hestia_earth/models/utils/completeness.py,sha256=gRl8LkAYmanEZf9ln8IrQPXtW1Ds75rvu1ST0g5-2zI,1246
512
515
  hestia_earth/models/utils/constant.py,sha256=5H7odhRwU_LmUhYwf8c1LsdqXSYbLWkuknvtRDqUBTQ,3194
513
516
  hestia_earth/models/utils/crop.py,sha256=S8UycHpkgx_TznW3Q7pchEMlCQ623T_SqU6V5fBLBLc,1520
@@ -529,10 +532,10 @@ hestia_earth/models/utils/lookup.py,sha256=3tXnOaTGF91NhL9NsM0hQ05Vm_bQQG6aNgC5d
529
532
  hestia_earth/models/utils/measurement.py,sha256=7ePiS9ZnI8AbnFqMS75m1g_UYLqK2RYPi372Ok2R7dA,8062
530
533
  hestia_earth/models/utils/pesticideAI.py,sha256=oAQTUlgXnSJrBGvIphlmVcjx2gbCHH6k5zqfuitJD_I,2789
531
534
  hestia_earth/models/utils/practice.py,sha256=tNadOzsrNlCEt801B815XaruJXzZ5yPASam7B3sWpXE,1091
532
- hestia_earth/models/utils/product.py,sha256=XwxrRwdREWc4N5cE0oLJbLdEucKFRKgKNDj-Kd8mZEQ,9837
535
+ hestia_earth/models/utils/product.py,sha256=H9UqJNzTqtMWXDQnbRkZlTpv_hg4s-Tya469fBk8InA,10143
533
536
  hestia_earth/models/utils/productivity.py,sha256=bUBVCZInGqHuHZvHDSYPQkjWXQxOtTjEk-1-f_BsFOo,594
534
- hestia_earth/models/utils/property.py,sha256=7UV9pxSX49RnUsbEqOeohzxyXXShao1XAnEYCCVKS0k,4923
535
- hestia_earth/models/utils/site.py,sha256=OhSpyDqVwnIglBtoa3iUImzVr0Xj254oYR1wMiAiOHs,3176
537
+ hestia_earth/models/utils/property.py,sha256=XSSPRUJm6fcc4kJWjZ8A_ZCie7h3QsjwlUg2wDWytdQ,5002
538
+ hestia_earth/models/utils/site.py,sha256=oLuai82WdN_qAAG09XmLEbhf7-jr7AT7BGxRBUs1Bno,3292
536
539
  hestia_earth/models/utils/source.py,sha256=HhZkvQoFdy6j6FC2cwP5EbHXHFM4pif9gpnuzeDwEh4,1746
537
540
  hestia_earth/models/utils/temperature.py,sha256=ljlG4-yCgFFb6LRZweb18cZKLrr7K2mqd4E4Hz_D1f8,476
538
541
  hestia_earth/models/utils/term.py,sha256=XH3-xTkv8WNB0obOjo6Y5YLT8B3zcON6Z-JeskCsCXY,17112
@@ -579,6 +582,7 @@ tests/models/cycle/test_completeness.py,sha256=Ku1ZSApGaACkXe3ae14yP01C4GssHMwlP
579
582
  tests/models/cycle/test_concentrateFeed.py,sha256=tgkThL4g293CexLvb89ftO9UqUbHhNOxiP6QMmsqCCo,2013
580
583
  tests/models/cycle/test_cropResidueManagement.py,sha256=vQWl7rDYLJjiKyBQlCiOA76LpzM4dI2t7JJ30uF8H9M,2020
581
584
  tests/models/cycle/test_cycleDuration.py,sha256=jD9L6eGwi0woUMpqcGm6MxP_Wvh_H6FCSmiHME5eOZc,1296
585
+ tests/models/cycle/test_endDate.py,sha256=SY04-jtp9dAaCJpFv8Ef09jhUmsB0IWRphWrilR_wv4,649
582
586
  tests/models/cycle/test_energyContentLowerHeatingValue.py,sha256=96QQXbuNPySy7TB76DHg1DoC2YsXp32tpnBM39VJ2Bs,1114
583
587
  tests/models/cycle/test_excretaKgMass.py,sha256=xpuq0k5HKvnGmWdJy0GmIv6A4xYk2VDFB4BMb8J2Z0g,2925
584
588
  tests/models/cycle/test_excretaKgN.py,sha256=xoe0PF-DwhVkihN-1BonUa7u_QNM9lr7CmGXsOozQ0Y,1090
@@ -598,8 +602,10 @@ tests/models/cycle/test_residueIncorporated.py,sha256=esB_wnpf6W0PB24HW0YUgtfD9m
598
602
  tests/models/cycle/test_residueLeftOnField.py,sha256=_8CoSp-7z3BBLGN5Hv067FRYz8yDFw5fi_Cu5n6Rl3g,1290
599
603
  tests/models/cycle/test_residueRemoved.py,sha256=R5v8lwGyz_4a9_X_LnugBEmgVgcisS5LTM5GFCtKIco,1278
600
604
  tests/models/cycle/test_siteDuration.py,sha256=3VS9oyEey_dkaIaKtXfnxfARkfSmZbbM-Px0_lvqxQM,881
605
+ tests/models/cycle/test_startDate.py,sha256=on3OdP7HtR005cQUTiFbiz_iQ7pX53WZ368wYYBHbks,556
601
606
  tests/models/cycle/test_transformations.py,sha256=Ws_8KhNqeHogGFXTQ4qZXQ5Ph2I3ZUaY0yO1itFUHLk,464
602
607
  tests/models/cycle/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
608
+ tests/models/cycle/animal/test_milkYield.py,sha256=e3FX8ikrS7nNeOuy8K7rNLs577odN5xrFohUWQw-tag,1323
603
609
  tests/models/cycle/animal/test_properties.py,sha256=MwpvaRKaqpM8o3p5efgPtnyJMIP4W55TEL4hYfUJV90,567
604
610
  tests/models/cycle/animal/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
605
611
  tests/models/cycle/animal/input/test_hestiaAggregatedData.py,sha256=19rTpeoktPFMyOSolACMJkSe2p96xLsXAeRVjND0WbY,1229
@@ -623,7 +629,6 @@ tests/models/cycle/practice/test_value.py,sha256=sYPoTkllrEt2oB92uA2q37FFtOjSX49
623
629
  tests/models/cycle/pre_checks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
624
630
  tests/models/cycle/pre_checks/test_cache_sources.py,sha256=tvk7E1LlJSq2Sb2MKBRlxWQBCUCHaSbM9ndTsg4d9ik,797
625
631
  tests/models/cycle/pre_checks/test_site.py,sha256=2JTrsOXVGfNn7FlLiX7DPNs6AHdeZuVvjNZP6SCjEII,694
626
- tests/models/cycle/pre_checks/test_startDate.py,sha256=DEEmXhbN5_RpzXOugRsX17vXQyT-ZmuD6K1S4G6NXMA,1122
627
632
  tests/models/cycle/product/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
628
633
  tests/models/cycle/product/test_currency.py,sha256=r7TA0FDDS9U50-FolEMXESi4pvSmwXnQxAHrQh0lRjA,1222
629
634
  tests/models/cycle/product/test_economicValueShare.py,sha256=58EsOw5nZWGTsKK_LFblIz3YwmCXROT-GffHojmd674,4417
@@ -653,11 +658,11 @@ tests/models/faostat2018/test_coldCarcassWeightPerHead.py,sha256=RImhLygwrJ2RoEH
653
658
  tests/models/faostat2018/test_coldDressedCarcassWeightPerHead.py,sha256=hZVKMtf-F5Iz7igZVahDJoqzfm2VtcIlwWBPCry7kqw,1594
654
659
  tests/models/faostat2018/test_landTransformationFromCropland100YearAverage.py,sha256=AkDXj4qNKgbu5xRbw9u_cUibnVSnAK1CN8pc4IjK9fk,1263
655
660
  tests/models/faostat2018/test_landTransformationFromCropland20YearAverage.py,sha256=L03Xh1QbbXc9yGdMoHGNmyCpu9WKANNiEE73NoBSqxk,1260
656
- tests/models/faostat2018/test_liveweightPerHead.py,sha256=KrjbvyWmnGS-Wy_B5ZSNbo93RlOwQc0ieJ2HEawgkgI,1856
661
+ tests/models/faostat2018/test_liveweightPerHead.py,sha256=1gnezEdoWvb8Hu-W6YCD3ffI0hAYM8giz9Sl1YxgQDM,4500
657
662
  tests/models/faostat2018/test_readyToCookWeightPerHead.py,sha256=pMDcONs0WUvANcJ6_OPF7TBwMF45JGMxFRPNPtHLqVI,1570
658
663
  tests/models/faostat2018/test_seed.py,sha256=tUXoNVveX0m0ed9UXB4zXxIZsPxktXyUXlbWuUKG0sQ,1705
659
664
  tests/models/faostat2018/product/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
660
- tests/models/faostat2018/product/test_price.py,sha256=GolnQfcsGRmpyr9_A3_c-ySaywHHlZeY4sHUM39JSFA,3860
665
+ tests/models/faostat2018/product/test_price.py,sha256=vUTT-FZVbXnDrwQVOgq8PWTDuFK_gAT6aqJ9ZK6Qcsc,3493
661
666
  tests/models/geospatialDatabase/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
662
667
  tests/models/geospatialDatabase/test_aware.py,sha256=tbBBvXrOqdO0cMPJTa02UfhlwfosH8iNoJLzZNFs1NU,857
663
668
  tests/models/geospatialDatabase/test_clayContent.py,sha256=KdkmsJMB1FsJXZCggcGWh3LlDKDDlwvcmSLEhZpdM_g,1177
@@ -777,7 +782,7 @@ tests/models/ipcc2019/test_no3ToGroundwaterInorganicFertiliser.py,sha256=e7REnQ9
777
782
  tests/models/ipcc2019/test_no3ToGroundwaterOrganicFertiliser.py,sha256=e1ZViD12qB3bLdH3TJw3GbBP8iqMen-UJbcFkytb3VQ,1609
778
783
  tests/models/ipcc2019/test_noxToAirInorganicFertiliser.py,sha256=NZBSBJLM_j2PEpHRON2ysgKNF8x5sHfQVoAKQdGsfzk,1537
779
784
  tests/models/ipcc2019/test_noxToAirOrganicFertiliser.py,sha256=LR5pjV5vRbgSSQAw8kYRp_ij4CHInzgaDS6EggQuBiw,1104
780
- tests/models/ipcc2019/test_organicCarbonPerHa.py,sha256=iUKKqTModA2ZC_EU6gQ4pzxJ1YN3rV1iUJQa932fiJ0,20529
785
+ tests/models/ipcc2019/test_organicCarbonPerHa.py,sha256=TO3ubi8z8-iYEAdf295Z30ft5W1652GPkmaiQCb7QN4,23197
781
786
  tests/models/ipcc2019/test_pastureGrass.py,sha256=pE4PWdR541v4xWDYihP7Dou8V1iqg5GwD5_rjGRzrds,2292
782
787
  tests/models/ipcc2021/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
783
788
  tests/models/ipcc2021/test_gwp100.py,sha256=JRklKMSg-OXopb9ZufGgl94deuMuJSsfNXRZDBtOZrE,1119
@@ -962,6 +967,7 @@ tests/models/schererPfister2015/test_pToGroundwaterSoilFlux.py,sha256=lOTL-ue6hE
962
967
  tests/models/schererPfister2015/test_pToSurfaceWaterSoilFlux.py,sha256=1VJo9q-Kb2OboK2RMp3-bkP6lXfkFbqMz1ACJC75FWw,1441
963
968
  tests/models/schmidt2007/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
964
969
  tests/models/schmidt2007/test_ch4ToAirWasteTreatment.py,sha256=5VSxT6sEbNp6c4Y07WzJGFDwVnjJbziG9HmbJNF6r6A,1454
970
+ tests/models/schmidt2007/test_h2SToAirWasteTreatment.py,sha256=7UH5nCZJaVbjMLTksSYSFvKtr98ulZwT4TxKhZDhXQw,1454
965
971
  tests/models/schmidt2007/test_n2OToAirWasteTreatmentDirect.py,sha256=xgikZTGcDqiYdT4b1lR-2g7SQEIenV2-RSzeB68dqRM,1460
966
972
  tests/models/schmidt2007/test_nh3ToAirWasteTreatment.py,sha256=22x5Hc0keF41LYMKvARrJvmPtOjIKJ6vCrF2d8AOyAc,1454
967
973
  tests/models/schmidt2007/test_utils.py,sha256=rmtOV3xiFynjgx8lQNGsJqquG8HDxz3LDmh1efN8AkI,1278
@@ -1023,7 +1029,7 @@ tests/models/transformation/product/test_excreta.py,sha256=Q9OQpk8qVPv3alIz2i5XQ
1023
1029
  tests/models/usetoxV2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1024
1030
  tests/models/usetoxV2/test_freshwaterEcotoxicityPotentialCtue.py,sha256=eq7Gcmfya9g0eOKKkuBhz8vq7xi_CmZ_LTSxueBwZt4,835
1025
1031
  tests/models/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1026
- tests/models/utils/test_blank_node.py,sha256=T1-JRrWcK6oFavYAEy7gt2iojnTdNgoX2WDc08-4h-I,31333
1032
+ tests/models/utils/test_blank_node.py,sha256=hgom8mJPWqylnf4AfLgVlbYgAHAEcH8DngOdFidFMcw,34343
1027
1033
  tests/models/utils/test_cropResidueManagement.py,sha256=RQt8lexeJzCyxZceIutgDpw7BpcqmjsUB0C0yZC2QpY,930
1028
1034
  tests/models/utils/test_currency.py,sha256=BPsojPsY9QW2aj8vgbjkPQXU8GU6wDwwtPZ3HdC4KTU,277
1029
1035
  tests/models/utils/test_cycle.py,sha256=evTHH73ftNVhv5vHlYE2973msKE4pSCd3D0GfX1ZPUA,465
@@ -1043,8 +1049,8 @@ tests/models/utils/test_source.py,sha256=mv3vHZV5cjpoLA2I1109-YUkuzAiuhbRSnv_76_
1043
1049
  tests/models/utils/test_term.py,sha256=M5Sa26v2gzQYbZ4H_fo7DspnaCx__-WtL-MULGapCWk,3509
1044
1050
  tests/models/webbEtAl2012AndSintermannEtAl2012/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1045
1051
  tests/models/webbEtAl2012AndSintermannEtAl2012/test_nh3ToAirOrganicFertiliser.py,sha256=qi2FNXS5Af2WDtm7nq_FsprH3BfCF0XxnE0XHmC4aIY,2244
1046
- hestia_earth_models-0.59.5.dist-info/LICENSE,sha256=EFSZhfUdZCTsCIYdHzTGewMKfRfp7X9t1s2aaKxm8O0,1154
1047
- hestia_earth_models-0.59.5.dist-info/METADATA,sha256=nswhxTNJU9lqQpd8DbRhIXzP2QgBYed7LLoAbLUmkSw,3134
1048
- hestia_earth_models-0.59.5.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
1049
- hestia_earth_models-0.59.5.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1050
- hestia_earth_models-0.59.5.dist-info/RECORD,,
1052
+ hestia_earth_models-0.59.7.dist-info/LICENSE,sha256=EFSZhfUdZCTsCIYdHzTGewMKfRfp7X9t1s2aaKxm8O0,1154
1053
+ hestia_earth_models-0.59.7.dist-info/METADATA,sha256=ZIvcMUOqXgRxksT65t2aFMM4hzvl0Wox15BJuffBBGo,3134
1054
+ hestia_earth_models-0.59.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
1055
+ hestia_earth_models-0.59.7.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1056
+ hestia_earth_models-0.59.7.dist-info/RECORD,,
@@ -0,0 +1,43 @@
1
+ from unittest.mock import patch
2
+ import json
3
+
4
+ from tests.utils import fixtures_path, fake_new_practice
5
+ from hestia_earth.models.cycle.animal.milkYield import MODEL, MODEL_KEY, run, _should_run
6
+
7
+ class_path = f"hestia_earth.models.{MODEL}.animal.{MODEL_KEY}"
8
+ fixtures_folder = f"{fixtures_path}/{MODEL}/animal/{MODEL_KEY}"
9
+
10
+
11
+ def test_should_run():
12
+ # without liveAnimal => no run
13
+ cycle = {'animals': []}
14
+ should_run, *args = _should_run(cycle)
15
+ assert not should_run
16
+
17
+ # with liveAnimal => run
18
+ cycle = {'animals': [{'term': {'termType': 'liveAnimal'}}]}
19
+ should_run, *args = _should_run(cycle)
20
+ assert should_run is True
21
+
22
+
23
+ def test_run():
24
+ with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
25
+ cycle = json.load(f)
26
+
27
+ with open(f"{fixtures_folder}/result.jsonld", encoding='utf-8') as f:
28
+ expected = json.load(f)
29
+
30
+ value = run(cycle)
31
+ assert value == expected
32
+
33
+
34
+ @patch(f"{class_path}._new_practice", side_effect=fake_new_practice)
35
+ def test_run_with_offspring(*args):
36
+ with open(f"{fixtures_folder}/with-offspring/cycle.jsonld", encoding='utf-8') as f:
37
+ cycle = json.load(f)
38
+
39
+ with open(f"{fixtures_folder}/with-offspring/result.jsonld", encoding='utf-8') as f:
40
+ expected = json.load(f)
41
+
42
+ value = run(cycle)
43
+ assert value == expected
@@ -0,0 +1,24 @@
1
+ from hestia_earth.models.cycle.endDate import _should_run, run
2
+
3
+
4
+ def test_should_run():
5
+ # no endDate => no run
6
+ cycle = {}
7
+ should_run = _should_run(cycle)
8
+ assert not should_run
9
+
10
+ # with endDate full date => no run
11
+ cycle['endDate'] = '2020-01-01'
12
+ should_run = _should_run(cycle)
13
+ assert not should_run
14
+
15
+ # with endDate missing days => run
16
+ cycle['endDate'] = '2020-01'
17
+ should_run = _should_run(cycle)
18
+ assert should_run is True
19
+
20
+
21
+ def test_run():
22
+ assert run({'endDate': '2020-01'}) == '2020-01-31'
23
+ assert run({'endDate': '2020-02'}) == '2020-02-29'
24
+ assert run({'endDate': '2020'}) == '2020-12-31'
@@ -0,0 +1,22 @@
1
+ from hestia_earth.models.cycle.startDate import _should_run, run
2
+
3
+
4
+ def test_should_run():
5
+ # no startDate => no run
6
+ cycle = {}
7
+ should_run = _should_run(cycle)
8
+ assert not should_run
9
+
10
+ # with startDate full date => no run
11
+ cycle['startDate'] = '2020-01-01'
12
+ should_run = _should_run(cycle)
13
+ assert not should_run
14
+
15
+ # with startDate missing days => run
16
+ cycle['startDate'] = '2020-01'
17
+ should_run = _should_run(cycle)
18
+ assert should_run is True
19
+
20
+
21
+ def test_run():
22
+ assert run({'startDate': '2020-01'}) == '2020-01-01'