From d0abb15f4485663cf1b66715214e6b424dfe5b9e Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Fri, 27 Oct 2017 10:50:39 +0100 Subject: [PATCH 1/2] Disable dask.set_options call on _lazy_data import. --- lib/iris/_lazy_data.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/iris/_lazy_data.py b/lib/iris/_lazy_data.py index e77fca0dd1..26b765c5f6 100644 --- a/lib/iris/_lazy_data.py +++ b/lib/iris/_lazy_data.py @@ -51,8 +51,8 @@ def _iris_dask_defaults(): dask.set_options(get=dget_sync) -# Run this at import time to set dask options for Iris. -_iris_dask_defaults() +## Run this at import time to set dask options for Iris. +#_iris_dask_defaults() def is_lazy_data(data): From 83b258e562c6af9cb21db34666321b6da946ec69 Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Fri, 27 Oct 2017 15:37:40 +0100 Subject: [PATCH 2/2] Remove _iris_dask_defaults call. --- lib/iris/_lazy_data.py | 24 ------- .../unit/lazy_data/test_iris_dask_defaults.py | 63 ------------------- 2 files changed, 87 deletions(-) delete mode 100644 lib/iris/tests/unit/lazy_data/test_iris_dask_defaults.py diff --git a/lib/iris/_lazy_data.py b/lib/iris/_lazy_data.py index 26b765c5f6..221dca5569 100644 --- a/lib/iris/_lazy_data.py +++ b/lib/iris/_lazy_data.py @@ -31,30 +31,6 @@ import numpy.ma as ma -def _iris_dask_defaults(): - """ - Set dask defaults for Iris. The current default dask operation mode for - Iris is running single-threaded using `dask.local.get_sync`. This default - ensures that running Iris under "normal" conditions will not use up all - available computational resource. - - Otherwise, by default, `dask` will use a multi-threaded scheduler that uses - all available CPUs. - - .. note:: - We only want Iris to set dask options in the case where doing so will - not change user-specified options that have already been set. - - """ - if 'pool' not in dask.context._globals and \ - 'get' not in dask.context._globals: - dask.set_options(get=dget_sync) - - -## Run this at import time to set dask options for Iris. -#_iris_dask_defaults() - - def is_lazy_data(data): """ Return whether the argument is an Iris 'lazy' data array. diff --git a/lib/iris/tests/unit/lazy_data/test_iris_dask_defaults.py b/lib/iris/tests/unit/lazy_data/test_iris_dask_defaults.py deleted file mode 100644 index cc9bbdfa3e..0000000000 --- a/lib/iris/tests/unit/lazy_data/test_iris_dask_defaults.py +++ /dev/null @@ -1,63 +0,0 @@ -# (C) British Crown Copyright 2017, Met Office -# -# This file is part of Iris. -# -# Iris is free software: you can redistribute it and/or modify it under -# the terms of the GNU Lesser General Public License as published by the -# Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Iris is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with Iris. If not, see . -""" -Test :func:`iris._lazy data._iris_dask_defaults` function. - -""" - -from __future__ import (absolute_import, division, print_function) -from six.moves import (filter, input, map, range, zip) # noqa - -# Import iris.tests first so that some things can be initialised before -# importing anything else. -import iris.tests as tests - -from iris._lazy_data import _iris_dask_defaults - - -class Test__iris_dask_defaults(tests.IrisTest): - def setUp(self): - set_options = 'dask.set_options' - self.patch_set_options = self.patch(set_options) - self.mock_get_sync = tests.mock.sentinel.get_sync - get_sync = 'iris._lazy_data.dget_sync' - self.patch_get_sync = self.patch(get_sync, self.mock_get_sync) - - def test_no_user_options(self): - self.patch('dask.context._globals', {}) - _iris_dask_defaults() - self.patch_set_options.assert_called_once_with(get=self.patch_get_sync) - - def test_user_options__pool(self): - self.patch('dask.context._globals', {'pool': 5}) - _iris_dask_defaults() - self.assertEqual(self.patch_set_options.call_count, 0) - - def test_user_options__get(self): - self.patch('dask.context._globals', {'get': 'threaded'}) - _iris_dask_defaults() - self.assertEqual(self.patch_set_options.call_count, 0) - - def test_user_options__wibble(self): - # Test a user-specified dask option that does not affect Iris. - self.patch('dask.context._globals', {'wibble': 'foo'}) - _iris_dask_defaults() - self.patch_set_options.assert_called_once_with(get=self.patch_get_sync) - - -if __name__ == '__main__': - tests.main()