From de8995f2f999f28dc61713bf2e52e6eb0ede8aef Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Fri, 12 Jul 2019 09:40:11 +0200 Subject: [PATCH 1/7] Add append startdate config --- earthdiagnostics/config.py | 1 + earthdiagnostics/data_convention.py | 3 +++ test/unit/data_convention/test_primavera.py | 14 ++++++++++++++ 3 files changed, 18 insertions(+) diff --git a/earthdiagnostics/config.py b/earthdiagnostics/config.py index 6bdf281a..089504f9 100644 --- a/earthdiagnostics/config.py +++ b/earthdiagnostics/config.py @@ -250,6 +250,7 @@ class CMORConfig(object): self.activity = parser.get_option('CMOR', 'ACTIVITY', 'CMIP') self.min_cmorized_vars = parser.get_int_option('CMOR', 'MIN_CMORIZED_VARS', 10) self.append_startdate = parser.get_bool_option('CMOR', 'APPEND_STARTDATE', False) + self.append_startdate_only_year = parser.get_bool_option('CMOR', 'APPEND_STARTDATE_ONLY_YEAR', False) vars_string = parser.get_option('CMOR', 'VARIABLE_LIST', '') self.var_manager = var_manager diff --git a/earthdiagnostics/data_convention.py b/earthdiagnostics/data_convention.py index 9e855dd1..0baa313e 100644 --- a/earthdiagnostics/data_convention.py +++ b/earthdiagnostics/data_convention.py @@ -585,6 +585,8 @@ class Cmor3Convention(DataConvention): else: grid = self.config.cmor.default_atmos_grid if self.config.cmor.append_startdate: + if self.config.cmor.append_startdate_only_year: + startdate = startdate[0:4] subexp_id = 's{}-'.format(startdate) else: subexp_id = '' @@ -672,6 +674,7 @@ class Cmor3Convention(DataConvention): Get experiment name. CMOR3 ignores append startdates as thery are added to the member str + but only in the filename Parameters ---------- diff --git a/test/unit/data_convention/test_primavera.py b/test/unit/data_convention/test_primavera.py index f2e6739b..1acf52a3 100644 --- a/test/unit/data_convention/test_primavera.py +++ b/test/unit/data_convention/test_primavera.py @@ -32,6 +32,7 @@ class TestPrimaveraConvention(TestCase): self.config.cmor.activity = 'activity' self.config.cmor.append_startdate = False + self.config.cmor.append_startdate_only_year = False self.config.cmor.initialization_number = 1 self.config.cmor.version = 'version' self.config.cmor.default_ocean_grid = 'ocean_grid' @@ -148,6 +149,19 @@ class TestPrimaveraConvention(TestCase): self.assertEqual(file_path, 'var_Omon_model_experiment_name_s19900101-r2i1p1f1_ocean_grid_199001-199001.nc') + def test_get_filename_with_startdate_only_year(self): + """Test get_filename with startdate""" + self.config.cmor.append_startdate = True + self.config.cmor.append_startdate_only_year = True + cmor_var = Mock() + omon = Mock() + omon.name = 'Omon' + cmor_var.get_table.return_value = omon + file_path = self.convention.get_file_name('19900101', 1, ModelingRealms.ocean, 'var', cmor_var, + Frequencies.monthly, 1, None, None, None) + self.assertEqual(file_path, + 'var_Omon_model_experiment_name_s1990-r2i1p1f1_ocean_grid_199001-199001.nc') + def test_get_filename_no_cmor_var(self): """Test get_filename not passing cmor_var""" cmor_var = Mock() -- GitLab From 7b7a00d1ef7fce1db231b5685cf01b0f71ac078d Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Fri, 12 Jul 2019 09:52:54 +0200 Subject: [PATCH 2/7] Update version --- VERSION | 3 +-- doc/source/conf.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/VERSION b/VERSION index 0c6173b5..94ff29cc 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1 @@ -3.1.0 - +3.1.1 diff --git a/doc/source/conf.py b/doc/source/conf.py index 4fe7782d..390e6a19 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -65,7 +65,7 @@ copyright = u'2018, BSC-CNS Earth Sciences Department' # The short X.Y version. version = '3.1' # The full version, including alpha/beta/rc tags. -release = '3.1.0' +release = '3.1.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. -- GitLab From a53acc83c78c2c7a0120b5e4b7198183c791402e Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Fri, 12 Jul 2019 10:36:55 +0200 Subject: [PATCH 3/7] Install diagonals from source for testing --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e7a4660d..f01ca20d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,6 +24,7 @@ test_python2: - git submodule update --init --recursive - conda env update -f environment.yml -n earthdiagnostics2 python=2.7 - source activate earthdiagnostics2 + - pip install git+https://earth.bsc.es/gitlab/es/diagonals.git - pip install . - python setup.py test @@ -34,6 +35,7 @@ test_python3: - git submodule update --init --recursive - conda env update -f environment.yml -n earthdiagnostics3 python=3.7 - source activate earthdiagnostics3 + - pip install git+https://earth.bsc.es/gitlab/es/diagonals.git - pip install . - python setup.py test @@ -48,5 +50,3 @@ clean: stage: clean script: - conda clean --all --yes - - -- GitLab From 3e801e9ae44375c534cb1badb9369db652a8c52d Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Fri, 12 Jul 2019 17:34:34 +0200 Subject: [PATCH 4/7] Fix tests --- .gitlab-ci.yml | 4 +- VERSION | 3 +- doc/source/conf.py | 2 +- earthdiagnostics/config.py | 2 +- earthdiagnostics/data_convention.py | 3 +- earthdiagnostics/ocean/moc.py | 8 ++-- earthdiagnostics/ocean/regionmean.py | 41 ++++++++++----------- earthdiagnostics/ocean/regionsum.py | 13 ++----- earthdiagnostics/ocean/siasiesiv.py | 16 ++++---- test/unit/data_convention/test_primavera.py | 6 +-- test/unit/ocean/test_region_mean.py | 32 ++++++++-------- 11 files changed, 60 insertions(+), 70 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f01ca20d..e7a4660d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,7 +24,6 @@ test_python2: - git submodule update --init --recursive - conda env update -f environment.yml -n earthdiagnostics2 python=2.7 - source activate earthdiagnostics2 - - pip install git+https://earth.bsc.es/gitlab/es/diagonals.git - pip install . - python setup.py test @@ -35,7 +34,6 @@ test_python3: - git submodule update --init --recursive - conda env update -f environment.yml -n earthdiagnostics3 python=3.7 - source activate earthdiagnostics3 - - pip install git+https://earth.bsc.es/gitlab/es/diagonals.git - pip install . - python setup.py test @@ -50,3 +48,5 @@ clean: stage: clean script: - conda clean --all --yes + + diff --git a/VERSION b/VERSION index 94ff29cc..0c6173b5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1,2 @@ -3.1.1 +3.1.0 + diff --git a/doc/source/conf.py b/doc/source/conf.py index 390e6a19..4fe7782d 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -65,7 +65,7 @@ copyright = u'2018, BSC-CNS Earth Sciences Department' # The short X.Y version. version = '3.1' # The full version, including alpha/beta/rc tags. -release = '3.1.1' +release = '3.1.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/earthdiagnostics/config.py b/earthdiagnostics/config.py index 089504f9..838bb223 100644 --- a/earthdiagnostics/config.py +++ b/earthdiagnostics/config.py @@ -250,7 +250,7 @@ class CMORConfig(object): self.activity = parser.get_option('CMOR', 'ACTIVITY', 'CMIP') self.min_cmorized_vars = parser.get_int_option('CMOR', 'MIN_CMORIZED_VARS', 10) self.append_startdate = parser.get_bool_option('CMOR', 'APPEND_STARTDATE', False) - self.append_startdate_only_year = parser.get_bool_option('CMOR', 'APPEND_STARTDATE_ONLY_YEAR', False) + self.append_startdate_year_only = parser.get_bool_option('CMOR', 'APPEND_STARTDATE_YEAR_ONLY', False) vars_string = parser.get_option('CMOR', 'VARIABLE_LIST', '') self.var_manager = var_manager diff --git a/earthdiagnostics/data_convention.py b/earthdiagnostics/data_convention.py index 0baa313e..1c54d35c 100644 --- a/earthdiagnostics/data_convention.py +++ b/earthdiagnostics/data_convention.py @@ -585,7 +585,7 @@ class Cmor3Convention(DataConvention): else: grid = self.config.cmor.default_atmos_grid if self.config.cmor.append_startdate: - if self.config.cmor.append_startdate_only_year: + if self.config.cmor.append_startdate_year_only: startdate = startdate[0:4] subexp_id = 's{}-'.format(startdate) else: @@ -674,7 +674,6 @@ class Cmor3Convention(DataConvention): Get experiment name. CMOR3 ignores append startdates as thery are added to the member str - but only in the filename Parameters ---------- diff --git a/earthdiagnostics/ocean/moc.py b/earthdiagnostics/ocean/moc.py index 7732726d..a294b824 100644 --- a/earthdiagnostics/ocean/moc.py +++ b/earthdiagnostics/ocean/moc.py @@ -67,8 +67,10 @@ class Moc(Diagnostic): def __eq__(self, other): if self._different_type(other): return False - return self.startdate == other.startdate and \ - self.member == other.member and self.chunk == other.chunk + return ( + self.startdate == other.startdate and + self.member == other.member and self.chunk == other.chunk + ) @classmethod def generate_jobs(cls, diags, options): @@ -136,7 +138,6 @@ class Moc(Diagnostic): del vo, e1v, e3v self._save_result(moc_results, mesh) - def _save_result(self, result, mesh): temp = TempFile.get() handler_source = Utils.open_cdf(self.variable_file.local_file) @@ -151,7 +152,6 @@ class Moc(Diagnostic): handler_temp.createDimension('region', len(result)) handler_temp.createDimension('region_length', 50) - var_region = handler_temp.createVariable('region', 'S1', ('region', 'region_length')) diff --git a/earthdiagnostics/ocean/regionmean.py b/earthdiagnostics/ocean/regionmean.py index 792793a5..c70c9500 100644 --- a/earthdiagnostics/ocean/regionmean.py +++ b/earthdiagnostics/ocean/regionmean.py @@ -22,7 +22,6 @@ import diagonals.regmean as regmean from diagonals.mesh_helpers.nemo import Nemo - class RegionMean(Diagnostic): """ Computes the mean value of the field (3D, weighted). @@ -79,10 +78,10 @@ class RegionMean(Diagnostic): self.box == other.box and self.variable == other.variable def __str__(self): - return 'Region mean Startdate: {0.startdate} Member: {0.member}' \ - 'Chunk: {0.chunk} Variable: {0.variable} ' \ - 'Box: {0.box} Save 3D: {0.save3d} Save variance: {0.variance}' \ - 'Grid point: {0.grid_point}'.format(self) + return ('Region mean Startdate: {0.startdate} Member: {0.member} ' + 'Chunk: {0.chunk} Variable: {0.variable} ' + 'Box: {0.box} Save 3D: {0.save3d} Save variance: {0.variance} ' + 'Grid point: {0.grid_point}'.format(self)) def __hash__(self): return hash(str(self)) @@ -101,8 +100,7 @@ class RegionMean(Diagnostic): options_available = (DiagnosticDomainOption(), DiagnosticVariableOption(diags.data_manager.config.var_manager), DiagnosticOption('grid_point', 'T'), - DiagnosticBasinListOption('basins', - Basins().Global), + DiagnosticBasinListOption('basins', 'global'), DiagnosticIntOption('min_depth', -1), DiagnosticIntOption('max_depth', -1), DiagnosticIntOption('min_lat', -1), @@ -117,17 +115,18 @@ class RegionMean(Diagnostic): box = Box() box.min_depth = options['min_depth'] box.max_depth = options['max_depth'] - box.min_lat = options['min_lat'] - box.max_lat = options['max_lat'] - box.min_lon = options['min_lon'] - box.max_lon = options['max_lon'] + if options['min_lat'] != -1: + box.min_lat = options['min_lat'] + box.max_lat = options['max_lat'] + if options['min_lon'] != -1 or options['max_lon'] != -1: + box.min_lon = options['min_lon'] + box.max_lon = options['max_lon'] basins = options['basins'] if not basins: Log.error('Basins not recognized') return() - job_list = list() for startdate, member, chunk in diags.config.experiment.get_chunk_list(): job = RegionMean(diags.data_manager, startdate, member, chunk, @@ -165,10 +164,13 @@ class RegionMean(Diagnostic): masks[basin] = Utils.get_mask(basin) mesh = Nemo('mesh_hgr.nc', 'mask_regions.nc') - if self.box.min_lat is not -1 and self.box.max_lat is not -1 and \ - self.box.min_lon is not -1 and self.box.max_lat is not -1: - name = '{0}_{1}'.format(Box.get_lat_str(self.box), - Box.get_lon_str(self.box)) + if ( + self.box.min_lat is not -1 and self.box.max_lat is not -1 and + self.box.min_lon is not -1 and self.box.max_lat is not -1 + ): + name = '{0}_{1}'.format( + Box.get_lat_str(self.box), Box.get_lon_str(self.box) + ) masks[name] = mesh.get_region_mask(self.box.min_lat, self.box.max_lat, @@ -184,7 +186,6 @@ class RegionMean(Diagnostic): mean = regmean.compute_regmean_2D(data.data, masks, areacello) self._save_result_2D('mean', mean, data) - def _meand_3d_variable(self, data, mesh, masks): areacello = mesh.get_areacello(cell_point=self.grid_point) e3 = self._try_load_cube(3) @@ -222,7 +223,6 @@ class RegionMean(Diagnostic): var_name='j'), dims - 2) return cube - def _load_data(self): coords = [] handler = Utils.open_cdf(self.variable_file.local_file) @@ -279,7 +279,6 @@ class RegionMean(Diagnostic): box=box_save, region=self.basins) - def _save_result_2D(self, var, result, data): final_name = '{1}{0}'.format(var, self.variable) temp = TempFile.get() @@ -299,7 +298,6 @@ class RegionMean(Diagnostic): handler_temp.close() self.declared[final_name].set_local_file(temp, diagnostic=self) - def _save_result_3D(self, var, result, data): final_name = '{1}3d{0}'.format(var, self.variable) temp = TempFile.get() @@ -321,11 +319,10 @@ class RegionMean(Diagnostic): var = handler_temp.createVariable('{1}3d{0}'.format(var, self.variable), float, ('time', 'lev', 'region',),) - + var.units = '{0}'.format(data.units) for i, basin in enumerate(result): var_region[i, ...] = netCDF4.stringtoarr(str(basin), 50) var[..., i] = result[basin] handler_temp.close() self.declared[final_name].set_local_file(temp, diagnostic=self) - diff --git a/earthdiagnostics/ocean/regionsum.py b/earthdiagnostics/ocean/regionsum.py index f9207e59..99b46ce1 100644 --- a/earthdiagnostics/ocean/regionsum.py +++ b/earthdiagnostics/ocean/regionsum.py @@ -24,6 +24,7 @@ from earthdiagnostics.utils import Utils, TempFile import diagonals.regsum as regsum from diagonals.mesh_helpers.nemo import Nemo + class RegionSum(Diagnostic): """ Computes the sum of the field (3D, weighted). @@ -88,11 +89,9 @@ class RegionSum(Diagnostic): 'Grid point: {0.grid_point} Box: {0.box} Save 3D: {0.save3d}' \ 'Original grid: {0.grid} Basin: {0.basins}'.format(self) - def __hash__(self): return hash(str(self)) - @classmethod def generate_jobs(cls, diags, options): """ @@ -167,7 +166,8 @@ class RegionSum(Diagnostic): masks[basin] = Utils.get_mask(basin) mesh = Nemo('mesh_hgr.nc', 'mask_regions.nc') - if self.box.min_lat is not -1 and self.box.max_lat is not -1 and self.box.min_lon is not -1 and self.box.max_lat is not -1: + if self.box.min_lat is not -1 and self.box.max_lat is not -1 and \ + self.box.min_lon is not -1 and self.box.max_lat is not -1: name = '{0}_{1}'.format(Box.get_lat_str(self.box), Box.get_lon_str(self.box)) masks[name] = mesh.get_region_mask(self.box.min_lat, @@ -179,13 +179,11 @@ class RegionSum(Diagnostic): else: self._sum_2d_var(data, mesh, masks) - def _sum_2d_var(self, data, mesh, masks): areacello = mesh.get_areacello(cell_point=self.grid_point) varsum = regsum.compute_regsum_2D(data.data, masks, areacello) self._save_result_2D('sum', varsum, data) - def _sum_3d_variable(self, data, mesh, masks): areacello = mesh.get_areacello(cell_point=self.grid_point) tmask = iris.load_cube('mesh_hgr.nc', '{0}mask'.format(self.grid_point)) @@ -206,7 +204,6 @@ class RegionSum(Diagnostic): volcello, tmask) self._save_result_3D('sum', varsum3d, data) - def _try_load_cube(self, number): try: cube = iris.load_cube('mesh_hgr.nc', 'e{0}{1}'.format(number, self.grid_point)) @@ -239,7 +236,6 @@ class RegionSum(Diagnostic): data = iris.load_cube(self.variable_file.local_file) return self._rename_depth(data) - def _rename_depth(self, data): for coord_name in ('model_level_number', 'Vertical T levels', 'lev'): if data.coords(coord_name): @@ -249,7 +245,6 @@ class RegionSum(Diagnostic): break return data - def _fix_file_metadata(self): handler = Utils.open_cdf(self.variable_file.local_file) var = handler.variables[self.variable] @@ -314,7 +309,6 @@ class RegionSum(Diagnostic): self.declared[final_name] = self.declare_chunk(ModelingRealms.ocean, final_name, self.startdate, self.member, self.chunk, box=box_save, region=self.basins, grid=self.grid) - def _save_result_2D(self, var, result, data): final_name = '{1}{0}'.format(var, self.variable) temp = TempFile.get() @@ -334,7 +328,6 @@ class RegionSum(Diagnostic): handler_temp.close() self.declared[final_name].set_local_file(temp, diagnostic=self) - def _save_result_3D(self, var, result, data): final_name = '{1}3d{0}'.format(var, self.variable) temp = TempFile.get() diff --git a/earthdiagnostics/ocean/siasiesiv.py b/earthdiagnostics/ocean/siasiesiv.py index 5cf4a905..f623f483 100644 --- a/earthdiagnostics/ocean/siasiesiv.py +++ b/earthdiagnostics/ocean/siasiesiv.py @@ -150,7 +150,8 @@ class Siasiesiv(Diagnostic): mesh = Nemo('mesh_hgr.nc', 'mask_regions.nc') areacello = mesh.get_areacello(cell_point='T') gphit = mesh.get_grid_latitude(cell_point='T') - self.results['siextentn'], self.results['siextents'], self.results['siarean'], self.results['siareas'] = siasie.compute(gphit, areacello, sic_slices, self.masks) + self.results['siextentn'], self.results['siextents'], self.results['siarean'], self.results['siareas'] = \ + siasie.compute(gphit, areacello, sic_slices, self.masks) self.save() @@ -165,7 +166,6 @@ class Siasiesiv(Diagnostic): ' '.join(set(coordinates) | add_coordinates) handler.close() - def save(self): for var in self.results.keys(): res = self.results[var] @@ -175,15 +175,15 @@ class Siasiesiv(Diagnostic): Utils.copy_variable(handler_source, handler_temp, 'time', True, True) handler_temp.createDimension('region', len(self.masks)) handler_temp.createDimension('region_length', 50) - var_region = handler_temp.createVariable('region', 'S1', - ('region', 'region_length')) - var_res = handler_temp.createVariable('{0}'.format(var), float, - ('time', 'region',)) + var_region = handler_temp.createVariable( + 'region', 'S1', ('region', 'region_length') + ) + var_res = handler_temp.createVariable( + '{0}'.format(var), float, ('time', 'region',) + ) var_res.units = 'm^2' for i, basin in enumerate(self.masks): var_region[i, ...] = netCDF4.stringtoarr(str(basin), 50) var_res[..., i] = res[i, ...] handler_temp.close() self.generated[var].set_local_file(temp, diagnostic=self) - - diff --git a/test/unit/data_convention/test_primavera.py b/test/unit/data_convention/test_primavera.py index 1acf52a3..52a06faa 100644 --- a/test/unit/data_convention/test_primavera.py +++ b/test/unit/data_convention/test_primavera.py @@ -32,7 +32,7 @@ class TestPrimaveraConvention(TestCase): self.config.cmor.activity = 'activity' self.config.cmor.append_startdate = False - self.config.cmor.append_startdate_only_year = False + self.config.cmor.append_startdate_year_only = False self.config.cmor.initialization_number = 1 self.config.cmor.version = 'version' self.config.cmor.default_ocean_grid = 'ocean_grid' @@ -149,10 +149,10 @@ class TestPrimaveraConvention(TestCase): self.assertEqual(file_path, 'var_Omon_model_experiment_name_s19900101-r2i1p1f1_ocean_grid_199001-199001.nc') - def test_get_filename_with_startdate_only_year(self): + def test_get_filename_with_startdate_year_only(self): """Test get_filename with startdate""" self.config.cmor.append_startdate = True - self.config.cmor.append_startdate_only_year = True + self.config.cmor.append_startdate_year_only = True cmor_var = Mock() omon = Mock() omon.name = 'Omon' diff --git a/test/unit/ocean/test_region_mean.py b/test/unit/ocean/test_region_mean.py index 966ed536..e7f758b5 100644 --- a/test/unit/ocean/test_region_mean.py +++ b/test/unit/ocean/test_region_mean.py @@ -38,23 +38,23 @@ class TestRegionMean(TestCase): jobs = RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var']) self.assertEqual(len(jobs), 2) self.assertEqual(jobs[0], RegionMean(self.data_manager, '20010101', 0, 0, ModelingRealms.ocean, 'var', - box, True, 'weights', False, Basins().Global)) + box, True, False, Basins().Global, 't')) self.assertEqual(jobs[1], RegionMean(self.data_manager, '20010101', 0, 1, ModelingRealms.ocean, 'var', - box, True, 'weights', False, Basins().Global)) + box, True, False, Basins().Global, 't')) jobs = RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U']) self.assertEqual(len(jobs), 2) self.assertEqual(jobs[0], RegionMean(self.data_manager, '20010101', 0, 0, ModelingRealms.ocean, 'var', - box, True, 'weights', False, Basins().Global)) + box, True, False, Basins().Global, 'u')) self.assertEqual(jobs[1], RegionMean(self.data_manager, '20010101', 0, 1, ModelingRealms.ocean, 'var', - box, True, 'weights', False, Basins().Global)) + box, True, False, Basins().Global, 'u')) jobs = RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global']) self.assertEqual(len(jobs), 2) self.assertEqual(jobs[0], RegionMean(self.data_manager, '20010101', 0, 0, ModelingRealms.ocean, 'var', - box, True, 'weights', False, Basins().Global)) + box, True, False, Basins().Global, 'u')) self.assertEqual(jobs[1], RegionMean(self.data_manager, '20010101', 0, 1, ModelingRealms.ocean, 'var', - box, True, 'weights', False, Basins().Global)) + box, True, False, Basins().Global, 'u')) box = Box() box.min_depth = 1.0 @@ -63,26 +63,26 @@ class TestRegionMean(TestCase): jobs = RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10']) self.assertEqual(len(jobs), 2) self.assertEqual(jobs[0], RegionMean(self.data_manager, '20010101', 0, 0, ModelingRealms.ocean, 'var', - box, True, 'weights', False, Basins().Global)) + box, True, False, Basins().Global, 'u')) self.assertEqual(jobs[1], RegionMean(self.data_manager, '20010101', 0, 1, ModelingRealms.ocean, 'var', - box, True, 'weights', False, Basins().Global)) + box, True, False, Basins().Global, 'u')) - jobs = RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', 'false']) + jobs = RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', '', '', '', '','false']) self.assertEqual(len(jobs), 2) self.assertEqual(jobs[0], RegionMean(self.data_manager, '20010101', 0, 0, ModelingRealms.ocean, 'var', - box, False, Basins().Global, False, '')) + box, False, False, Basins().Global, 'u')) self.assertEqual(jobs[1], RegionMean(self.data_manager, '20010101', 0, 1, ModelingRealms.ocean, 'var', - box, False, Basins().Global, False, '')) + box, False, False, Basins().Global, 'u')) - jobs = RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', 'false', + jobs = RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', '', '', '', '','false', 'True']) self.assertEqual(len(jobs), 2) self.assertEqual(jobs[0], RegionMean(self.data_manager, '20010101', 0, 0, ModelingRealms.ocean, 'var', - box, False, Basins().Global, True, '')) + box, False, True, Basins().Global, 'u')) self.assertEqual(jobs[1], RegionMean(self.data_manager, '20010101', 0, 1, ModelingRealms.ocean, 'var', - box, False, Basins().Global, True, '')) + box, False, True, Basins().Global, 'u')) - jobs = RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', 'false', + jobs = RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', '', '', '', '', 'false', 'True', 'grid']) self.assertEqual(len(jobs), 2) self.assertEqual(jobs[0], RegionMean(self.data_manager, '20010101', 0, 0, ModelingRealms.ocean, 'var', @@ -94,7 +94,7 @@ class TestRegionMean(TestCase): RegionMean.generate_jobs(self.diags, ['diagnostic']) with self.assertRaises(DiagnosticOptionError): - RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', 'false', + RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', '', '', '', '', 'false', 'True', 'grid', 'extra']) def test_str(self): -- GitLab From 5f5713ba700fb410ac21d1befaaf5a4dbfaf3f9a Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Fri, 19 Jul 2019 18:23:22 +0200 Subject: [PATCH 5/7] Fix lint --- test/unit/ocean/test_region_mean.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/test/unit/ocean/test_region_mean.py b/test/unit/ocean/test_region_mean.py index e7f758b5..35f8a09c 100644 --- a/test/unit/ocean/test_region_mean.py +++ b/test/unit/ocean/test_region_mean.py @@ -67,23 +67,30 @@ class TestRegionMean(TestCase): self.assertEqual(jobs[1], RegionMean(self.data_manager, '20010101', 0, 1, ModelingRealms.ocean, 'var', box, True, False, Basins().Global, 'u')) - jobs = RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', '', '', '', '','false']) + jobs = RegionMean.generate_jobs( + self.diags, + ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', '', '', '', '', 'false'] + ) self.assertEqual(len(jobs), 2) self.assertEqual(jobs[0], RegionMean(self.data_manager, '20010101', 0, 0, ModelingRealms.ocean, 'var', box, False, False, Basins().Global, 'u')) self.assertEqual(jobs[1], RegionMean(self.data_manager, '20010101', 0, 1, ModelingRealms.ocean, 'var', box, False, False, Basins().Global, 'u')) - jobs = RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', '', '', '', '','false', - 'True']) + jobs = RegionMean.generate_jobs( + self.diags, + ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', '', '', '', '', 'false', 'True'] + ) self.assertEqual(len(jobs), 2) self.assertEqual(jobs[0], RegionMean(self.data_manager, '20010101', 0, 0, ModelingRealms.ocean, 'var', box, False, True, Basins().Global, 'u')) self.assertEqual(jobs[1], RegionMean(self.data_manager, '20010101', 0, 1, ModelingRealms.ocean, 'var', box, False, True, Basins().Global, 'u')) - jobs = RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', '', '', '', '', 'false', - 'True', 'grid']) + jobs = RegionMean.generate_jobs( + self.diags, + ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', '', '', '', '', 'false', 'True', 'grid'] + ) self.assertEqual(len(jobs), 2) self.assertEqual(jobs[0], RegionMean(self.data_manager, '20010101', 0, 0, ModelingRealms.ocean, 'var', box, False, Basins().Global, True, 'grid')) @@ -94,8 +101,11 @@ class TestRegionMean(TestCase): RegionMean.generate_jobs(self.diags, ['diagnostic']) with self.assertRaises(DiagnosticOptionError): - RegionMean.generate_jobs(self.diags, ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', '', '', '', '', 'false', - 'True', 'grid', 'extra']) + RegionMean.generate_jobs( + self.diags, + ['diagnostic', 'ocean', 'var', 'U', 'global', '1', '10', '', '', '', '', 'false', + 'True', 'grid', 'extra'] + ) def test_str(self): box = Box() -- GitLab From 6083e1c1b92821909a28012dc54a4bcf503ee767 Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Mon, 22 Jul 2019 12:46:20 +0200 Subject: [PATCH 6/7] Do not report to codacy outside protected branches --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e7a4660d..da63c94e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -40,6 +40,7 @@ test_python3: report_codacy: stage: report script: + - [ -z "$CODACY_PROJECT_TOKEN" ] && exit 0 - source activate earthdiagnostics3 - pip install codacy-coverage --upgrade - python-codacy-coverage -r test/report/python3/coverage.xml -- GitLab From e5a717be21d1dbbaf2cdeae089eb2abb8936c2a5 Mon Sep 17 00:00:00 2001 From: Javier Vegas-Regidor Date: Mon, 22 Jul 2019 13:06:33 +0200 Subject: [PATCH 7/7] Fix CI --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index da63c94e..f3e8d8c5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -40,7 +40,7 @@ test_python3: report_codacy: stage: report script: - - [ -z "$CODACY_PROJECT_TOKEN" ] && exit 0 + - '[ -z "$CODACY_PROJECT_TOKEN" ] && exit 0' - source activate earthdiagnostics3 - pip install codacy-coverage --upgrade - python-codacy-coverage -r test/report/python3/coverage.xml -- GitLab