From a1959c4a25b9c69fd33dbe479771bc5dbd5089b2 Mon Sep 17 00:00:00 2001 From: Philip Hackstock Date: Tue, 8 Mar 2022 11:20:15 +0100 Subject: [PATCH 1/5] Update error message for multiple models --- nomenclature/processor/region.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nomenclature/processor/region.py b/nomenclature/processor/region.py index a30ad72d..69025626 100644 --- a/nomenclature/processor/region.py +++ b/nomenclature/processor/region.py @@ -408,7 +408,8 @@ def apply(self, df: IamDataFrame, dsd: DataStructureDefinition) -> IamDataFrame: if not processed_dfs: raise ValueError( - f"The region aggregation for model {model} resulted in an empty dataset" + f"The region aggregation for model(s) {df.model} resulted in an empty " + "dataset." ) return pyam.concat(processed_dfs) From 81cd07af78888f04e70a430867d67ed04da16e3e Mon Sep 17 00:00:00 2001 From: Philip Hackstock Date: Tue, 8 Mar 2022 11:20:30 +0100 Subject: [PATCH 2/5] Add test for multiple models --- .../rename_only/{rename_only.yaml => model_a.yaml} | 0 tests/data/region_processing/rename_only/model_b.yaml | 4 ++++ tests/test_core.py | 10 ++++++++-- 3 files changed, 12 insertions(+), 2 deletions(-) rename tests/data/region_processing/rename_only/{rename_only.yaml => model_a.yaml} (100%) create mode 100644 tests/data/region_processing/rename_only/model_b.yaml diff --git a/tests/data/region_processing/rename_only/rename_only.yaml b/tests/data/region_processing/rename_only/model_a.yaml similarity index 100% rename from tests/data/region_processing/rename_only/rename_only.yaml rename to tests/data/region_processing/rename_only/model_a.yaml diff --git a/tests/data/region_processing/rename_only/model_b.yaml b/tests/data/region_processing/rename_only/model_b.yaml new file mode 100644 index 00000000..79b3795f --- /dev/null +++ b/tests/data/region_processing/rename_only/model_b.yaml @@ -0,0 +1,4 @@ +model: model_b +native_regions: + - region_a: region_A + - region_B diff --git a/tests/test_core.py b/tests/test_core.py index cb85a8bf..2606d40d 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -55,12 +55,18 @@ def test_region_processing_empty_raises(): pd.DataFrame( [ ["model_a", "scen_a", "region_foo", "Primary Energy", "EJ/yr", 1, 2], + ["model_b", "scen_a", "region_foo", "Primary Energy", "EJ/yr", 1, 2], ], columns=IAMC_IDX + [2005, 2010], ) ) - - with pytest.raises(ValueError, match="The region aggregation for model model_a"): + with pytest.raises( + ValueError, + match=( + "region aggregation for model\(s\) \['model_a', 'model_b'\] resulted in an " + "empty dataset" + ), + ): process( test_df, DataStructureDefinition(TEST_DATA_DIR / "region_processing/dsd"), From 6412524b7e69604206b21d32192eecffce364fd7 Mon Sep 17 00:00:00 2001 From: Philip Hackstock Date: Wed, 16 Mar 2022 11:16:34 +0100 Subject: [PATCH 3/5] Update nomenclature/processor/region.py Co-authored-by: Daniel Huppmann --- nomenclature/processor/region.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nomenclature/processor/region.py b/nomenclature/processor/region.py index 69025626..fbee0b92 100644 --- a/nomenclature/processor/region.py +++ b/nomenclature/processor/region.py @@ -408,8 +408,7 @@ def apply(self, df: IamDataFrame, dsd: DataStructureDefinition) -> IamDataFrame: if not processed_dfs: raise ValueError( - f"The region aggregation for model(s) {df.model} resulted in an empty " - "dataset." + f"The region-processing for model(s) {df.model} returned an empty dataset" ) return pyam.concat(processed_dfs) From 8e854d16f87229e13d16c3de2d389bb2355a5cd6 Mon Sep 17 00:00:00 2001 From: Philip Hackstock Date: Wed, 16 Mar 2022 14:30:04 +0100 Subject: [PATCH 4/5] Update to use region-processing --- nomenclature/processor/region.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nomenclature/processor/region.py b/nomenclature/processor/region.py index fbee0b92..f37b3c68 100644 --- a/nomenclature/processor/region.py +++ b/nomenclature/processor/region.py @@ -323,7 +323,7 @@ def apply(self, df: IamDataFrame, dsd: DataStructureDefinition) -> IamDataFrame: # If no mapping is defined the data frame is returned unchanged if model not in self.mappings: - logger.info(f"No region aggregation mapping found for model {model}") + logger.info(f"No model mapping found for model {model}") processed_dfs.append(model_df) # Otherwise we first rename, then aggregate @@ -331,7 +331,7 @@ def apply(self, df: IamDataFrame, dsd: DataStructureDefinition) -> IamDataFrame: # before aggregating, check that all regions are valid self.mappings[model].validate_regions(dsd) logger.info( - f"Applying region aggregation for model {model} from file " + f"Applying region-processing for model {model} from file " f"{self.mappings[model].file}" ) @@ -408,7 +408,8 @@ def apply(self, df: IamDataFrame, dsd: DataStructureDefinition) -> IamDataFrame: if not processed_dfs: raise ValueError( - f"The region-processing for model(s) {df.model} returned an empty dataset" + f"The region-processing for model(s) {df.model} returned an empty " + "dataset" ) return pyam.concat(processed_dfs) From f021ced5ee5292ce340280a59aeb73a6f9ae02e0 Mon Sep 17 00:00:00 2001 From: Philip Hackstock Date: Wed, 16 Mar 2022 14:30:24 +0100 Subject: [PATCH 5/5] Shortened error match --- tests/test_core.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/tests/test_core.py b/tests/test_core.py index 2606d40d..8dc3830e 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -60,13 +60,7 @@ def test_region_processing_empty_raises(): columns=IAMC_IDX + [2005, 2010], ) ) - with pytest.raises( - ValueError, - match=( - "region aggregation for model\(s\) \['model_a', 'model_b'\] resulted in an " - "empty dataset" - ), - ): + with pytest.raises(ValueError, match=("'model_a', 'model_b'.*empty dataset")): process( test_df, DataStructureDefinition(TEST_DATA_DIR / "region_processing/dsd"),