diff --git a/README.md b/README.md
index 8dc3f49e5..0b81db984 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # ESMValCore package
 
-[![Documentation Status](https://readthedocs.org/projects/esmvaltool/badge/?version=latest)](https://esmvaltool.readthedocs.io/en/latest/?badge=latest)
+[![Documentation Status](https://readthedocs.org/projects/esmvaltool/badge/?version=version2_development)](https://esmvaltool.readthedocs.io/en/version2_development/?badge=version2_development)
 [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3387139.svg)](https://doi.org/10.5281/zenodo.3387139)
 [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ESMValGroup?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
 [![CircleCI](https://circleci.com/gh/ESMValGroup/ESMValCore.svg?style=svg)](https://circleci.com/gh/ESMValGroup/ESMValCore)
diff --git a/doc/esmvalcore/preprocessor.rst b/doc/esmvalcore/preprocessor.rst
index 102862b8b..43552aa94 100644
--- a/doc/esmvalcore/preprocessor.rst
+++ b/doc/esmvalcore/preprocessor.rst
@@ -687,7 +687,7 @@ This function produces statistics for each day in the dataset.
 
 Parameters:
     * operator: operation to apply. Accepted values are 'mean',
-      'median', 'std_dev', 'min' and 'max'. Default is 'mean'
+      'median', 'std_dev', 'min', 'max' and 'sum'. Default is 'mean'
 
 See also :func:`esmvalcore.preprocessor.daily_statistics`.
 
@@ -700,7 +700,7 @@ This function produces statistics for each month in the dataset.
 
 Parameters:
     * operator: operation to apply. Accepted values are 'mean',
-      'median', 'std_dev', 'min' and 'max'. Default is 'mean'
+      'median', 'std_dev', 'min', 'max' and 'sum'. Default is 'mean'
 
 See also :func:`esmvalcore.preprocessor.monthly_statistics`.
 
@@ -720,7 +720,7 @@ December and remove such biased initial datapoints.
 
 Parameters:
     * operator: operation to apply. Accepted values are 'mean',
-      'median', 'std_dev', 'min' and 'max'. Default is 'mean'
+      'median', 'std_dev', 'min', 'max' and 'sum'. Default is 'mean'
 
 See also :func:`esmvalcore.preprocessor.seasonal_mean`.
 
@@ -733,7 +733,7 @@ This function produces statistics for each year.
 
 Parameters:
     * operator: operation to apply. Accepted values are 'mean',
-      'median', 'std_dev', 'min' and 'max'. Default is 'mean'
+      'median', 'std_dev', 'min', 'max' and 'sum'. Default is 'mean'
 
 See also :func:`esmvalcore.preprocessor.annual_statistics`.
 
@@ -746,7 +746,7 @@ This function produces statistics for each decade.
 
 Parameters:
     * operator: operation to apply. Accepted values are 'mean',
-      'median', 'std_dev', 'min' and 'max'. Default is 'mean'
+      'median', 'std_dev', 'min', 'max' and 'sum'. Default is 'mean'
 
 See also :func:`esmvalcore.preprocessor.decadal_statistics`.
 
@@ -759,8 +759,8 @@ This function produces statistics for the whole dataset. It can produce scalars
 (if the full period is chosen) or daily, monthly or seasonal statics.
 
 Parameters:
-    * operator: operation to apply. Accepted values are 'mean', 'median', 'std_dev',
-      'min' and 'max'. Default is 'mean'
+    * operator: operation to apply. Accepted values are 'mean', 'median',
+      'std_dev', 'min', 'max' and 'sum'. Default is 'mean'
 
     * period: define the granularity of the statistics: get values for the
       full period, for each month or day of year.
@@ -924,8 +924,8 @@ named ``zonal_mean``, it can be used to apply several different operations in
 an zonal or meridional direction. This function takes two arguments:
 
 * ``coordinate``: Which direction to apply the operation: latitude or longitude
-* ``mean_type``: Which operation to apply: mean, std_dev, variance, median, min
-  or max
+* ``mean_type``: Which operation to apply: mean, std_dev, variance, median,
+  min, max or sum
 
 See also :func:`esmvalcore.preprocessor.zonal_means`.
 
diff --git a/esmvalcore/cmor/_fixes/cmip5/ec_earth.py b/esmvalcore/cmor/_fixes/cmip5/ec_earth.py
index 2f0f21f9c..7b233e624 100644
--- a/esmvalcore/cmor/_fixes/cmip5/ec_earth.py
+++ b/esmvalcore/cmor/_fixes/cmip5/ec_earth.py
@@ -2,7 +2,6 @@
 from dask import array as da
 
 from ..fix import Fix
-from ..shared import add_scalar_height_coord
 
 
 class Sic(Fix):
@@ -73,31 +72,3 @@ class Tos(Fix):
         """
         cube.data = da.ma.masked_equal(cube.core_data(), 273.15)
         return cube
-
-
-class Tas(Fix):
-    """Fixes for tas."""
-
-    def fix_metadata(self, cubes):
-        """
-        Fix potentially missing scalar dimension.
-
-        Parameters
-        ----------
-        cubes: iris CubeList
-            List of cubes to fix
-
-        Returns
-        -------
-        iris.cube.CubeList
-
-        """
-
-        for cube in cubes:
-            if not cube.coords(var_name='height'):
-                add_scalar_height_coord(cube)
-
-            if cube.coord('time').long_name is None:
-                cube.coord('time').long_name = 'time'
-
-        return cubes
diff --git a/esmvalcore/preprocessor/_area.py b/esmvalcore/preprocessor/_area.py
index 6db338ff5..c03cbc528 100644
--- a/esmvalcore/preprocessor/_area.py
+++ b/esmvalcore/preprocessor/_area.py
@@ -13,7 +13,8 @@ import shapely
 import shapely.ops
 from dask import array as da
 
-from ._shared import get_iris_analysis_operation, guess_bounds
+from ._shared import (get_iris_analysis_operation, guess_bounds,
+                      operator_accept_weights)
 
 logger = logging.getLogger(__name__)
 
@@ -95,6 +96,7 @@ def zonal_means(cube, coordinate, mean_type):
     - 'mean' -> MEAN
     - 'median' -> MEDIAN
     - 'std_dev' -> STD_DEV
+    - 'sum' -> SUM
     - 'variance' -> VARIANCE
     - 'min' -> MIN
     - 'max' -> MAX
@@ -176,6 +178,8 @@ def area_statistics(cube, operator, fx_files=None):
     +------------+--------------------------------------------------+
     | `std_dev`  | Standard Deviation (not area weighted)           |
     +------------+--------------------------------------------------+
+    | `sum`      | Area weighted sum.                               |
+    +------------+--------------------------------------------------+
     | `variance` | Variance (not area weighted)                     |
     +------------+--------------------------------------------------+
     | `min`:     | Minimum value                                    |
@@ -188,7 +192,8 @@ def area_statistics(cube, operator, fx_files=None):
         cube: iris.cube.Cube
             Input cube.
         operator: str
-            The operation, options: mean, median, min, max, std_dev, variance
+            The operation, options: mean, median, min, max, std_dev, sum,
+            variance
         fx_files: dict
             dictionary of field:filename for the fx_files
 
@@ -226,7 +231,7 @@ def area_statistics(cube, operator, fx_files=None):
     # TODO: implement weighted stdev, median, s var when available in iris.
     # See iris issue: https://github.com/SciTools/iris/issues/3208
 
-    if operator == 'mean':
+    if operator_accept_weights(operator):
         return cube.collapsed(coord_names, operation, weights=grid_areas)
 
     # Many IRIS analysis functions do not accept weights arguments.
diff --git a/esmvalcore/preprocessor/_shared.py b/esmvalcore/preprocessor/_shared.py
index 385881ae1..73a7892e7 100644
--- a/esmvalcore/preprocessor/_shared.py
+++ b/esmvalcore/preprocessor/_shared.py
@@ -40,9 +40,9 @@ def get_iris_analysis_operation(operator):
     ------
     ValueError
         operator not in allowed operators list.
-        allowed operators: mean, median, std_dev, variance, min, max
+        allowed operators: mean, median, std_dev, sum, variance, min, max
     """
-    operators = ['mean', 'median', 'std_dev', 'variance', 'min', 'max']
+    operators = ['mean', 'median', 'std_dev', 'sum', 'variance', 'min', 'max']
     operator = operator.lower()
     if operator not in operators:
         raise ValueError("operator {} not recognised. "
@@ -66,4 +66,4 @@ def operator_accept_weights(operator):
         bool: True if operator support weights, False otherwise
 
     """
-    return operator.lower() in ('mean',)
+    return operator.lower() in ('mean', 'sum')
diff --git a/esmvalcore/preprocessor/_time.py b/esmvalcore/preprocessor/_time.py
index 368815628..020d0d034 100644
--- a/esmvalcore/preprocessor/_time.py
+++ b/esmvalcore/preprocessor/_time.py
@@ -8,11 +8,11 @@ import logging
 from warnings import filterwarnings
 
 import cf_units
+import dask.array as da
 import iris
-import iris.util
 import iris.coord_categorisation
+import iris.util
 import numpy as np
-import dask.array as da
 
 from ._shared import get_iris_analysis_operation, operator_accept_weights
 
@@ -193,7 +193,7 @@ def daily_statistics(cube, operator='mean'):
 
     operator: str, optional
         Select operator to apply.
-        Available operators: 'mean', 'median', 'std_dev', 'min', 'max'
+        Available operators: 'mean', 'median', 'std_dev', 'sum', 'min', 'max'
 
     Returns
     -------
@@ -223,7 +223,7 @@ def monthly_statistics(cube, operator='mean'):
 
     operator: str, optional
         Select operator to apply.
-        Available operators: 'mean', 'median', 'std_dev', 'min', 'max'
+        Available operators: 'mean', 'median', 'std_dev', 'sum', 'min', 'max'
 
     Returns
     -------
@@ -253,7 +253,7 @@ def seasonal_statistics(cube, operator='mean'):
 
     operator: str, optional
         Select operator to apply.
-        Available operators: 'mean', 'median', 'std_dev', 'min', 'max'
+        Available operators: 'mean', 'median', 'std_dev', 'sum', 'min', 'max'
 
     Returns
     -------
@@ -263,13 +263,13 @@ def seasonal_statistics(cube, operator='mean'):
     if not cube.coords('clim_season'):
         iris.coord_categorisation.add_season(cube, 'time', name='clim_season')
     if not cube.coords('season_year'):
-        iris.coord_categorisation.add_season_year(
-            cube, 'time', name='season_year')
+        iris.coord_categorisation.add_season_year(cube,
+                                                  'time',
+                                                  name='season_year')
 
     operator = get_iris_analysis_operation(operator)
 
-    cube = cube.aggregated_by(['clim_season', 'season_year'],
-                              operator)
+    cube = cube.aggregated_by(['clim_season', 'season_year'], operator)
 
     # CMOR Units are days so we are safe to operate on days
     # Ranging on [90, 92] days makes this calendar-independent
@@ -308,7 +308,7 @@ def annual_statistics(cube, operator='mean'):
 
     operator: str, optional
         Select operator to apply.
-        Available operators: 'mean', 'median', 'std_dev', 'min', 'max'
+        Available operators: 'mean', 'median', 'std_dev', 'sum', 'min', 'max'
 
     Returns
     -------
@@ -340,7 +340,7 @@ def decadal_statistics(cube, operator='mean'):
 
     operator: str, optional
         Select operator to apply.
-        Available operators: 'mean', 'median', 'std_dev', min', 'max'
+        Available operators: 'mean', 'median', 'std_dev', 'sum', 'min', 'max'
 
     Returns
     -------
@@ -353,6 +353,7 @@ def decadal_statistics(cube, operator='mean'):
     operator = get_iris_analysis_operation(operator)
 
     if not cube.coords('decade'):
+
         def get_decade(coord, value):
             """Callback function to get decades from cube."""
             date = coord.units.num2date(value)
@@ -378,7 +379,7 @@ def climate_statistics(cube, operator='mean', period='full'):
 
     operator: str, optional
         Select operator to apply.
-        Available operators: 'mean', 'median', 'std_dev', 'min', 'max'
+        Available operators: 'mean', 'median', 'std_dev', 'sum', 'min', 'max'
 
     period: str, optional
         Period to compute the statistic over.
@@ -396,9 +397,9 @@ def climate_statistics(cube, operator='mean', period='full'):
         operator_method = get_iris_analysis_operation(operator)
         if operator_accept_weights(operator):
             time_weights = get_time_weights(cube)
-            cube = cube.collapsed(
-                'time', operator_method, weights=time_weights
-            )
+            cube = cube.collapsed('time',
+                                  operator_method,
+                                  weights=time_weights)
         else:
             cube = cube.collapsed('time', operator_method)
         return cube
@@ -450,9 +451,8 @@ def anomalies(cube, period):
     for i in range(cube_time.shape[0]):
         time = cube_time.points[i]
         indexes = cube_time.points == time
-        indexes = iris.util.broadcast_to_shape(
-            indexes, data.shape, (cube_coord_dim, )
-        )
+        indexes = iris.util.broadcast_to_shape(indexes, data.shape,
+                                               (cube_coord_dim, ))
         data[indexes] = data[indexes] - ref[cube_coord.points[i]]
 
     cube = cube.copy(data)
@@ -520,17 +520,13 @@ def regrid_time(cube, frequency):
         ]
     elif frequency == '3hr':
         cube.coord('time').cells = [
-            datetime.datetime(
-                t.year, t.month, t.day, t.hour - t.hour % 3, 0, 0
-            )
-            for t in time_c
+            datetime.datetime(t.year, t.month, t.day, t.hour - t.hour % 3, 0,
+                              0) for t in time_c
         ]
     elif frequency == '6hr':
         cube.coord('time').cells = [
-            datetime.datetime(
-                t.year, t.month, t.day, t.hour - t.hour % 6, 0, 0
-            )
-            for t in time_c
+            datetime.datetime(t.year, t.month, t.day, t.hour - t.hour % 6, 0,
+                              0) for t in time_c
         ]
 
     cube.coord('time').points = [

Add SUM operator for daily_statistics preprocessor function
This is useful to compute e.g. daily precipitation flux from hourly data.
diff --git a/tests/integration/cmor/_fixes/cmip5/test_ec_earth.py b/tests/integration/cmor/_fixes/cmip5/test_ec_earth.py
index 6daaacf8d..056a26d55 100644
--- a/tests/integration/cmor/_fixes/cmip5/test_ec_earth.py
+++ b/tests/integration/cmor/_fixes/cmip5/test_ec_earth.py
@@ -2,11 +2,10 @@
 import unittest
 
 from cf_units import Unit
-from iris.coords import DimCoord
-from iris.cube import Cube, CubeList
+from iris.cube import Cube
 
-from esmvalcore.cmor._fixes.cmip5.ec_earth import Sftlf, Sic, Tas
 from esmvalcore.cmor.fix import Fix
+from esmvalcore.cmor._fixes.cmip5.ec_earth import Sftlf, Sic
 
 
 class TestSic(unittest.TestCase):
@@ -47,64 +46,3 @@ class TestSftlf(unittest.TestCase):
         cube = self.fix.fix_data(self.cube)
         self.assertEqual(cube.data[0], 100)
         self.assertEqual(cube.units, Unit('J'))
-
-
-class TestTas(unittest.TestCase):
-    """Test tas fixes."""
-
-    def setUp(self):
-        """Prepare tests."""
-
-        height_coord = DimCoord(
-            2.,
-            standard_name='height',
-            long_name='height',
-            var_name='height',
-            units='m',
-            bounds=None,
-            attributes={'positive': 'up'}
-            )
-
-        time_coord = DimCoord(
-            1.,
-            standard_name='time',
-            var_name='time',
-            units=Unit('days since 2070-01-01 00:00:00', calendar='gregorian'),
-            )
-
-        self.height_coord = height_coord
-
-        self.cube_without = CubeList([Cube([3.0], var_name='tas')])
-        self.cube_without[0].add_aux_coord(time_coord, 0)
-
-        self.cube_with = CubeList([Cube([3.0], var_name='tas')])
-        self.cube_with[0].add_aux_coord(height_coord, ())
-        self.cube_with[0].add_aux_coord(time_coord, 0)
-        self.cube_with[0].coord('time').long_name = 'time'
-
-        self.fix = Tas()
-
-    def test_get(self):
-        """Test fix get"""
-        self.assertListEqual(
-            Fix.get_fixes('CMIP5', 'EC-EARTH', 'tas'), [Tas()])
-
-    def test_tas_fix_metadata(self):
-        """Test metadata fix."""
-
-        out_cube_without = self.fix.fix_metadata(self.cube_without)
-
-        # make sure this does not raise an error
-        out_cube_with = self.fix.fix_metadata(self.cube_with)
-
-        coord = out_cube_without[0].coord('height')
-        assert coord == self.height_coord
-
-        coord = out_cube_without[0].coord('time')
-        assert coord.long_name == "time"
-
-        coord = out_cube_with[0].coord('height')
-        assert coord == self.height_coord
-
-        coord = out_cube_with[0].coord('time')
-        assert coord.long_name == "time"
diff --git a/tests/unit/preprocessor/_area/test_area.py b/tests/unit/preprocessor/_area/test_area.py
index 09a4b0345..ad029740a 100644
--- a/tests/unit/preprocessor/_area/test_area.py
+++ b/tests/unit/preprocessor/_area/test_area.py
@@ -86,6 +86,13 @@ class Test(tests.Test):
         expected = np.array([0.])
         self.assertArrayEqual(result.data, expected)
 
+    def test_area_statistics_sum(self):
+        """Test for sum of a 2D field."""
+        result = area_statistics(self.grid, 'sum')
+        grid_areas = iris.analysis.cartography.area_weights(self.grid)
+        expected = np.sum(grid_areas)
+        self.assertArrayEqual(result.data, expected)
+
     def test_area_statistics_variance(self):
         """Test for area average of a 2D field."""
         result = area_statistics(self.grid, 'variance')
diff --git a/tests/unit/preprocessor/_time/test_time.py b/tests/unit/preprocessor/_time/test_time.py
index 660284eef..bbb2da64b 100644
--- a/tests/unit/preprocessor/_time/test_time.py
+++ b/tests/unit/preprocessor/_time/test_time.py
@@ -206,6 +206,42 @@ class TestClimatology(tests.Test):
         expected = np.array([1.])
         assert_array_equal(result.data, expected)
 
+    def test_time_sum(self):
+        """Test for time sum of a 1D field."""
+        data = np.ones((3))
+        data[1] = 2.0
+        times = np.array([15., 45., 75.])
+        bounds = np.array([[0., 30.], [30., 60.], [60., 90.]])
+        cube = self._create_cube(data, times, bounds)
+
+        result = climate_statistics(cube, operator='sum')
+        expected = np.array([120.])
+        assert_array_equal(result.data, expected)
+
+    def test_time_sum_uneven(self):
+        """Test for time sum of a 1D field with uneven time boundaries."""
+        data = np.array([1., 5.])
+        times = np.array([5., 25.])
+        bounds = np.array([[0., 1.], [1., 4.]])
+        cube = self._create_cube(data, times, bounds)
+
+        result = climate_statistics(cube, operator='sum')
+        expected = np.array([16.0])
+        assert_array_equal(result.data, expected)
+
+    def test_time_sum_365_day(self):
+        """Test for time sum of a realisitc time axis and 365 day calendar"""
+        data = np.ones((6, ))
+        data[3] = 2.0
+        times = np.array([15, 45, 74, 105, 135, 166])
+        bounds = np.array([[0, 31], [31, 59], [59, 90], [90, 120], [120, 151],
+                           [151, 181]])
+        cube = self._create_cube(data, times, bounds)
+
+        result = climate_statistics(cube, operator='sum')
+        expected = np.array([211.])
+        assert_array_equal(result.data, expected)
+
     def test_season_climatology(self):
         """Test for time avg of a realisitc time axis and 365 day calendar"""
         data = np.ones((6, ))
@@ -340,6 +376,16 @@ class TestSeasonalStatistics(tests.Test):
         expected = np.array([4., 7., 10.])
         assert_array_equal(result.data, expected)
 
+    def test_season_sum(self):
+        """Test for season sum of a 1D field."""
+        data = np.arange(12)
+        times = np.arange(15, 360, 30)
+        cube = self._create_cube(data, times)
+
+        result = seasonal_statistics(cube, 'sum')
+        expected = np.array([9., 18., 27.])
+        assert_array_equal(result.data, expected)
+
 
 class TestMonthlyStatistics(tests.Test):
     """Test :func:`esmvalcore.preprocessor._time.monthly_statistics`"""
@@ -362,7 +408,7 @@ class TestMonthlyStatistics(tests.Test):
 
         result = monthly_statistics(cube, 'mean')
         expected = np.array([
-            0.5,  2.5,  4.5,  6.5,  8.5, 10.5, 12.5, 14.5,
+            0.5, 2.5, 4.5, 6.5, 8.5, 10.5, 12.5, 14.5,
             16.5, 18.5, 20.5, 22.5
         ])
         assert_array_equal(result.data, expected)
@@ -400,6 +446,16 @@ class TestMonthlyStatistics(tests.Test):
         expected = np.array([1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23])
         assert_array_equal(result.data, expected)
 
+    def test_sum(self):
+        """Test sum of a 1D field."""
+        data = np.arange(24)
+        times = np.arange(7, 360, 15)
+        cube = self._create_cube(data, times)
+
+        result = monthly_statistics(cube, 'sum')
+        expected = np.array([1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45])
+        assert_array_equal(result.data, expected)
+
 
 class TestDailyStatistics(tests.Test):
     """Test :func:`esmvalcore.preprocessor._time.monthly_statistics`"""
@@ -454,6 +510,16 @@ class TestDailyStatistics(tests.Test):
         expected = np.array([3., 7.])
         assert_array_equal(result.data, expected)
 
+    def test_sum(self):
+        """Test sum of a 1D field."""
+        data = np.arange(8)
+        times = np.arange(0, 48, 6)
+        cube = self._create_cube(data, times)
+
+        result = daily_statistics(cube, 'sum')
+        expected = np.array([6., 22.])
+        assert_array_equal(result.data, expected)
+
 
 class TestRegridTimeMonthly(tests.Test):
     """Tests for regrid_time with monthly frequency."""
@@ -710,6 +776,20 @@ def test_annual_average(existing_coord):
     assert_array_equal(result.coord('time').points, expected_time)
 
 
+@pytest.mark.parametrize('existing_coord', [True, False])
+def test_annual_sum(existing_coord):
+    """Test for annual sum."""
+    cube = make_time_series(number_years=2)
+    if existing_coord:
+        iris.coord_categorisation.add_year(cube, 'time')
+
+    result = annual_statistics(cube, 'sum')
+    expected = np.array([12., 12.])
+    assert_array_equal(result.data, expected)
+    expected_time = np.array([180., 540.])
+    assert_array_equal(result.coord('time').points, expected_time)
+
+
 @pytest.mark.parametrize('existing_coord', [True, False])
 def test_decadal_average(existing_coord):
     """Test for decadal average."""
@@ -731,6 +811,27 @@ def test_decadal_average(existing_coord):
     assert_array_equal(result.coord('time').points, expected_time)
 
 
+@pytest.mark.parametrize('existing_coord', [True, False])
+def test_decadal_sum(existing_coord):
+    """Test for decadal average."""
+    cube = make_time_series(number_years=20)
+    if existing_coord:
+
+        def get_decade(coord, value):
+            """Callback function to get decades from cube."""
+            date = coord.units.num2date(value)
+            return date.year - date.year % 10
+
+        iris.coord_categorisation.add_categorised_coord(
+            cube, 'decade', 'time', get_decade)
+
+    result = decadal_statistics(cube, 'sum')
+    expected = np.array([120., 120.])
+    assert_array_equal(result.data, expected)
+    expected_time = np.array([1800., 5400.])
+    assert_array_equal(result.coord('time').points, expected_time)
+
+
 def make_map_data(number_years=2):
     """Make a cube with time, lat and lon dimensions."""
     times = np.arange(0.5, number_years * 360)

environment.yml
pip install -e .[develop]
parse_log_pytest
environment.yml
pytest pytest-cov pytest-env pytest-flake8 pytest-html pytest-metadata pytest
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.13
antlr4-python3-runtime @ file:///home/conda/feedstock_root/build_artifacts/antlr-python-runtime_1636143373368/work
astroid==2.15.8
attrs==24.2.0
Babel==2.14.0
build==0.10.0
Cartopy @ file:///home/conda/feedstock_root/build_artifacts/cartopy_1642060950241/work
certifi @ file:///home/conda/feedstock_root/build_artifacts/certifi_1725278078093/work/certifi
cf-units @ file:///home/conda/feedstock_root/build_artifacts/cf-units_1640986232540/work
cftime @ file:///home/conda/feedstock_root/build_artifacts/cftime_1663606412550/work
charset-normalizer==3.4.1
click==8.1.8
click-plugins==1.1.1
cligj==0.7.2
cloudpickle @ file:///home/conda/feedstock_root/build_artifacts/cloudpickle_1674202310934/work
colorama==0.4.6
coverage==7.2.7
cycler @ file:///home/conda/feedstock_root/build_artifacts/cycler_1635519461629/work
Cython @ file:///home/conda/feedstock_root/build_artifacts/cython_1659101942790/work
dask @ file:///home/conda/feedstock_root/build_artifacts/dask-core_1644602974678/work
dill==0.3.7
docutils==0.17.1
dodgy==0.2.1
easytest==0.1.5
ESMPy==8.2.0
-e git+https://github.com/ESMValGroup/ESMValCore.git@9f558b364ff221e88ee58487f953ba18baba94b8#egg=ESMValCore
exceptiongroup==1.2.2
fiona==1.9.6
flake8==5.0.4
flake8-polyfill==1.0.2
fonttools @ file:///home/conda/feedstock_root/build_artifacts/fonttools_1666389892786/work
fsspec @ file:///home/conda/feedstock_root/build_artifacts/fsspec_1674184942191/work
gitdb==4.0.12
GitPython==3.1.44
idna==3.10
imagesize==1.4.1
importlib-metadata==4.2.0
iniconfig==2.0.0
isodate==0.6.1
isort==5.11.5
Jinja2 @ file:///home/conda/feedstock_root/build_artifacts/jinja2_1715127149914/work
kiwisolver @ file:///home/conda/feedstock_root/build_artifacts/kiwisolver_1657953088445/work
lazy-object-proxy==1.9.0
llvmlite==0.39.1
locket @ file:///home/conda/feedstock_root/build_artifacts/locket_1650660393415/work
lxml==5.3.1
MarkupSafe @ file:///home/conda/feedstock_root/build_artifacts/markupsafe_1648737551960/work
matplotlib @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-suite_1661439848456/work
mccabe==0.7.0
mock==5.2.0
mpi4py @ file:///home/conda/feedstock_root/build_artifacts/mpi4py_1660326262210/work
munkres==1.1.4
nc-time-axis==1.4.1
netCDF4 @ file:///home/conda/feedstock_root/build_artifacts/netcdf4_1661987221388/work
networkx==2.6.3
nose==1.3.7
numba==0.56.4
numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1649806299270/work
olefile @ file:///home/conda/feedstock_root/build_artifacts/olefile_1701735466804/work
packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1696202382185/work
partd @ file:///home/conda/feedstock_root/build_artifacts/partd_1695667515973/work
pathspec==0.11.2
pep8-naming==0.10.0
Pillow @ file:///tmp/build/80754af9/pillow_1625655818400/work
platformdirs==4.0.0
pluggy==1.2.0
prospector==1.10.3
prov==2.0.1
psutil==7.0.0
py==1.11.0
pycodestyle==2.9.1
pydocstyle==6.3.0
pydot==2.0.0
pyflakes==2.5.0
Pygments==2.17.2
pylint==2.17.7
pylint-celery==0.3
pylint-django==2.5.3
pylint-flask==0.6
pylint-plugin-utils==0.7
pyparsing @ file:///home/conda/feedstock_root/build_artifacts/pyparsing_1724616129934/work
pyproj @ file:///home/conda/feedstock_root/build_artifacts/pyproj_1636547699801/work
pyproject_hooks==1.2.0
pyroma==4.2
pyshp @ file:///home/conda/feedstock_root/build_artifacts/pyshp_1659002966020/work
pytest==7.4.4
pytest-cov==4.1.0
pytest-env==1.0.1
pytest-flake8==1.1.3
pytest-html==3.2.0
pytest-metadata==3.0.0
python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1709299778482/work
pytz==2025.2
PyYAML @ file:///home/conda/feedstock_root/build_artifacts/pyyaml_1648757092905/work
rdflib==6.3.2
requests==2.31.0
requirements-detector==1.2.2
scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy_1637806658031/work
scitools-iris @ file:///home/conda/feedstock_root/build_artifacts/iris_1637936208876/work
semver==3.0.4
setoptconf-tmp==0.3.1
Shapely @ file:///home/conda/feedstock_root/build_artifacts/shapely_1637399855493/work
six @ file:///home/conda/feedstock_root/build_artifacts/six_1620240208055/work
smmap==5.0.2
snowballstemmer==2.2.0
Sphinx==4.3.2
sphinx-rtd-theme==1.3.0
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==2.0.0
sphinxcontrib-jquery==4.1
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.5
stratify @ file:///home/conda/feedstock_root/build_artifacts/python-stratify_1620938361732/work
toml==0.10.2
tomli==2.0.1
tomlkit==0.12.5
toolz @ file:///home/conda/feedstock_root/build_artifacts/toolz_1706112571092/work
trove-classifiers==2025.3.19.19
typed-ast==1.5.5
typing_extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1688315532570/work
unicodedata2 @ file:///home/conda/feedstock_root/build_artifacts/unicodedata2_1649111917568/work
urllib3==2.0.7
vmprof==0.4.18.1
wrapt==1.16.0
xxhash @ file:///home/conda/feedstock_root/build_artifacts/python-xxhash_1649442453935/work
yamale==4.0.4
yamllint==1.32.0
yapf==0.43.0
zipp==3.15.0

name: ESMValCore
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=conda_forge
  - _openmp_mutex=4.5=2_gnu
  - antlr-python-runtime=4.7.2=py37h89c1867_1003
  - atk-1.0=2.38.0=h04ea711_2
  - binutils_impl_linux-64=2.43=h4bf12b8_4
  - binutils_linux-64=2.43=h4852527_4
  - brotli=1.1.0=hb9d3cd8_2
  - brotli-bin=1.1.0=hb9d3cd8_2
  - bzip2=1.0.8=h4bc722e_7
  - c-ares=1.34.4=hb9d3cd8_0
  - ca-certificates=2025.1.31=hbcca054_0
  - cairo=1.18.0=h3faef2a_0
  - cartopy=0.20.2=py37h9a08e6e_0
  - certifi=2024.8.30=pyhd8ed1ab_0
  - cf-units=3.0.1=py37hb1e94ed_2
  - cftime=1.6.2=py37hc105733_0
  - cloudpickle=2.2.1=pyhd8ed1ab_0
  - curl=8.8.0=he654da7_1
  - cycler=0.11.0=pyhd8ed1ab_0
  - cython=0.29.32=py37hd23a5d3_0
  - dask-core=2022.2.0=pyhd8ed1ab_0
  - esmf=8.2.0=mpi_mpich_h5a1934d_102
  - esmpy=8.2.0=mpi_mpich_py37h7352969_101
  - expat=2.7.0=h5888daf_0
  - font-ttf-dejavu-sans-mono=2.37=hab24e00_0
  - font-ttf-inconsolata=3.000=h77eed37_0
  - font-ttf-source-code-pro=2.038=h77eed37_0
  - font-ttf-ubuntu=0.83=h77eed37_3
  - fontconfig=2.14.2=h14ed4e7_0
  - fonts-conda-ecosystem=1=0
  - fonts-conda-forge=1=0
  - fonttools=4.38.0=py37h540881e_0
  - freetype=2.12.1=h267a509_2
  - fribidi=1.0.10=h36c2ea0_0
  - fsspec=2023.1.0=pyhd8ed1ab_0
  - gcc_impl_linux-64=14.2.0=hdb7739f_2
  - gcc_linux-64=14.2.0=h5910c8f_8
  - gdk-pixbuf=2.42.10=h5eee18b_1
  - geos=3.10.1=h9c3ff4c_1
  - glib=2.80.2=hf974151_0
  - glib-tools=2.80.2=hb6ce0ca_0
  - graphite2=1.3.13=h59595ed_1003
  - graphviz=9.0.0=h78e8752_1
  - gtk2=2.24.33=h280cfa0_4
  - gts=0.7.6=h977cf35_4
  - harfbuzz=8.5.0=hfac3d4d_0
  - hdf4=4.2.15=h9772cbc_5
  - hdf5=1.12.2=mpi_mpich_h5d83325_1
  - icu=73.2=h59595ed_0
  - iris=3.1.0=pyhd8ed1ab_3
  - jinja2=3.1.4=pyhd8ed1ab_0
  - jpeg=9e=h0b41bf4_3
  - kernel-headers_linux-64=3.10.0=he073ed8_18
  - keyutils=1.6.1=h166bdaf_0
  - kiwisolver=1.4.4=py37h7cecad7_0
  - krb5=1.21.3=h659f571_0
  - lcms2=2.14=h6ed2654_0
  - ld_impl_linux-64=2.43=h712a8e2_4
  - lerc=4.0.0=h27087fc_0
  - libaec=1.1.3=h59595ed_0
  - libblas=3.9.0=20_linux64_openblas
  - libbrotlicommon=1.1.0=hb9d3cd8_2
  - libbrotlidec=1.1.0=hb9d3cd8_2
  - libbrotlienc=1.1.0=hb9d3cd8_2
  - libcblas=3.9.0=20_linux64_openblas
  - libcurl=8.8.0=hca28451_1
  - libdeflate=1.14=h166bdaf_0
  - libedit=3.1.20250104=pl5321h7949ede_0
  - libev=4.33=hd590300_2
  - libexpat=2.7.0=h5888daf_0
  - libffi=3.4.6=h2dba641_1
  - libgcc=14.2.0=h767d61c_2
  - libgcc-devel_linux-64=14.2.0=h9c4974d_102
  - libgcc-ng=14.2.0=h69a702a_2
  - libgd=2.3.3=h695aa2c_1
  - libgfortran=14.2.0=h69a702a_2
  - libgfortran-ng=14.2.0=h69a702a_2
  - libgfortran5=14.2.0=hf1ad2bd_2
  - libglib=2.80.2=hf974151_0
  - libgomp=14.2.0=h767d61c_2
  - libiconv=1.18=h4ce23a2_1
  - liblapack=3.9.0=20_linux64_openblas
  - liblzma=5.6.4=hb9d3cd8_0
  - liblzma-devel=5.6.4=hb9d3cd8_0
  - libnetcdf=4.8.1=mpi_mpich_hcd871d9_6
  - libnghttp2=1.58.0=h47da74e_1
  - libnsl=2.0.1=hd590300_0
  - libopenblas=0.3.25=pthreads_h413a1c8_0
  - libpng=1.6.43=h2797004_0
  - librsvg=2.58.0=hadf69e7_1
  - libsanitizer=14.2.0=hed042b8_2
  - libsqlite=3.46.0=hde9e2c9_0
  - libssh2=1.11.0=h0841786_0
  - libstdcxx=14.2.0=h8f9b012_2
  - libstdcxx-ng=14.2.0=h4852527_2
  - libtiff=4.4.0=h82bc61c_5
  - libudunits2=2.2.28=h40f5838_3
  - libunwind=1.7.2=he02047a_0
  - libuuid=2.38.1=h0b41bf4_0
  - libwebp-base=1.5.0=h851e524_0
  - libxcb=1.15=h0b41bf4_0
  - libxml2=2.12.7=hc051c1a_1
  - libzip=1.10.1=h2629f0a_3
  - libzlib=1.2.13=h4ab18f5_6
  - locket=1.0.0=pyhd8ed1ab_0
  - markupsafe=2.1.1=py37h540881e_1
  - matplotlib-base=3.5.3=py37hf395dca_2
  - mpi=1.0=mpich
  - mpi4py=3.1.3=py37h52370cb_2
  - mpich=4.0.3=h846660c_100
  - munkres=1.1.4=pyh9f0ad1d_0
  - ncurses=6.5=h2d0b736_3
  - netcdf-fortran=4.6.0=mpi_mpich_h1e13492_2
  - netcdf4=1.6.0=nompi_py37h7187172_102
  - numpy=1.21.6=py37h976b520_0
  - olefile=0.47=pyhd8ed1ab_0
  - openjpeg=2.5.0=h7d73246_1
  - openssl=3.4.1=h7b32b05_0
  - packaging=23.2=pyhd8ed1ab_0
  - pango=1.54.0=h84a9a3c_0
  - partd=1.4.1=pyhd8ed1ab_0
  - pcre2=10.43=hcad00b1_0
  - pillow=8.3.1=py37h2c7a002_0
  - pip=24.0=pyhd8ed1ab_0
  - pixman=0.44.2=h29eaf8c_0
  - proj=8.2.0=h277dcde_0
  - pthread-stubs=0.4=hb9d3cd8_1002
  - pyparsing=3.1.4=pyhd8ed1ab_0
  - pyproj=3.2.1=py37hb589d83_5
  - pyshp=2.3.1=pyhd8ed1ab_0
  - python=3.7.12=hf930737_100_cpython
  - python-dateutil=2.9.0=pyhd8ed1ab_0
  - python-stratify=0.1.1=py37h6f94858_1004
  - python-xxhash=3.0.0=py37h540881e_1
  - python_abi=3.7=4_cp37m
  - pyyaml=6.0=py37h540881e_4
  - readline=8.2=h8c095d6_2
  - scipy=1.7.3=py37hf2a6cf1_0
  - setuptools=69.0.3=pyhd8ed1ab_0
  - shapely=1.8.0=py37h9b0f7a3_4
  - six=1.16.0=pyh6c4a22f_0
  - sqlite=3.46.0=h6d4b2fc_0
  - sysroot_linux-64=2.17=h0157908_18
  - tk=8.6.13=noxft_h4845f30_101
  - toolz=0.12.1=pyhd8ed1ab_0
  - typing-extensions=4.7.1=hd8ed1ab_0
  - typing_extensions=4.7.1=pyha770c72_0
  - tzdata=2025b=h78e105d_0
  - udunits2=2.2.28=h40f5838_3
  - unicodedata2=14.0.0=py37h540881e_1
  - wheel=0.42.0=pyhd8ed1ab_0
  - xorg-kbproto=1.0.7=hb9d3cd8_1003
  - xorg-libice=1.1.2=hb9d3cd8_0
  - xorg-libsm=1.2.6=he73a12e_0
  - xorg-libx11=1.8.9=h8ee46fc_0
  - xorg-libxau=1.0.12=hb9d3cd8_0
  - xorg-libxdmcp=1.1.5=hb9d3cd8_0
  - xorg-libxext=1.3.4=h0b41bf4_2
  - xorg-libxrender=0.9.11=hd590300_0
  - xorg-renderproto=0.11.1=hb9d3cd8_1003
  - xorg-xextproto=7.3.0=hb9d3cd8_1004
  - xorg-xproto=7.0.31=hb9d3cd8_1008
  - xxhash=0.8.0=h7f98852_3
  - xz=5.6.4=hbcc6ac9_0
  - xz-gpl-tools=5.6.4=hbcc6ac9_0
  - xz-tools=5.6.4=hb9d3cd8_0
  - yaml=0.2.5=h7f98852_2
  - zlib=1.2.13=h4ab18f5_6
  - zstd=1.5.6=ha6fb4c9_0
  - pip:
      - alabaster==0.7.13
      - astroid==2.15.8
      - attrs==24.2.0
      - babel==2.14.0
      - build==0.10.0
      - charset-normalizer==3.4.1
      - click==8.1.8
      - click-plugins==1.1.1
      - cligj==0.7.2
      - colorama==0.4.6
      - coverage==7.2.7
      - dill==0.3.7
      - docutils==0.17.1
      - dodgy==0.2.1
      - easytest==0.1.5
      - exceptiongroup==1.2.2
      - fiona==1.9.6
      - flake8==5.0.4
      - flake8-polyfill==1.0.2
      - gitdb==4.0.12
      - gitpython==3.1.44
      - idna==3.10
      - imagesize==1.4.1
      - importlib-metadata==4.2.0
      - iniconfig==2.0.0
      - isodate==0.6.1
      - isort==5.11.5
      - lazy-object-proxy==1.9.0
      - llvmlite==0.39.1
      - lxml==5.3.1
      - mccabe==0.7.0
      - mock==5.2.0
      - nc-time-axis==1.4.1
      - networkx==2.6.3
      - nose==1.3.7
      - numba==0.56.4
      - pathspec==0.11.2
      - pep8-naming==0.10.0
      - platformdirs==4.0.0
      - pluggy==1.2.0
      - prospector==1.10.3
      - prov==2.0.1
      - psutil==7.0.0
      - py==1.11.0
      - pycodestyle==2.9.1
      - pydocstyle==6.3.0
      - pydot==2.0.0
      - pyflakes==2.5.0
      - pygments==2.17.2
      - pylint==2.17.7
      - pylint-celery==0.3
      - pylint-django==2.5.3
      - pylint-flask==0.6
      - pylint-plugin-utils==0.7
      - pyproject-hooks==1.2.0
      - pyroma==4.2
      - pytest==7.4.4
      - pytest-cov==4.1.0
      - pytest-env==1.0.1
      - pytest-flake8==1.1.3
      - pytest-html==3.2.0
      - pytest-metadata==3.0.0
      - pytz==2025.2
      - rdflib==6.3.2
      - requests==2.31.0
      - requirements-detector==1.2.2
      - semver==3.0.4
      - setoptconf-tmp==0.3.1
      - smmap==5.0.2
      - snowballstemmer==2.2.0
      - sphinx==4.3.2
      - sphinx-rtd-theme==1.3.0
      - sphinxcontrib-applehelp==1.0.2
      - sphinxcontrib-devhelp==1.0.2
      - sphinxcontrib-htmlhelp==2.0.0
      - sphinxcontrib-jquery==4.1
      - sphinxcontrib-jsmath==1.0.1
      - sphinxcontrib-qthelp==1.0.3
      - sphinxcontrib-serializinghtml==1.1.5
      - toml==0.10.2
      - tomli==2.0.1
      - tomlkit==0.12.5
      - trove-classifiers==2025.3.19.19
      - typed-ast==1.5.5
      - urllib3==2.0.7
      - vmprof==0.4.18.1
      - wrapt==1.16.0
      - yamale==4.0.4
      - yamllint==1.32.0
      - yapf==0.43.0
      - zipp==3.15.0
prefix: /opt/conda/envs/ESMValCore

tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_sum tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_sum_365_day tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_sum_uneven tests/unit/preprocessor/_time/test_time.py::TestSeasonalStatistics::test_season_sum tests/unit/preprocessor/_time/test_time.py::TestMonthlyStatistics::test_sum tests/unit/preprocessor/_time/test_time.py::TestDailyStatistics::test_sum tests/unit/preprocessor/_time/test_time.py::test_annual_sum[True] tests/unit/preprocessor/_time/test_time.py::test_annual_sum[False] tests/unit/preprocessor/_time/test_time.py::test_decadal_sum[True] tests/unit/preprocessor/_time/test_time.py::test_decadal_sum[False]
tests/unit/preprocessor/_area/test_area.py::Test::test_area_statistics_max tests/unit/preprocessor/_area/test_area.py::Test::test_area_statistics_mean tests/unit/preprocessor/_area/test_area.py::Test::test_area_statistics_median tests/unit/preprocessor/_area/test_area.py::Test::test_area_statistics_min tests/unit/preprocessor/_area/test_area.py::Test::test_area_statistics_neg_lon tests/unit/preprocessor/_area/test_area.py::Test::test_area_statistics_std_dev tests/unit/preprocessor/_area/test_area.py::Test::test_area_statistics_sum tests/unit/preprocessor/_area/test_area.py::Test::test_area_statistics_variance tests/unit/preprocessor/_area/test_area.py::Test::test_extract_named_region tests/unit/preprocessor/_area/test_area.py::Test::test_extract_region tests/unit/preprocessor/_area/test_area.py::Test::test_extract_region_neg_lon
tests/integration/cmor/_fixes/cmip5/test_ec_earth.py::flake-8::FLAKE8 tests/integration/cmor/_fixes/cmip5/test_ec_earth.py::TestSic::test_fix_data tests/integration/cmor/_fixes/cmip5/test_ec_earth.py::TestSic::test_get tests/integration/cmor/_fixes/cmip5/test_ec_earth.py::TestSftlf::test_fix_data tests/integration/cmor/_fixes/cmip5/test_ec_earth.py::TestSftlf::test_get tests/unit/preprocessor/_area/test_area.py::flake-8::FLAKE8 tests/unit/preprocessor/_area/test_area.py::test_extract_region_irregular[case0] tests/unit/preprocessor/_area/test_area.py::test_extract_region_irregular[case1] tests/unit/preprocessor/_area/test_area.py::test_extract_region_irregular[case2] tests/unit/preprocessor/_area/test_area.py::test_extract_region_irregular[case3] tests/unit/preprocessor/_area/test_area.py::test_extract_region_irregular[case4] tests/unit/preprocessor/_area/test_area.py::test_extract_shape_irregular[contains] tests/unit/preprocessor/_area/test_area.py::test_extract_shape_irregular[representative] tests/unit/preprocessor/_area/test_area.py::test_extract_shape_wrong_method_raises tests/unit/preprocessor/_time/test_time.py::flake-8::FLAKE8 tests/unit/preprocessor/_time/test_time.py::TestExtractMonth::test_bad_month_raises tests/unit/preprocessor/_time/test_time.py::TestExtractMonth::test_get_january tests/unit/preprocessor/_time/test_time.py::TestTimeSlice::test_extract_time tests/unit/preprocessor/_time/test_time.py::TestTimeSlice::test_extract_time_limit tests/unit/preprocessor/_time/test_time.py::TestTimeSlice::test_extract_time_no_slice tests/unit/preprocessor/_time/test_time.py::TestTimeSlice::test_extract_time_no_time tests/unit/preprocessor/_time/test_time.py::TestTimeSlice::test_extract_time_one_time tests/unit/preprocessor/_time/test_time.py::TestExtractSeason::test_get_djf tests/unit/preprocessor/_time/test_time.py::TestExtractSeason::test_get_djf_caps tests/unit/preprocessor/_time/test_time.py::TestExtractSeason::test_get_jja tests/unit/preprocessor/_time/test_time.py::TestExtractSeason::test_get_mam tests/unit/preprocessor/_time/test_time.py::TestExtractSeason::test_get_son tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_day tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_monthly tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_period_not_supported tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_season_climatology tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_max tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_mean tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_mean_365_day tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_mean_uneven tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_median tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_min tests/unit/preprocessor/_time/test_time.py::TestSeasonalStatistics::test_season_max tests/unit/preprocessor/_time/test_time.py::TestSeasonalStatistics::test_season_mean tests/unit/preprocessor/_time/test_time.py::TestSeasonalStatistics::test_season_median tests/unit/preprocessor/_time/test_time.py::TestSeasonalStatistics::test_season_min tests/unit/preprocessor/_time/test_time.py::TestMonthlyStatistics::test_max tests/unit/preprocessor/_time/test_time.py::TestMonthlyStatistics::test_mean tests/unit/preprocessor/_time/test_time.py::TestMonthlyStatistics::test_median tests/unit/preprocessor/_time/test_time.py::TestMonthlyStatistics::test_min tests/unit/preprocessor/_time/test_time.py::TestDailyStatistics::test_max tests/unit/preprocessor/_time/test_time.py::TestDailyStatistics::test_mean tests/unit/preprocessor/_time/test_time.py::TestDailyStatistics::test_median tests/unit/preprocessor/_time/test_time.py::TestDailyStatistics::test_min tests/unit/preprocessor/_time/test_time.py::TestRegridTimeMonthly::test_regrid_time_mon tests/unit/preprocessor/_time/test_time.py::TestRegridTimeDaily::test_regrid_time_day tests/unit/preprocessor/_time/test_time.py::TestRegridTime6Hourly::test_regrid_time_6hour tests/unit/preprocessor/_time/test_time.py::TestRegridTime3Hourly::test_regrid_time_3hour tests/unit/preprocessor/_time/test_time.py::TestRegridTime1Hourly::test_regrid_time_hour tests/unit/preprocessor/_time/test_time.py::test_annual_average[True] tests/unit/preprocessor/_time/test_time.py::test_annual_average[False] tests/unit/preprocessor/_time/test_time.py::test_decadal_average[True] tests/unit/preprocessor/_time/test_time.py::test_decadal_average[False] tests/unit/preprocessor/_time/test_time.py::test_anomalies[full] tests/unit/preprocessor/_time/test_time.py::test_anomalies[day] tests/unit/preprocessor/_time/test_time.py::test_anomalies[month] tests/unit/preprocessor/_time/test_time.py::test_anomalies[season]
doc/esmvalcore/preprocessor.rst esmvalcore/preprocessor/_time.py README.md esmvalcore/cmor/_fixes/cmip5/ec_earth.py esmvalcore/preprocessor/_shared.py esmvalcore/preprocessor/_area.py
doc/esmvalcore/preprocessor.rst esmvalcore/preprocessor/_time.py README.md esmvalcore/cmor/_fixes/cmip5/ec_earth.py esmvalcore/preprocessor/_shared.py esmvalcore/preprocessor/_area.py