hestia-earth-models 0.59.7__py3-none-any.whl → 0.60.0__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.
- hestia_earth/models/cache_sites.py +4 -2
- hestia_earth/models/ipcc2019/animal/__init__.py +0 -0
- hestia_earth/models/ipcc2019/animal/pastureGrass.py +298 -0
- hestia_earth/models/ipcc2019/{co2ToAirSoilCarbonStockChangeManagementChange.py → co2ToAirSoilOrganicCarbonStockChangeManagementChange.py} +2 -2
- hestia_earth/models/ipcc2019/pastureGrass.py +73 -447
- hestia_earth/models/ipcc2019/pastureGrass_utils.py +415 -0
- hestia_earth/models/mocking/search-results.json +215 -207
- hestia_earth/models/site/pre_checks/cache_geospatialDatabase.py +14 -2
- hestia_earth/models/utils/completeness.py +17 -14
- hestia_earth/models/utils/feedipedia.py +23 -23
- hestia_earth/models/utils/property.py +3 -1
- hestia_earth/models/version.py +1 -1
- {hestia_earth_models-0.59.7.dist-info → hestia_earth_models-0.60.0.dist-info}/LICENSE +1 -1
- {hestia_earth_models-0.59.7.dist-info → hestia_earth_models-0.60.0.dist-info}/METADATA +1 -1
- {hestia_earth_models-0.59.7.dist-info → hestia_earth_models-0.60.0.dist-info}/RECORD +39 -34
- tests/models/cycle/animal/input/test_properties.py +3 -1
- tests/models/cycle/animal/test_properties.py +4 -2
- tests/models/cycle/input/test_properties.py +3 -1
- tests/models/cycle/product/test_properties.py +2 -1
- tests/models/cycle/test_coldCarcassWeightPerHead.py +1 -0
- tests/models/cycle/test_coldDressedCarcassWeightPerHead.py +1 -0
- tests/models/cycle/test_energyContentLowerHeatingValue.py +1 -0
- tests/models/cycle/test_feedConversionRatio.py +10 -0
- tests/models/cycle/test_readyToCookWeightPerHead.py +1 -0
- tests/models/ipcc2006/test_n2OToAirCropResidueDecompositionDirect.py +4 -1
- tests/models/ipcc2019/animal/__init__.py +0 -0
- tests/models/ipcc2019/animal/test_pastureGrass.py +45 -0
- tests/models/ipcc2019/test_ch4ToAirEntericFermentation.py +32 -8
- tests/models/ipcc2019/{test_co2ToAirSoilCarbonStockChangeManagementChange.py → test_co2ToAirSoilOrganicCarbonStockChangeManagementChange.py} +1 -1
- tests/models/ipcc2019/test_n2OToAirCropResidueDecompositionDirect.py +6 -1
- tests/models/ipcc2019/test_n2OToAirInorganicFertiliserDirect.py +6 -1
- tests/models/ipcc2019/test_n2OToAirOrganicFertiliserDirect.py +6 -1
- tests/models/ipcc2019/test_pastureGrass.py +32 -8
- tests/models/pooreNemecek2018/test_excretaKgN.py +5 -0
- tests/models/pooreNemecek2018/test_excretaKgVs.py +5 -0
- tests/models/pooreNemecek2018/test_no3ToGroundwaterSoilFlux.py +1 -0
- tests/models/test_cache_sites.py +22 -7
- {hestia_earth_models-0.59.7.dist-info → hestia_earth_models-0.60.0.dist-info}/WHEEL +0 -0
- {hestia_earth_models-0.59.7.dist-info → hestia_earth_models-0.60.0.dist-info}/top_level.txt +0 -0
|
@@ -47,6 +47,14 @@ def cache_site_results(results: list, collections: list, area_size: int = None):
|
|
|
47
47
|
)
|
|
48
48
|
|
|
49
49
|
|
|
50
|
+
def _is_collection_by_year(collection: dict):
|
|
51
|
+
return any([
|
|
52
|
+
'year' in collection,
|
|
53
|
+
'start_date' in collection,
|
|
54
|
+
'end_date' in collection
|
|
55
|
+
])
|
|
56
|
+
|
|
57
|
+
|
|
50
58
|
def _extend_collection_by_month(year: int):
|
|
51
59
|
return [{
|
|
52
60
|
'start_date': first_day_of_month(year, month).strftime('%Y-%m-%d'),
|
|
@@ -77,10 +85,12 @@ def _extend_collections(values: list, years: list = []):
|
|
|
77
85
|
])
|
|
78
86
|
|
|
79
87
|
|
|
80
|
-
def list_collections(years: list = [], include_region: bool = False):
|
|
88
|
+
def list_collections(years: list = [], include_region: bool = False, years_only: bool = False):
|
|
81
89
|
ee_params = list_ee_params()
|
|
82
90
|
# only cache `raster` results as can be combined in a single query
|
|
83
91
|
rasters = [value for value in ee_params if value.get('params').get('ee_type') == 'raster']
|
|
92
|
+
rasters = _extend_collections(rasters, years or [])
|
|
93
|
+
rasters = [raster for raster in rasters if not years_only or _is_collection_by_year(raster)]
|
|
84
94
|
|
|
85
95
|
vectors = [
|
|
86
96
|
value for value in ee_params if all([
|
|
@@ -88,8 +98,10 @@ def list_collections(years: list = [], include_region: bool = False):
|
|
|
88
98
|
include_region or not value.get('params').get('collection', '').startswith('gadm36')
|
|
89
99
|
])
|
|
90
100
|
]
|
|
101
|
+
# no vectors are running with specific years
|
|
102
|
+
vectors = [] if years_only else _extend_collections(vectors)
|
|
91
103
|
|
|
92
|
-
return (
|
|
104
|
+
return (rasters, vectors)
|
|
93
105
|
|
|
94
106
|
|
|
95
107
|
def _cache_results(site: dict, area_size: float):
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
from typing import Union
|
|
2
|
-
from hestia_earth.schema import TermTermType
|
|
2
|
+
from hestia_earth.schema import Completeness, TermTermType
|
|
3
3
|
from hestia_earth.utils.api import download_hestia
|
|
4
4
|
|
|
5
|
+
completeness_fields = Completeness().required
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def _completeness_term_type(cycle: dict, term: Union[str, dict, TermTermType]):
|
|
9
|
+
return (
|
|
10
|
+
term if term in cycle.get('completeness', {}) or term in completeness_fields else None
|
|
11
|
+
) if isinstance(term, str) else None if isinstance(term, dict) else term.value
|
|
12
|
+
|
|
5
13
|
|
|
6
14
|
def _get_term_type_completeness(cycle: dict, term: Union[str, dict]):
|
|
7
15
|
term = download_hestia(term) if isinstance(term, str) else term
|
|
@@ -9,21 +17,16 @@ def _get_term_type_completeness(cycle: dict, term: Union[str, dict]):
|
|
|
9
17
|
return cycle.get('completeness', {}).get(term_type, False)
|
|
10
18
|
|
|
11
19
|
|
|
12
|
-
def
|
|
13
|
-
term_type = (
|
|
14
|
-
|
|
15
|
-
) if isinstance(term, str) else None if isinstance(term, dict) else term.value
|
|
16
|
-
completeness = _get_term_type_completeness(cycle, term) if term_type is None else (
|
|
20
|
+
def _completeness_value(cycle: dict, term: Union[str, dict, TermTermType]):
|
|
21
|
+
term_type = _completeness_term_type(cycle, term)
|
|
22
|
+
return _get_term_type_completeness(cycle, term) if term_type is None else (
|
|
17
23
|
cycle.get('completeness', {}).get(term_type, False)
|
|
18
24
|
)
|
|
19
|
-
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def _is_term_type_complete(cycle: dict, term: Union[str, dict, TermTermType]):
|
|
28
|
+
return _completeness_value(cycle, term) is True
|
|
20
29
|
|
|
21
30
|
|
|
22
31
|
def _is_term_type_incomplete(cycle: dict, term: Union[str, dict, TermTermType]):
|
|
23
|
-
|
|
24
|
-
term if term in cycle.get('completeness', {}) else None
|
|
25
|
-
) if isinstance(term, str) else None if isinstance(term, dict) else term.value
|
|
26
|
-
completeness = _get_term_type_completeness(cycle, term) if term_type is None else (
|
|
27
|
-
cycle.get('completeness', {}).get(term_type, False)
|
|
28
|
-
)
|
|
29
|
-
return completeness is False
|
|
32
|
+
return _completeness_value(cycle, term) is False
|
|
@@ -6,12 +6,6 @@ from hestia_earth.models.log import logShouldRun
|
|
|
6
6
|
from .property import _new_property
|
|
7
7
|
|
|
8
8
|
DRY_MATTER_TERM_ID = 'dryMatter'
|
|
9
|
-
DM_PROP_MAPPING = {
|
|
10
|
-
'value': 'Avg',
|
|
11
|
-
'sd': 'SD',
|
|
12
|
-
'min': 'Min',
|
|
13
|
-
'max': 'Max'
|
|
14
|
-
}
|
|
15
9
|
|
|
16
10
|
|
|
17
11
|
def get_feedipedia_properties():
|
|
@@ -26,34 +20,40 @@ def get_feedipedia_properties():
|
|
|
26
20
|
def _dm_property(term_id: str, property_values: dict, dm_property_values: dict, dry_matter_property: dict):
|
|
27
21
|
blank_node = _new_property(term_id)
|
|
28
22
|
blank_node_data = {}
|
|
29
|
-
for
|
|
30
|
-
new_dm_value = safe_parse_float(dry_matter_property.get(
|
|
31
|
-
old_dm_value = safe_parse_float(dm_property_values.get(
|
|
32
|
-
old_property_value = safe_parse_float(property_values.get(
|
|
23
|
+
for property_key in property_values.keys():
|
|
24
|
+
new_dm_value = safe_parse_float(dry_matter_property.get(property_key))
|
|
25
|
+
old_dm_value = safe_parse_float(dm_property_values.get(property_key))
|
|
26
|
+
old_property_value = safe_parse_float(property_values.get(property_key))
|
|
33
27
|
if all([new_dm_value, old_dm_value, old_property_value]):
|
|
34
|
-
blank_node_data[
|
|
28
|
+
blank_node_data[property_key] = round(old_property_value / old_dm_value * new_dm_value, 2)
|
|
35
29
|
return (blank_node | blank_node_data) if blank_node_data else None
|
|
36
30
|
|
|
37
31
|
|
|
38
|
-
def
|
|
39
|
-
|
|
40
|
-
|
|
32
|
+
def _map_properties(lookup, term_id: str, column_prefix: str):
|
|
33
|
+
value = get_table_value(lookup, 'termid', term_id, column_name(column_prefix))
|
|
34
|
+
sd = get_table_value(lookup, 'termid', term_id, column_name(f"{column_prefix}-sd"))
|
|
35
|
+
min = get_table_value(lookup, 'termid', term_id, column_name(f"{column_prefix}-min"))
|
|
36
|
+
max = get_table_value(lookup, 'termid', term_id, column_name(f"{column_prefix}-max"))
|
|
37
|
+
return {'value': value, 'sd': sd, 'min': min, 'max': max}
|
|
41
38
|
|
|
42
39
|
|
|
43
40
|
def rescale_properties_from_dryMatter(model: str, node: dict, blank_nodes: list):
|
|
44
41
|
properties = get_feedipedia_properties()
|
|
42
|
+
# download all to save time
|
|
43
|
+
term_types = [blank_node.get('term', {}).get('termType') for blank_node in blank_nodes]
|
|
44
|
+
term_types_lookups = {term_type: download_lookup(f"{term_type}-property.csv") for term_type in term_types}
|
|
45
45
|
|
|
46
|
-
def exec_property(
|
|
47
|
-
term_id =
|
|
48
|
-
term_type =
|
|
49
|
-
lookup =
|
|
50
|
-
|
|
51
|
-
dm_property_value = get_table_value(lookup, 'termid', term_id, column_name(DRY_MATTER_TERM_ID))
|
|
52
|
-
property_value = get_table_value(lookup, 'termid', term_id, column_name(property_id))
|
|
46
|
+
def exec_property(blank_node: dict, property_id: str, dry_matter_property: dict):
|
|
47
|
+
term_id = blank_node.get('term', {}).get('@id')
|
|
48
|
+
term_type = blank_node.get('term', {}).get('termType')
|
|
49
|
+
lookup = term_types_lookups[term_type]
|
|
53
50
|
|
|
54
51
|
return _dm_property(
|
|
55
|
-
property_id,
|
|
56
|
-
|
|
52
|
+
property_id,
|
|
53
|
+
_map_properties(lookup, term_id, column_prefix=property_id),
|
|
54
|
+
_map_properties(lookup, term_id, column_prefix=DRY_MATTER_TERM_ID),
|
|
55
|
+
dry_matter_property
|
|
56
|
+
) if all([property_id]) else None
|
|
57
57
|
|
|
58
58
|
def exec(blank_node: dict):
|
|
59
59
|
term_id = blank_node.get('term', {}).get('@id')
|
|
@@ -94,7 +94,9 @@ def node_property_lookup_value(model: str, term: dict, prop_id: str, default=Non
|
|
|
94
94
|
lookup = download_lookup(lookup_name)
|
|
95
95
|
term_id = term.get('@id')
|
|
96
96
|
lookup_value = get_table_value(lookup, 'termid', term_id, column_name(prop_id))
|
|
97
|
-
value = extract_grouped_data(lookup_value, 'Avg') if
|
|
97
|
+
value = extract_grouped_data(lookup_value, 'Avg') if (
|
|
98
|
+
isinstance(lookup_value, str) and 'Avg' in lookup_value
|
|
99
|
+
) else lookup_value
|
|
98
100
|
debugMissingLookup(lookup_name, 'termid', term_id, prop_id, value, model=model, term=term_id, **log_args)
|
|
99
101
|
return safe_parse_float(value, default=None)
|
|
100
102
|
except Exception:
|
hestia_earth/models/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION = '0.
|
|
1
|
+
VERSION = '0.60.0'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2019-
|
|
3
|
+
Copyright (c) 2019-2024 Harmonised Environmental Storage and Tracking of the Impacts of Agriculture (HESTIA) Project
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: hestia-earth-models
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.60.0
|
|
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=
|
|
3
|
+
hestia_earth/models/cache_sites.py,sha256=wsRjO7B14dd0XQtCqkjK0_W8P-45t_VhxWfaAFYYzKg,4916
|
|
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=
|
|
6
|
+
hestia_earth/models/version.py,sha256=HxmxadwsbabLEgeV2_2efW6fNlYUuCRBJVCOpiPm7qg,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
|
|
@@ -229,7 +229,7 @@ hestia_earth/models/ipcc2019/ch4ToAirEntericFermentation.py,sha256=khX90Njkmlvos
|
|
|
229
229
|
hestia_earth/models/ipcc2019/ch4ToAirExcreta.py,sha256=IzYHdnzT8Z-WQGoZIt9-O98VqriA5rKr38He_TbYadk,6723
|
|
230
230
|
hestia_earth/models/ipcc2019/ch4ToAirFloodedRice.py,sha256=f3orp6tDZ7f8bE9-lLZC0H_SgCKsDASAlphVRAHKJ0I,6885
|
|
231
231
|
hestia_earth/models/ipcc2019/co2ToAirLimeHydrolysis.py,sha256=7z0zdqiiWQwkyJCgSNMoK2mft3cJkTRlqwKrMuSKdWI,2454
|
|
232
|
-
hestia_earth/models/ipcc2019/
|
|
232
|
+
hestia_earth/models/ipcc2019/co2ToAirSoilOrganicCarbonStockChangeManagementChange.py,sha256=kWrWxhr-48jmbyt57EIjth8IWsl5-Yt1I-uTBSUqFuA,25381
|
|
233
233
|
hestia_earth/models/ipcc2019/co2ToAirUreaHydrolysis.py,sha256=071H3ykjzJFW2K5PKvbAaeIj0aL8LTzMiG_pIeYEpEc,3520
|
|
234
234
|
hestia_earth/models/ipcc2019/croppingDuration.py,sha256=_jlFrTNDOARH2_g8s4dzuaCoLHSX2BHzSQd3uuQN32Y,3173
|
|
235
235
|
hestia_earth/models/ipcc2019/ligninContent.py,sha256=wp5EbCthCDAKyvPBfZULS9-uKEY58TQQ8ey1pf-juv8,7267
|
|
@@ -251,8 +251,11 @@ hestia_earth/models/ipcc2019/no3ToGroundwaterOrganicFertiliser.py,sha256=zOhp6Nh
|
|
|
251
251
|
hestia_earth/models/ipcc2019/noxToAirInorganicFertiliser.py,sha256=D-UyzY55mOiIcXRzEtvPY-r1bDFgb9YqA08SmHsQeNA,4226
|
|
252
252
|
hestia_earth/models/ipcc2019/noxToAirOrganicFertiliser.py,sha256=SVgVNp76bIv9oUjrZZuI6xYLo4Gw2DRU5tbp14gydOE,3911
|
|
253
253
|
hestia_earth/models/ipcc2019/organicCarbonPerHa.py,sha256=omxrtnAZ58qHQYIhi38R7VFn7SRzf8Kk89KgP0VELFQ,141507
|
|
254
|
-
hestia_earth/models/ipcc2019/pastureGrass.py,sha256=
|
|
254
|
+
hestia_earth/models/ipcc2019/pastureGrass.py,sha256=TNKK3P0s0euV1jnZTFVxomed5G74R2dAHjKnoGZSS0g,8708
|
|
255
|
+
hestia_earth/models/ipcc2019/pastureGrass_utils.py,sha256=nUJYYkovzF7QD4LeUqhV5mBYFKdrhxeG4gyPRv0Xpuk,16002
|
|
255
256
|
hestia_earth/models/ipcc2019/utils.py,sha256=MSDMu15D9DnilFUgi4_6jYXC0FaKso3OODauGTMB6hs,6229
|
|
257
|
+
hestia_earth/models/ipcc2019/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
258
|
+
hestia_earth/models/ipcc2019/animal/pastureGrass.py,sha256=naNAVtNkij7NOBbycijklXHMPP-LB26QnrJV2bb8_Gw,10688
|
|
256
259
|
hestia_earth/models/ipcc2021/__init__.py,sha256=VTgGFKhwMmk_nuI1RRq0in27fHYVPBonlXlPK00K8no,409
|
|
257
260
|
hestia_earth/models/ipcc2021/gwp100.py,sha256=v-DYU-11XnWI1Ns1GEiKrJqL3JafxvhTsLmuBuFcxJU,1021
|
|
258
261
|
hestia_earth/models/jarvisAndPain1994/__init__.py,sha256=ercUwy29sV7oPIESj8UjsGB5lqiBCss9OZcbjxeeG8E,418
|
|
@@ -353,7 +356,7 @@ hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystems
|
|
|
353
356
|
hestia_earth/models/linkedImpactAssessment/__init__.py,sha256=d19wzr4GnWXpMWRhchqwp3S8txrUkpIWrGPwnWdXhjI,6236
|
|
354
357
|
hestia_earth/models/mocking/__init__.py,sha256=kmSeOTSvurMUxw7Ajhf3G-SVPQ1NgmirMTk4TSOEicY,765
|
|
355
358
|
hestia_earth/models/mocking/mock_search.py,sha256=V-ycVBTkJu7PP37Ivy_16hpKBV4aEtJb5S9DfChPNSU,2038
|
|
356
|
-
hestia_earth/models/mocking/search-results.json,sha256=
|
|
359
|
+
hestia_earth/models/mocking/search-results.json,sha256=XZzKZ_aXsJJ2XgzlDbIYwmLozqdNHitUnDMDKNKWOG8,39547
|
|
357
360
|
hestia_earth/models/pooreNemecek2018/__init__.py,sha256=nPboL7ULJzL5nJD5q7q9VOZt_fxbKVm8fmn1Az5YkVY,417
|
|
358
361
|
hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py,sha256=Qt-mel4dkhK6N5uUOutNOinCTFjbjtGzITaaI0LvYc4,2396
|
|
359
362
|
hestia_earth/models/pooreNemecek2018/belowGroundCropResidue.py,sha256=JT0RybbvWVlo01FO8K0Yj41HrEaJT3Kj1xfayr2X-xw,2315
|
|
@@ -473,7 +476,7 @@ hestia_earth/models/site/measurement/value.py,sha256=7IhUbIj7n5vB7yXoNxXsWbliEJj
|
|
|
473
476
|
hestia_earth/models/site/post_checks/__init__.py,sha256=CkExxesk1GuG8NjrbKfix1iDuVUgU-9i1ccM_X7MZn4,284
|
|
474
477
|
hestia_earth/models/site/post_checks/cache.py,sha256=_MZsNsclecUdHDT2MsYx4cEsVUXydIasddgZNA6SU4k,284
|
|
475
478
|
hestia_earth/models/site/pre_checks/__init__.py,sha256=fjv6nU5fiL-CLyaa-cBpiLB-xujgPzeK7i7ZJuTOjCI,394
|
|
476
|
-
hestia_earth/models/site/pre_checks/cache_geospatialDatabase.py,sha256=
|
|
479
|
+
hestia_earth/models/site/pre_checks/cache_geospatialDatabase.py,sha256=89ZbSyJjP9adH09JhVlaFfLeXq3ND3w8Nxmd4HVB-5k,5240
|
|
477
480
|
hestia_earth/models/site/pre_checks/cache_sources.py,sha256=RzvSgHJTpVkAB3mEvRju_irDQmdJRK7GUdU6PhS2Gaw,904
|
|
478
481
|
hestia_earth/models/site/pre_checks/cache_years.py,sha256=qGwTaHlWxnVT7iVxXVcpJ-oG6M-VH4ZpCDTdTixUHR4,883
|
|
479
482
|
hestia_earth/models/stehfestBouwman2006/__init__.py,sha256=EhvD4NK6oEPevusLb1WdYV3GT_fCtQx4gvdMhK_dEIQ,420
|
|
@@ -511,7 +514,7 @@ hestia_earth/models/utils/aggregated.py,sha256=sz6usleZmo_tC_hIvmGgYsX8-H0dulXmm
|
|
|
511
514
|
hestia_earth/models/utils/animalProduct.py,sha256=M5IunAKGY6oZv3j1Ascl34ywyeLWApqOIlBzbtlA2FE,721
|
|
512
515
|
hestia_earth/models/utils/aquacultureManagement.py,sha256=3uSTSMDNNPa26NTJGZCYwByv3QZVyxj6bh2aFCoBzHk,126
|
|
513
516
|
hestia_earth/models/utils/blank_node.py,sha256=VviIxvHSTxKYr0KaWR56b2ro1WEN-BwKvQ5LndyWgks,40879
|
|
514
|
-
hestia_earth/models/utils/completeness.py,sha256=
|
|
517
|
+
hestia_earth/models/utils/completeness.py,sha256=2-GusD9UycobDZq8y5jar0ZcOjyqnSbzPRT_5XMc4YA,1259
|
|
515
518
|
hestia_earth/models/utils/constant.py,sha256=5H7odhRwU_LmUhYwf8c1LsdqXSYbLWkuknvtRDqUBTQ,3194
|
|
516
519
|
hestia_earth/models/utils/crop.py,sha256=S8UycHpkgx_TznW3Q7pchEMlCQ623T_SqU6V5fBLBLc,1520
|
|
517
520
|
hestia_earth/models/utils/cropResidue.py,sha256=_0Q35CrliJeo31xGHsPWe8A2oHxijdIsOrf3gBEqhlA,612
|
|
@@ -521,7 +524,7 @@ hestia_earth/models/utils/cycle.py,sha256=F5dykDeHJfnSm6m7YCqQT3Ip3OZsAB-oipbKwb
|
|
|
521
524
|
hestia_earth/models/utils/ecoClimateZone.py,sha256=NHFt-A9EiWXC6tUNIxkgOWUZOjj4I4uwJIP9ddDZegw,1112
|
|
522
525
|
hestia_earth/models/utils/emission.py,sha256=AVp-ngrb4VHYT8BG1QA5EEb17edT3cLonsXV3cNm04U,1576
|
|
523
526
|
hestia_earth/models/utils/excretaManagement.py,sha256=NuWPQjFZxMVt9sYgBjcqhGWCFk_OKb3sA9Ovcff3fRQ,428
|
|
524
|
-
hestia_earth/models/utils/feedipedia.py,sha256=
|
|
527
|
+
hestia_earth/models/utils/feedipedia.py,sha256=ImUAURcwJDtSvu1s4MDeM1VpbU8mVTp9jh9ENNOB0Mw,3515
|
|
525
528
|
hestia_earth/models/utils/fuel.py,sha256=r1MKMMxg-PYiVlRutP83RuvY2rsdCQ1iN6ekSGGQGpA,1379
|
|
526
529
|
hestia_earth/models/utils/impact_assessment.py,sha256=H1_cvLwC8nb3A5ckS9uvWrLqUDU_9i9BdQiPpn52xIg,6890
|
|
527
530
|
hestia_earth/models/utils/indicator.py,sha256=fPq38ifd53xWbuOfoiVwiA0Nwa7jVPJLSAPpOMMil8Q,423
|
|
@@ -534,7 +537,7 @@ hestia_earth/models/utils/pesticideAI.py,sha256=oAQTUlgXnSJrBGvIphlmVcjx2gbCHH6k
|
|
|
534
537
|
hestia_earth/models/utils/practice.py,sha256=tNadOzsrNlCEt801B815XaruJXzZ5yPASam7B3sWpXE,1091
|
|
535
538
|
hestia_earth/models/utils/product.py,sha256=H9UqJNzTqtMWXDQnbRkZlTpv_hg4s-Tya469fBk8InA,10143
|
|
536
539
|
hestia_earth/models/utils/productivity.py,sha256=bUBVCZInGqHuHZvHDSYPQkjWXQxOtTjEk-1-f_BsFOo,594
|
|
537
|
-
hestia_earth/models/utils/property.py,sha256=
|
|
540
|
+
hestia_earth/models/utils/property.py,sha256=gHPEmy3Sw599ox64Gv-LCvjhP1THlBXBaBlTOK5lvog,5060
|
|
538
541
|
hestia_earth/models/utils/site.py,sha256=oLuai82WdN_qAAG09XmLEbhf7-jr7AT7BGxRBUs1Bno,3292
|
|
539
542
|
hestia_earth/models/utils/source.py,sha256=HhZkvQoFdy6j6FC2cwP5EbHXHFM4pif9gpnuzeDwEh4,1746
|
|
540
543
|
hestia_earth/models/utils/temperature.py,sha256=ljlG4-yCgFFb6LRZweb18cZKLrr7K2mqd4E4Hz_D1f8,476
|
|
@@ -543,7 +546,7 @@ hestia_earth/models/utils/transformation.py,sha256=nyT5Mz4_VgFwhkL8JoNX9kxxow0zu
|
|
|
543
546
|
hestia_earth/models/webbEtAl2012AndSintermannEtAl2012/__init__.py,sha256=Niv7ZFMBCwThlbCKGOwA17QdkpOUDFrqrFItGNqnZAA,434
|
|
544
547
|
hestia_earth/models/webbEtAl2012AndSintermannEtAl2012/nh3ToAirOrganicFertiliser.py,sha256=G2eq00XGdr1ZEZ5Ru1nBIR-sD7iM9hGYhvk8r5wL3dA,3910
|
|
545
548
|
tests/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
546
|
-
tests/models/test_cache_sites.py,sha256=
|
|
549
|
+
tests/models/test_cache_sites.py,sha256=6Dp5SpshEFRavtDixA7ymxPv9j-ei_bqdbowYVMPYMQ,2465
|
|
547
550
|
tests/models/test_ecoinventV3.py,sha256=zyIWeeS7VndjXAHcROhDi3E0I52U8uQu8u-t1EXwqW8,1492
|
|
548
551
|
tests/models/test_emissionNotRelevant.py,sha256=YXTdRfcdR_JepHuj2P3Y3r0aFMKNOmsXQHY48tmLTQo,1316
|
|
549
552
|
tests/models/test_linkedImpactAssessment.py,sha256=RiBNTF34GMA5YsuJ0MAsEPhMuHNC2W0Qq9YnWYDpXM4,1172
|
|
@@ -576,18 +579,18 @@ tests/models/cml2001NonBaseline/test_eutrophicationPotentialIncludingFateAverage
|
|
|
576
579
|
tests/models/cml2001NonBaseline/test_terrestrialAcidificationPotentialExcludingFate.py,sha256=zytN80ZmXjLBSiXPj_G0aaMyMx1aVukJaGouZQDMLBs,907
|
|
577
580
|
tests/models/cycle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
578
581
|
tests/models/cycle/test_aboveGroundCropResidueTotal.py,sha256=qXx--kj9VHfiHqJfpAffSRvfaAcyYJppqTqgjQkXG4w,1311
|
|
579
|
-
tests/models/cycle/test_coldCarcassWeightPerHead.py,sha256=
|
|
580
|
-
tests/models/cycle/test_coldDressedCarcassWeightPerHead.py,sha256=
|
|
582
|
+
tests/models/cycle/test_coldCarcassWeightPerHead.py,sha256=omaBrhWBGzx4PrJ37JUhbUJrMK9UdD3a9xjHZtHt6YU,1437
|
|
583
|
+
tests/models/cycle/test_coldDressedCarcassWeightPerHead.py,sha256=DrdI1TUmggeeQvza4WHfbzt9lk-TdKtuvZGYNpTgQ9U,1451
|
|
581
584
|
tests/models/cycle/test_completeness.py,sha256=Ku1ZSApGaACkXe3ae14yP01C4GssHMwlPG_UPrSytPo,1625
|
|
582
585
|
tests/models/cycle/test_concentrateFeed.py,sha256=tgkThL4g293CexLvb89ftO9UqUbHhNOxiP6QMmsqCCo,2013
|
|
583
586
|
tests/models/cycle/test_cropResidueManagement.py,sha256=vQWl7rDYLJjiKyBQlCiOA76LpzM4dI2t7JJ30uF8H9M,2020
|
|
584
587
|
tests/models/cycle/test_cycleDuration.py,sha256=jD9L6eGwi0woUMpqcGm6MxP_Wvh_H6FCSmiHME5eOZc,1296
|
|
585
588
|
tests/models/cycle/test_endDate.py,sha256=SY04-jtp9dAaCJpFv8Ef09jhUmsB0IWRphWrilR_wv4,649
|
|
586
|
-
tests/models/cycle/test_energyContentLowerHeatingValue.py,sha256=
|
|
589
|
+
tests/models/cycle/test_energyContentLowerHeatingValue.py,sha256=ZvHigQrtneKrRc8qr7rN8aj6tuA0ds0V6Brh0UzN_T8,1204
|
|
587
590
|
tests/models/cycle/test_excretaKgMass.py,sha256=xpuq0k5HKvnGmWdJy0GmIv6A4xYk2VDFB4BMb8J2Z0g,2925
|
|
588
591
|
tests/models/cycle/test_excretaKgN.py,sha256=xoe0PF-DwhVkihN-1BonUa7u_QNM9lr7CmGXsOozQ0Y,1090
|
|
589
592
|
tests/models/cycle/test_excretaKgVs.py,sha256=A5IzG9vcjJxba_ZjBeTprjGL4hO3NkwrS0LSqgX8eOs,1093
|
|
590
|
-
tests/models/cycle/test_feedConversionRatio.py,sha256=
|
|
593
|
+
tests/models/cycle/test_feedConversionRatio.py,sha256=V6zpZvUmBN0LciJW5YbHHaRQX6iEFdlFx9cSdX--owc,2149
|
|
591
594
|
tests/models/cycle/test_inorganicFertiliser.py,sha256=c-JDYC0qDK4JWlYDaGX53AcKfetz_YifSfdhy-v-WMo,642
|
|
592
595
|
tests/models/cycle/test_irrigatedTypeUnspecified.py,sha256=9YGwpDO_RHMaldvjJZ0xdrdfUzYDnLPt6nMJ2eRXSTI,2151
|
|
593
596
|
tests/models/cycle/test_liveAnimal.py,sha256=7fRPgEnIwcir-tYwUNnr6gc2e5_vnZi-t8EuuiPioeM,2139
|
|
@@ -596,7 +599,7 @@ tests/models/cycle/test_pastureGrass.py,sha256=hNRjBLYXGybzHPMfBOCgcRjGkDBmW0k_G
|
|
|
596
599
|
tests/models/cycle/test_pastureSystem.py,sha256=VlPn4mlaNimiu3liV5EMELJueUCqSSJ1l82yMV0UK90,1590
|
|
597
600
|
tests/models/cycle/test_post_checks.py,sha256=yeUm-uZ4Om8poct2TgpFQEy-Hg72LNacyQcQ2Qh4Yyw,286
|
|
598
601
|
tests/models/cycle/test_pre_checks.py,sha256=ZFQOq6vIe-xMLisvSsJAPjt3XIgKk-x3G5cFJIzfOWc,284
|
|
599
|
-
tests/models/cycle/test_readyToCookWeightPerHead.py,sha256=
|
|
602
|
+
tests/models/cycle/test_readyToCookWeightPerHead.py,sha256=KbjiMmcgychGDyuFylqqJHlQUp2PO1puBKPgwTqIy10,1437
|
|
600
603
|
tests/models/cycle/test_residueBurnt.py,sha256=eBAzGR1210cBYH_s6oI1yCG6tVKUj9gGs2LnN_q6Iq4,1272
|
|
601
604
|
tests/models/cycle/test_residueIncorporated.py,sha256=esB_wnpf6W0PB24HW0YUgtfD9mxLDIY22eNVD4WAYFA,1719
|
|
602
605
|
tests/models/cycle/test_residueLeftOnField.py,sha256=_8CoSp-7z3BBLGN5Hv067FRYz8yDFw5fi_Cu5n6Rl3g,1290
|
|
@@ -606,10 +609,10 @@ tests/models/cycle/test_startDate.py,sha256=on3OdP7HtR005cQUTiFbiz_iQ7pX53WZ368w
|
|
|
606
609
|
tests/models/cycle/test_transformations.py,sha256=Ws_8KhNqeHogGFXTQ4qZXQ5Ph2I3ZUaY0yO1itFUHLk,464
|
|
607
610
|
tests/models/cycle/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
608
611
|
tests/models/cycle/animal/test_milkYield.py,sha256=e3FX8ikrS7nNeOuy8K7rNLs577odN5xrFohUWQw-tag,1323
|
|
609
|
-
tests/models/cycle/animal/test_properties.py,sha256=
|
|
612
|
+
tests/models/cycle/animal/test_properties.py,sha256=ND9ltZQie1xXtQvAzoDUkBYGV_N3rw5D5W-irARvO0s,715
|
|
610
613
|
tests/models/cycle/animal/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
611
614
|
tests/models/cycle/animal/input/test_hestiaAggregatedData.py,sha256=19rTpeoktPFMyOSolACMJkSe2p96xLsXAeRVjND0WbY,1229
|
|
612
|
-
tests/models/cycle/animal/input/test_properties.py,sha256=
|
|
615
|
+
tests/models/cycle/animal/input/test_properties.py,sha256=rp-PfGijk-Sbh1NsV5nkf9gh_xZpGocDgWIl8N7VtTo,1983
|
|
613
616
|
tests/models/cycle/completeness/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
614
617
|
tests/models/cycle/completeness/test_animalFeed.py,sha256=J52m1kInw8mPE_pwx0j3QGKI8ZpDGeN2TLqUuArn7WA,348
|
|
615
618
|
tests/models/cycle/completeness/test_cropResidue.py,sha256=TzPrnvAQA5GzmwL-bYOLgR3wjtMdKuPx55wT_HHfJ6c,592
|
|
@@ -619,7 +622,7 @@ tests/models/cycle/completeness/test_seed.py,sha256=txpypNeoX08QC3wPUd92gnWuvPTs
|
|
|
619
622
|
tests/models/cycle/completeness/test_soilAmendment.py,sha256=EjvXIKioQx4vCqrotD33kLZCtZTYohzYtXSifMGnO6w,636
|
|
620
623
|
tests/models/cycle/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
621
624
|
tests/models/cycle/input/test_hestiaAggregatedData.py,sha256=qKe_XrIK9CTXx2V2XJefEOzx9A0GoZFwg4WUs3Hxkw4,3080
|
|
622
|
-
tests/models/cycle/input/test_properties.py,sha256=
|
|
625
|
+
tests/models/cycle/input/test_properties.py,sha256=5O2ubBE_WSLz5NRtLTGwsE-gADIcw7sZyJqL0w7GYcQ,1962
|
|
623
626
|
tests/models/cycle/input/test_value.py,sha256=NR7KHsqnPnw43BB1efT0KPaszY4DKY293Av-lVde-DI,977
|
|
624
627
|
tests/models/cycle/post_checks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
625
628
|
tests/models/cycle/post_checks/test_cache.py,sha256=5QD8Yk9HbDePHSIXOJUM_ptZCroOQRf53bIXZod6fTA,194
|
|
@@ -634,7 +637,7 @@ tests/models/cycle/product/test_currency.py,sha256=r7TA0FDDS9U50-FolEMXESi4pvSmw
|
|
|
634
637
|
tests/models/cycle/product/test_economicValueShare.py,sha256=58EsOw5nZWGTsKK_LFblIz3YwmCXROT-GffHojmd674,4417
|
|
635
638
|
tests/models/cycle/product/test_price.py,sha256=zmWNdF2P4k2QTje_62NJDklCIwmk2vF8xuOoVzL9qf0,1193
|
|
636
639
|
tests/models/cycle/product/test_primary.py,sha256=UfLOOxUkDyeSOmDv4NyN6v5Yf0RO9etZNT797fbCbpA,1862
|
|
637
|
-
tests/models/cycle/product/test_properties.py,sha256=
|
|
640
|
+
tests/models/cycle/product/test_properties.py,sha256=7pcBH_Ny8JeQ2dWXBU-ZSmY5iYl0f_qFejp8Vk5e1H8,1142
|
|
638
641
|
tests/models/cycle/product/test_revenue.py,sha256=brcr-zPhhLChw3t-oyApVdcMjvyRszDVELMQLi4t398,917
|
|
639
642
|
tests/models/cycle/product/test_value.py,sha256=IfkcE8kgrvXg_iIbnoJ3n0CIjlfgg_lHkILQ8u38HVE,963
|
|
640
643
|
tests/models/dammgen2009/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -740,7 +743,7 @@ tests/models/ipcc2006/test_aboveGroundCropResidueRemoved.py,sha256=5F7eU4qWYfTZA
|
|
|
740
743
|
tests/models/ipcc2006/test_aboveGroundCropResidueTotal.py,sha256=FrSR1xBTRtJ99pXAklXLtDRC00FSW1vXSAvQNeBoXTQ,1725
|
|
741
744
|
tests/models/ipcc2006/test_belowGroundCropResidue.py,sha256=cFqLDFy5pcgOyzKC9l-RClEP6CWCdVNnq48S90SITVM,1720
|
|
742
745
|
tests/models/ipcc2006/test_co2ToAirOrganicSoilCultivation.py,sha256=wM1BYFcK28aiNVP6JUEWdc90kCd3w4rjOnpxzwuYV_o,1609
|
|
743
|
-
tests/models/ipcc2006/test_n2OToAirCropResidueDecompositionDirect.py,sha256=
|
|
746
|
+
tests/models/ipcc2006/test_n2OToAirCropResidueDecompositionDirect.py,sha256=pgUznkTiyLwhMVHzFE40wzwvtY40OsPQp1QWTsaPDqU,1815
|
|
744
747
|
tests/models/ipcc2006/test_n2OToAirCropResidueDecompositionIndirect.py,sha256=cxn5rX_pZqbl7m8rhJARuyjG2P5O-BQbufeEcTmO06k,1357
|
|
745
748
|
tests/models/ipcc2006/test_n2OToAirExcretaDirect.py,sha256=tm6Lm90_4qEkCU6UIFsOD6yhrMrq69lkF1LvCjXPjE4,2132
|
|
746
749
|
tests/models/ipcc2006/test_n2OToAirExcretaIndirect.py,sha256=712I87Wkpp4KcHfHaK1kgfD6nfHGo3iZqKIwfMG9a6A,1282
|
|
@@ -757,21 +760,21 @@ tests/models/ipcc2019/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
|
757
760
|
tests/models/ipcc2019/test_aboveGroundCropResidueTotal.py,sha256=AADYB1g9vftH7YSvNyihHu8GQOiA7VhXxVQ-oJQNT88,2581
|
|
758
761
|
tests/models/ipcc2019/test_belowGroundCropResidue.py,sha256=HUxHZLBdLX_E_oc3wqTwNtGY4M4yCWcxx-1iBYPF7_s,2576
|
|
759
762
|
tests/models/ipcc2019/test_carbonContent.py,sha256=_GWF5nGy-PxiqBZ5V7W_sHMz75YRzmxr79R-sZZg7yk,4146
|
|
760
|
-
tests/models/ipcc2019/test_ch4ToAirEntericFermentation.py,sha256=
|
|
763
|
+
tests/models/ipcc2019/test_ch4ToAirEntericFermentation.py,sha256=eqHm9JexHOx_Qbi25oDCYXJqPC8wdWxGUnqnfEAqQsQ,7996
|
|
761
764
|
tests/models/ipcc2019/test_ch4ToAirExcreta.py,sha256=e58NXmBW2SNVLUqQO9A66Xq6jiGTyhdFZDZk51JApF8,2902
|
|
762
765
|
tests/models/ipcc2019/test_ch4ToAirFloodedRice.py,sha256=FAp5b45WdX5Ih4yGUOZ4CmVD8smW1Lw1tnulx9AKVBI,1980
|
|
763
766
|
tests/models/ipcc2019/test_co2ToAirLimeHydrolysis.py,sha256=e5iuZ-kQNEVih0ZRgRPWqaUtXcLpfkoU7sQypbqA9_Y,1345
|
|
764
|
-
tests/models/ipcc2019/
|
|
767
|
+
tests/models/ipcc2019/test_co2ToAirSoilOrganicCarbonStockChangeManagementChange.py,sha256=NbEADyVQY6AAhpRemmJO9E4j9CzQ-3LK4MHDk3HJHIQ,7131
|
|
765
768
|
tests/models/ipcc2019/test_co2ToAirUreaHydrolysis.py,sha256=MmtEME0xjsa3KojFk_fxOLK6RZM_6p5HIpY2DOFHVu4,1530
|
|
766
769
|
tests/models/ipcc2019/test_croppingDuration.py,sha256=gLRXeR6Tqa7ciD9KTRfsIflSeIIWT2iOpZMdcxAQla4,1871
|
|
767
770
|
tests/models/ipcc2019/test_ligninContent.py,sha256=eIKEN__ab-0R52EhlhPSBiHnmTl6xOf1XbI33O-W9A4,4146
|
|
768
|
-
tests/models/ipcc2019/test_n2OToAirCropResidueDecompositionDirect.py,sha256=
|
|
771
|
+
tests/models/ipcc2019/test_n2OToAirCropResidueDecompositionDirect.py,sha256=vKbWQNZAGPtsqonM-Cc3n3hNitft0hcjn2TNrTFC1iY,2729
|
|
769
772
|
tests/models/ipcc2019/test_n2OToAirCropResidueDecompositionIndirect.py,sha256=it2PVNYBNAvQWmWLDJ9Evjqtx7SJl-X0ZyQz3Fuvb3k,2119
|
|
770
773
|
tests/models/ipcc2019/test_n2OToAirExcretaDirect.py,sha256=JYvBK4edcqfHrMPwgBFXF6km51ew9RISUcfQ_RNf2RY,1216
|
|
771
774
|
tests/models/ipcc2019/test_n2OToAirExcretaIndirect.py,sha256=z46L5JMB4-W0uCyyFlLKTEyDnt2gUHRkH7dEXK6ioHk,2098
|
|
772
|
-
tests/models/ipcc2019/test_n2OToAirInorganicFertiliserDirect.py,sha256=
|
|
775
|
+
tests/models/ipcc2019/test_n2OToAirInorganicFertiliserDirect.py,sha256=uSdklDRTxYfMo3J6lMxUJeIeinLHvY_MRZiN9NdHmdA,2718
|
|
773
776
|
tests/models/ipcc2019/test_n2OToAirInorganicFertiliserIndirect.py,sha256=RnU8CkUCYBBO1bgJALnoVgjTHLL1L1sja2nsyeVA_cg,2113
|
|
774
|
-
tests/models/ipcc2019/test_n2OToAirOrganicFertiliserDirect.py,sha256=
|
|
777
|
+
tests/models/ipcc2019/test_n2OToAirOrganicFertiliserDirect.py,sha256=ofEcYrwvvXfoZHRWaaMtKMK2NbEtX_67laDeu_lDTXg,2714
|
|
775
778
|
tests/models/ipcc2019/test_n2OToAirOrganicFertiliserIndirect.py,sha256=hW84sTlhB8mKRSFJX_iQS4gYo74zCtY-9zr1VHLC5GU,2111
|
|
776
779
|
tests/models/ipcc2019/test_nh3ToAirInorganicFertiliser.py,sha256=xmRHSTmyh--EZX29Z5NHD4LqEZl7Lkc5HntBCXlIRHE,1537
|
|
777
780
|
tests/models/ipcc2019/test_nh3ToAirOrganicFertiliser.py,sha256=Z4a20I2UnZdzm6FqHnlHRXXVCY993_SHT7nG-zAhx-c,1104
|
|
@@ -783,7 +786,9 @@ tests/models/ipcc2019/test_no3ToGroundwaterOrganicFertiliser.py,sha256=e1ZViD12q
|
|
|
783
786
|
tests/models/ipcc2019/test_noxToAirInorganicFertiliser.py,sha256=NZBSBJLM_j2PEpHRON2ysgKNF8x5sHfQVoAKQdGsfzk,1537
|
|
784
787
|
tests/models/ipcc2019/test_noxToAirOrganicFertiliser.py,sha256=LR5pjV5vRbgSSQAw8kYRp_ij4CHInzgaDS6EggQuBiw,1104
|
|
785
788
|
tests/models/ipcc2019/test_organicCarbonPerHa.py,sha256=TO3ubi8z8-iYEAdf295Z30ft5W1652GPkmaiQCb7QN4,23197
|
|
786
|
-
tests/models/ipcc2019/test_pastureGrass.py,sha256=
|
|
789
|
+
tests/models/ipcc2019/test_pastureGrass.py,sha256=hn6tw-ifMTn00_WmYPIjRdm56SMF1w-eqETngVE29ns,3373
|
|
790
|
+
tests/models/ipcc2019/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
791
|
+
tests/models/ipcc2019/animal/test_pastureGrass.py,sha256=2ZbeIxxEZ9xaDkfCY2pLripmtOG89iHMTrPqa2-UuQg,1983
|
|
787
792
|
tests/models/ipcc2021/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
788
793
|
tests/models/ipcc2021/test_gwp100.py,sha256=JRklKMSg-OXopb9ZufGgl94deuMuJSsfNXRZDBtOZrE,1119
|
|
789
794
|
tests/models/jarvisAndPain1994/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -885,8 +890,8 @@ tests/models/pooreNemecek2018/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
|
|
|
885
890
|
tests/models/pooreNemecek2018/test_aboveGroundCropResidueTotal.py,sha256=m-cpFULarm0Ee4MV-OvhYPRg7W2_mvbrqHkjDZgcQsw,1660
|
|
886
891
|
tests/models/pooreNemecek2018/test_belowGroundCropResidue.py,sha256=A6EOD2B6frN0UtuUTP3GwZ7bNEtEudQfztHXjdiDwdQ,1655
|
|
887
892
|
tests/models/pooreNemecek2018/test_ch4ToAirAquacultureSystems.py,sha256=rUxD57yl82Ht8IyhbiQhi0xl8L9iLdnLpbI-T5C0Mck,2722
|
|
888
|
-
tests/models/pooreNemecek2018/test_excretaKgN.py,sha256=
|
|
889
|
-
tests/models/pooreNemecek2018/test_excretaKgVs.py,sha256=
|
|
893
|
+
tests/models/pooreNemecek2018/test_excretaKgN.py,sha256=lKM-Q7TjQoxjvjY9tCcmJxoWvHuxglNCVsPXh6JBgCY,4063
|
|
894
|
+
tests/models/pooreNemecek2018/test_excretaKgVs.py,sha256=LIoLevR0tHrZwazuGprt6SCFtmDrj4NBq1s1SJEhQCA,3252
|
|
890
895
|
tests/models/pooreNemecek2018/test_landOccupationDuringCycle.py,sha256=XbsApbRIuzq4GeaN7PrzlMA7grU7y6j_HPesgQIf_Uw,1650
|
|
891
896
|
tests/models/pooreNemecek2018/test_longFallowPeriod.py,sha256=zAa-zmCbHOjCUsOQdEvZRBw_r8gdmxYZXYurRGVLxfM,923
|
|
892
897
|
tests/models/pooreNemecek2018/test_n2OToAirAquacultureSystemsDirect.py,sha256=4YAoUhIwfEmRe2B5BvNg247VeB7UXHNeZqr2mRtJA7Y,2207
|
|
@@ -896,7 +901,7 @@ tests/models/pooreNemecek2018/test_no3ToGroundwaterCropResidueDecomposition.py,s
|
|
|
896
901
|
tests/models/pooreNemecek2018/test_no3ToGroundwaterExcreta.py,sha256=r4ZbfPGqSjZxy-U1IjyBtnRw1OBDu2ed5uywOLckDXU,901
|
|
897
902
|
tests/models/pooreNemecek2018/test_no3ToGroundwaterInorganicFertiliser.py,sha256=jWHqwoix6_4skCfZoWG5Lz_K-u-zk6L8mDLLHw73R3U,913
|
|
898
903
|
tests/models/pooreNemecek2018/test_no3ToGroundwaterOrganicFertiliser.py,sha256=Rdjw7Ntw3vdgonHGh-pqhCoxc_y-Z9esgekY64e13T8,911
|
|
899
|
-
tests/models/pooreNemecek2018/test_no3ToGroundwaterSoilFlux.py,sha256=
|
|
904
|
+
tests/models/pooreNemecek2018/test_no3ToGroundwaterSoilFlux.py,sha256=Ti1DXFnE14E8AqC8kcBAyOTALXOI9QUs5NKBrpSfKeA,3452
|
|
900
905
|
tests/models/pooreNemecek2018/test_noxToAirAquacultureSystems.py,sha256=79zcDMM6HNxZzFjxPVkFcIHUPKaGwnc_3tWHEBeEtq8,2201
|
|
901
906
|
tests/models/pooreNemecek2018/test_nurseryDensity.py,sha256=uRKvWqI94YghWGdGLoRuDIQFlebALoVE6IguK_8_p90,921
|
|
902
907
|
tests/models/pooreNemecek2018/test_nurseryDuration.py,sha256=PFUlx-mjZBGvyAax8m6GR61Ak9CxjMvAMAojmA39WUk,922
|
|
@@ -1049,8 +1054,8 @@ tests/models/utils/test_source.py,sha256=mv3vHZV5cjpoLA2I1109-YUkuzAiuhbRSnv_76_
|
|
|
1049
1054
|
tests/models/utils/test_term.py,sha256=M5Sa26v2gzQYbZ4H_fo7DspnaCx__-WtL-MULGapCWk,3509
|
|
1050
1055
|
tests/models/webbEtAl2012AndSintermannEtAl2012/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1051
1056
|
tests/models/webbEtAl2012AndSintermannEtAl2012/test_nh3ToAirOrganicFertiliser.py,sha256=qi2FNXS5Af2WDtm7nq_FsprH3BfCF0XxnE0XHmC4aIY,2244
|
|
1052
|
-
hestia_earth_models-0.
|
|
1053
|
-
hestia_earth_models-0.
|
|
1054
|
-
hestia_earth_models-0.
|
|
1055
|
-
hestia_earth_models-0.
|
|
1056
|
-
hestia_earth_models-0.
|
|
1057
|
+
hestia_earth_models-0.60.0.dist-info/LICENSE,sha256=AC7h7GAgCZGJK_Tzh6LUCrML9gQEfowWwecEw2w54QM,1154
|
|
1058
|
+
hestia_earth_models-0.60.0.dist-info/METADATA,sha256=9LXKP4GRx3ee43zO2ew5DLQYvFL8XkDUlAXWfeFr6yQ,3134
|
|
1059
|
+
hestia_earth_models-0.60.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
1060
|
+
hestia_earth_models-0.60.0.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
|
|
1061
|
+
hestia_earth_models-0.60.0.dist-info/RECORD,,
|
|
@@ -19,6 +19,7 @@ def fake_load_calculated_node(node, node_type):
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@patch(f"{class_path}._load_calculated_node", side_effect=fake_load_calculated_node)
|
|
22
|
+
@patch('hestia_earth.models.utils.feedipedia._new_property', side_effect=fake_new_property)
|
|
22
23
|
def test_run(*args):
|
|
23
24
|
with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
|
|
24
25
|
cycle = json.load(f)
|
|
@@ -42,7 +43,8 @@ def test_run_with_dryMatter(*args):
|
|
|
42
43
|
assert result == expected
|
|
43
44
|
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
@patch('hestia_earth.models.utils.feedipedia._new_property', side_effect=fake_new_property)
|
|
47
|
+
def test_run_with_min_max(*args):
|
|
46
48
|
with open(f"{fixtures_folder}/with-min-max/cycle.jsonld", encoding='utf-8') as f:
|
|
47
49
|
cycle = json.load(f)
|
|
48
50
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
from unittest.mock import patch
|
|
1
2
|
import json
|
|
2
|
-
from tests.utils import fixtures_path
|
|
3
|
+
from tests.utils import fixtures_path, fake_new_property
|
|
3
4
|
|
|
4
5
|
from hestia_earth.models.cycle.animal.properties import MODEL_KEY, run
|
|
5
6
|
|
|
@@ -7,7 +8,8 @@ class_path = f"hestia_earth.models.cycle.animal.{MODEL_KEY}"
|
|
|
7
8
|
fixtures_folder = f"{fixtures_path}/cycle/animal/{MODEL_KEY}"
|
|
8
9
|
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
@patch('hestia_earth.models.utils.feedipedia._new_property', side_effect=fake_new_property)
|
|
12
|
+
def test_run_with_min_max(*args):
|
|
11
13
|
with open(f"{fixtures_folder}/with-min-max/cycle.jsonld", encoding='utf-8') as f:
|
|
12
14
|
cycle = json.load(f)
|
|
13
15
|
|
|
@@ -19,6 +19,7 @@ def fake_load_calculated_node(node, node_type):
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@patch(f"{class_path}._load_calculated_node", side_effect=fake_load_calculated_node)
|
|
22
|
+
@patch('hestia_earth.models.utils.feedipedia._new_property', side_effect=fake_new_property)
|
|
22
23
|
def test_run(*args):
|
|
23
24
|
with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
|
|
24
25
|
cycle = json.load(f)
|
|
@@ -42,7 +43,8 @@ def test_run_with_dryMatter(*args):
|
|
|
42
43
|
assert result == expected
|
|
43
44
|
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
@patch('hestia_earth.models.utils.feedipedia._new_property', side_effect=fake_new_property)
|
|
47
|
+
def test_run_with_min_max(*args):
|
|
46
48
|
with open(f"{fixtures_folder}/with-min-max/cycle.jsonld", encoding='utf-8') as f:
|
|
47
49
|
cycle = json.load(f)
|
|
48
50
|
|
|
@@ -20,7 +20,8 @@ def test_run_with_dryMatter(*args):
|
|
|
20
20
|
assert result == expected
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
@patch('hestia_earth.models.utils.feedipedia._new_property', side_effect=fake_new_property)
|
|
24
|
+
def test_run_with_min_max(*args):
|
|
24
25
|
with open(f"{fixtures_folder}/with-min-max/cycle.jsonld", encoding='utf-8') as f:
|
|
25
26
|
cycle = json.load(f)
|
|
26
27
|
|
|
@@ -34,6 +34,7 @@ def test_should_run():
|
|
|
34
34
|
assert should_run is True
|
|
35
35
|
|
|
36
36
|
|
|
37
|
+
@patch("hestia_earth.models.utils.property.download_hestia", return_value={'units': '%'})
|
|
37
38
|
@patch(f"{class_path}._new_property", side_effect=fake_new_property)
|
|
38
39
|
def test_run(*args):
|
|
39
40
|
with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
|
|
@@ -34,6 +34,7 @@ def test_should_run():
|
|
|
34
34
|
assert should_run is True
|
|
35
35
|
|
|
36
36
|
|
|
37
|
+
@patch("hestia_earth.models.utils.property.download_hestia", return_value={'units': '%'})
|
|
37
38
|
@patch(f"{class_path}._new_property", side_effect=fake_new_property)
|
|
38
39
|
def test_run(*args):
|
|
39
40
|
with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
|
|
@@ -24,6 +24,7 @@ def test_should_run_input():
|
|
|
24
24
|
assert _should_run_input({})(input) is True
|
|
25
25
|
|
|
26
26
|
|
|
27
|
+
@patch("hestia_earth.models.utils.property.download_hestia", return_value={'units': '%'})
|
|
27
28
|
@patch(f"{class_path}.get_wood_fuel_terms", return_value=['woodPellets', 'woodFuel'])
|
|
28
29
|
@patch(f"{class_path}._new_property", side_effect=fake_new_property)
|
|
29
30
|
def test_run(*args):
|
|
@@ -8,6 +8,14 @@ from hestia_earth.models.cycle.feedConversionRatio import MODEL, run, _should_ru
|
|
|
8
8
|
class_path = f"hestia_earth.models.{MODEL}.feedConversionRatio"
|
|
9
9
|
fixtures_folder = f"{fixtures_path}/{MODEL}/feedConversionRatio"
|
|
10
10
|
|
|
11
|
+
TERMS_BY_ID = {
|
|
12
|
+
'energyContentHigherHeatingValue': {'units': 'MJ / kg'},
|
|
13
|
+
'crudeProteinContent': {'units': '%'},
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def fake_download_hestia(term_id: str, *args): return TERMS_BY_ID[term_id]
|
|
18
|
+
|
|
11
19
|
|
|
12
20
|
@patch(f"{class_path}.get_total_value_converted_with_min_ratio", return_value=10)
|
|
13
21
|
def test_should_run(*args):
|
|
@@ -29,6 +37,7 @@ def test_should_run(*args):
|
|
|
29
37
|
assert should_run is True
|
|
30
38
|
|
|
31
39
|
|
|
40
|
+
@patch("hestia_earth.models.utils.property.download_hestia", side_effect=fake_download_hestia)
|
|
32
41
|
@patch(f"{class_path}.is_run_required", return_value=True)
|
|
33
42
|
@patch(f"{class_path}._new_practice", side_effect=fake_new_practice)
|
|
34
43
|
def test_run(*args):
|
|
@@ -42,6 +51,7 @@ def test_run(*args):
|
|
|
42
51
|
assert value == expected
|
|
43
52
|
|
|
44
53
|
|
|
54
|
+
@patch("hestia_earth.models.utils.property.download_hestia", side_effect=fake_download_hestia)
|
|
45
55
|
@patch(f"{class_path}.is_run_required", return_value=True)
|
|
46
56
|
@patch(f"{class_path}._new_practice", side_effect=fake_new_practice)
|
|
47
57
|
def test_run_with_carcass(*args):
|
|
@@ -34,6 +34,7 @@ def test_should_run():
|
|
|
34
34
|
assert should_run is True
|
|
35
35
|
|
|
36
36
|
|
|
37
|
+
@patch("hestia_earth.models.utils.property.download_hestia", return_value={'units': '%'})
|
|
37
38
|
@patch(f"{class_path}._new_property", side_effect=fake_new_property)
|
|
38
39
|
def test_run(*args):
|
|
39
40
|
with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
|
|
@@ -8,9 +8,10 @@ class_path = f"hestia_earth.models.{MODEL}.{TERM_ID}"
|
|
|
8
8
|
fixtures_folder = f"{fixtures_path}/{MODEL}/{TERM_ID}"
|
|
9
9
|
|
|
10
10
|
|
|
11
|
+
@patch(f"{class_path}.has_flooded_rice", return_value=False)
|
|
11
12
|
@patch(f"{class_path}._is_term_type_complete", return_value=False)
|
|
12
13
|
@patch(f"{class_path}.get_crop_residue_decomposition_N_total", return_value=0)
|
|
13
|
-
def test_should_run(mock_N_total, mock_complete):
|
|
14
|
+
def test_should_run(mock_N_total, mock_complete, *args):
|
|
14
15
|
# no N => no run
|
|
15
16
|
should_run, *args = _should_run({})
|
|
16
17
|
assert not should_run
|
|
@@ -26,6 +27,7 @@ def test_should_run(mock_N_total, mock_complete):
|
|
|
26
27
|
assert should_run is True
|
|
27
28
|
|
|
28
29
|
|
|
30
|
+
@patch(f"{class_path}.has_flooded_rice", return_value=False)
|
|
29
31
|
@patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
|
|
30
32
|
def test_run(*args):
|
|
31
33
|
with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
|
|
@@ -38,6 +40,7 @@ def test_run(*args):
|
|
|
38
40
|
assert value == expected
|
|
39
41
|
|
|
40
42
|
|
|
43
|
+
@patch(f"{class_path}.has_flooded_rice", return_value=True)
|
|
41
44
|
@patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
|
|
42
45
|
def test_run_flooded_rice(*args):
|
|
43
46
|
with open(f"{fixtures_folder}/with-flooded-rice/cycle.jsonld", encoding='utf-8') as f:
|
|
File without changes
|