From f3218fe7f36c5402056354340d3789b5ce36e0f1 Mon Sep 17 00:00:00 2001 From: Keisuke Fujii Date: Fri, 17 Nov 2017 11:21:48 +0900 Subject: [PATCH 1/3] Added test_ondisk_after_print in backend --- doc/whats-new.rst | 2 ++ xarray/core/formatting.py | 3 ++- xarray/tests/test_backends.py | 8 ++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 828712a8d13..50126784d5c 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -27,6 +27,8 @@ Bug fixes ``pandas.MultiIndex`` instead of a simple ``pandas.Index`` (:issue:`1722`). By `Benoit Bovy `_. +- Fixed unexpected memory loading of the backend array after ``print``. + (:issue:`1720`). By `Keisuke Fujii `_. v0.10.0 rc2 (13 November 2017) ------------------------------ diff --git a/xarray/core/formatting.py b/xarray/core/formatting.py index a449a3b5bb4..3386a0691ce 100644 --- a/xarray/core/formatting.py +++ b/xarray/core/formatting.py @@ -209,7 +209,7 @@ def summarize_variable(name, var, col_width, show_values=True, front_str = u'%s%s%s ' % (first_col, dims_str, var.dtype) if show_values: values_str = format_array_flat(var, max_width - len(front_str)) - elif isinstance(var.data, dask_array_type): + elif isinstance(var._data, dask_array_type): values_str = short_dask_repr(var, show_dtype=False) else: values_str = u'...' @@ -409,6 +409,7 @@ def array_repr(arr): def dataset_repr(ds): + var = ds.data_vars[list(ds.data_vars.keys())[0]] summary = [u'' % type(ds).__name__] col_width = _calculate_col_width(_get_col_items(ds.variables)) diff --git a/xarray/tests/test_backends.py b/xarray/tests/test_backends.py index e4d03f1fe82..87e2392d167 100644 --- a/xarray/tests/test_backends.py +++ b/xarray/tests/test_backends.py @@ -492,6 +492,14 @@ def test_dropna(self): actual = on_disk.dropna(dim='x') assert_identical(expected, actual) + def test_ondisk_after_print(self): + """ Make sure print does not load file into memory """ + in_memory = create_test_data() + with self.roundtrip(in_memory) as on_disk: + if not on_disk['var1']._in_memory: + print(on_disk) + assert not on_disk['var1']._in_memory + class CFEncodedDataTest(DatasetIOTestCases): From f4e66be6af4fe88ff54565d131a06a9ed8637029 Mon Sep 17 00:00:00 2001 From: keisukefujii Date: Fri, 17 Nov 2017 15:18:56 +0900 Subject: [PATCH 2/3] Remove an unintended change. --- doc/whats-new.rst | 2 +- xarray/core/formatting.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 50126784d5c..b59e210db91 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -27,7 +27,7 @@ Bug fixes ``pandas.MultiIndex`` instead of a simple ``pandas.Index`` (:issue:`1722`). By `Benoit Bovy `_. -- Fixed unexpected memory loading of the backend array after ``print``. +- Fixed unexpected memory loading of backend arrays after ``print``. (:issue:`1720`). By `Keisuke Fujii `_. v0.10.0 rc2 (13 November 2017) diff --git a/xarray/core/formatting.py b/xarray/core/formatting.py index 3386a0691ce..6f91f73738c 100644 --- a/xarray/core/formatting.py +++ b/xarray/core/formatting.py @@ -409,7 +409,6 @@ def array_repr(arr): def dataset_repr(ds): - var = ds.data_vars[list(ds.data_vars.keys())[0]] summary = [u'' % type(ds).__name__] col_width = _calculate_col_width(_get_col_items(ds.variables)) From 0fb6a01376abd84ad9e9b6802f980a4e4013a53c Mon Sep 17 00:00:00 2001 From: keisukefujii Date: Fri, 17 Nov 2017 17:38:47 +0900 Subject: [PATCH 3/3] remove conditional check. Use repr instead of print --- xarray/tests/test_backends.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/xarray/tests/test_backends.py b/xarray/tests/test_backends.py index 87e2392d167..017e290558a 100644 --- a/xarray/tests/test_backends.py +++ b/xarray/tests/test_backends.py @@ -496,9 +496,8 @@ def test_ondisk_after_print(self): """ Make sure print does not load file into memory """ in_memory = create_test_data() with self.roundtrip(in_memory) as on_disk: - if not on_disk['var1']._in_memory: - print(on_disk) - assert not on_disk['var1']._in_memory + repr(on_disk) + assert not on_disk['var1']._in_memory class CFEncodedDataTest(DatasetIOTestCases):