From c9c6d131424fdf8d35640d9ee9b7af8dc797888b Mon Sep 17 00:00:00 2001 From: Clemens Brunner Date: Tue, 8 Oct 2019 09:10:14 +0200 Subject: [PATCH 1/7] Add tests for local XDF files --- pyxdf/test/test_load_xdf.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 pyxdf/test/test_load_xdf.py diff --git a/pyxdf/test/test_load_xdf.py b/pyxdf/test/test_load_xdf.py new file mode 100644 index 0000000..3b8c0d5 --- /dev/null +++ b/pyxdf/test/test_load_xdf.py @@ -0,0 +1,19 @@ +from pathlib import Path +from pyxdf import load_xdf +import pytest + + +path = Path("/Users/clemens/Downloads/testfiles") +extensions = ["*.xdf", "*.xdfz", "*.xdf.gz"] +files = [] +for ext in extensions: + files.extend(path.glob(ext)) +files = [str(file) for file in files] + + +@pytest.mark.parametrize("file", files) +def test_load_file(file): + load_xdf(file) + + +test_load_file(files[6]) From 4c7c96784604a4a942c64443062b1b9e39e981f7 Mon Sep 17 00:00:00 2001 From: Clemens Brunner Date: Tue, 8 Oct 2019 15:53:34 +0200 Subject: [PATCH 2/7] Finding breaks is only possible if there are at least 2 time stamps --- pyxdf/pyxdf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyxdf/pyxdf.py b/pyxdf/pyxdf.py index e39b168..cdabd9c 100644 --- a/pyxdf/pyxdf.py +++ b/pyxdf/pyxdf.py @@ -484,7 +484,7 @@ def _clock_sync(streams, # if requested, this is only for cases where "everything goes # wrong" during recording note that this is a fancy feature that # is not needed for normal XDF compliance. - if handle_clock_resets: + if handle_clock_resets and len(clock_times) > 1: # First detect potential breaks in the synchronization data; # this is only necessary when the importer should be able to # deal with recordings where the computer that served a From a604c32fb9a2da189317a4d34162722cc0c540a1 Mon Sep 17 00:00:00 2001 From: Clemens Brunner Date: Tue, 8 Oct 2019 15:55:42 +0200 Subject: [PATCH 3/7] Prune test module --- pyxdf/test/test_load_xdf.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/pyxdf/test/test_load_xdf.py b/pyxdf/test/test_load_xdf.py index 3b8c0d5..801ff7d 100644 --- a/pyxdf/test/test_load_xdf.py +++ b/pyxdf/test/test_load_xdf.py @@ -14,6 +14,3 @@ @pytest.mark.parametrize("file", files) def test_load_file(file): load_xdf(file) - - -test_load_file(files[6]) From 6b57c34b00eaba69bf856ffae318051a4fe07c18 Mon Sep 17 00:00:00 2001 From: Clemens Brunner Date: Wed, 9 Oct 2019 09:07:56 +0200 Subject: [PATCH 4/7] Ignore divide by zero warning --- pyxdf/pyxdf.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyxdf/pyxdf.py b/pyxdf/pyxdf.py index cdabd9c..972d378 100644 --- a/pyxdf/pyxdf.py +++ b/pyxdf/pyxdf.py @@ -630,7 +630,8 @@ def _robust_fit(A, y, rho=1, iters=1000): for k in range(iters): x = np.linalg.solve(U, (np.linalg.solve(L, Aty + np.dot(A.T, z - u)))) d = np.dot(A, x) - y + u - tmp = np.maximum(0, (1 - (1 + 1 / rho) / np.abs(d))) + with np.errstate(divide="ignore"): # ignore divide by zero warning + tmp = np.maximum(0, (1 - (1 + 1 / rho) / np.abs(d))) z = rho / (1 + rho) * d + 1 / (1 + rho) * tmp * d u = d - z return x From fb79d21458bebff4f6c92ff73531c4eb8a39ec8c Mon Sep 17 00:00:00 2001 From: Clemens Brunner Date: Wed, 9 Oct 2019 09:29:05 +0200 Subject: [PATCH 5/7] Add changelog entry --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8cf2197..e31fc0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,10 @@ -## [1.16.2] - 2019-? +## [1.16.2] - 2019-??-?? ### Fixed - Compare nominal to effective sampling rates only for regularly sampled streams ([#47](https://github.com/xdf-modules/xdf-Python/pull/47) by [Clemens Brunner](https://github.com/cbrnr)). ### Changed - Speed up loading of numerical data ([#46](https://github.com/xdf-modules/xdf-python/pull/46) by [Tristan Stenner](https://github.com/tstenner)). +- Avoid/suppress some NumPy warnings ([#48](https://github.com/xdf-modules/xdf-Python/pull/48) by [Clemens Brunner](https://github.com/cbrnr)). ## [1.16.1] - 2019-09-28 ### Fixed From d0134f61a32f0ae8846b370b2442dc4bb7af0142 Mon Sep 17 00:00:00 2001 From: Clemens Brunner Date: Thu, 10 Oct 2019 11:13:54 +0200 Subject: [PATCH 6/7] Remove test for local files --- pyxdf/test/test_load_xdf.py | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 pyxdf/test/test_load_xdf.py diff --git a/pyxdf/test/test_load_xdf.py b/pyxdf/test/test_load_xdf.py deleted file mode 100644 index 801ff7d..0000000 --- a/pyxdf/test/test_load_xdf.py +++ /dev/null @@ -1,16 +0,0 @@ -from pathlib import Path -from pyxdf import load_xdf -import pytest - - -path = Path("/Users/clemens/Downloads/testfiles") -extensions = ["*.xdf", "*.xdfz", "*.xdf.gz"] -files = [] -for ext in extensions: - files.extend(path.glob(ext)) -files = [str(file) for file in files] - - -@pytest.mark.parametrize("file", files) -def test_load_file(file): - load_xdf(file) From 0a87a25b72e11abd2df769c25cbd098ae4309244 Mon Sep 17 00:00:00 2001 From: Clemens Brunner Date: Fri, 11 Oct 2019 12:40:55 +0200 Subject: [PATCH 7/7] Avoid division by zero, no silencing necessary --- pyxdf/pyxdf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyxdf/pyxdf.py b/pyxdf/pyxdf.py index 972d378..1ce0b5f 100644 --- a/pyxdf/pyxdf.py +++ b/pyxdf/pyxdf.py @@ -630,8 +630,8 @@ def _robust_fit(A, y, rho=1, iters=1000): for k in range(iters): x = np.linalg.solve(U, (np.linalg.solve(L, Aty + np.dot(A.T, z - u)))) d = np.dot(A, x) - y + u - with np.errstate(divide="ignore"): # ignore divide by zero warning - tmp = np.maximum(0, (1 - (1 + 1 / rho) / np.abs(d))) + d_inv = np.divide(1, d, where=d != 0) + tmp = np.maximum(0, (1 - (1 + 1 / rho) * np.abs(d_inv))) z = rho / (1 + rho) * d + 1 / (1 + rho) * tmp * d u = d - z return x