From 17bcedbc26a10dcf01dcbd8ba2629561ec5d9ece Mon Sep 17 00:00:00 2001
From: Tamas Gal <tgal@km3net.de>
Date: Mon, 10 Feb 2020 15:15:18 +0100
Subject: [PATCH] Fix codestyle for Yapf 0.29

---
 km3io/daq.py          |  7 ++--
 km3io/offline.py      | 84 ++++++++++++++++++++++++-------------------
 requirements-dev.txt  |  2 +-
 tests/test_offline.py | 73 ++++++++++++++++++-------------------
 4 files changed, 89 insertions(+), 77 deletions(-)

diff --git a/km3io/daq.py b/km3io/daq.py
index eb12052..e1f1e55 100644
--- a/km3io/daq.py
+++ b/km3io/daq.py
@@ -30,9 +30,10 @@ def get_rate(value):
         return MINIMAL_RATE_HZ * np.exp(value * RATE_FACTOR)
 
 
-@nb.guvectorize(
-    "void(i8, b1[:], b1[:])", "(), (n) -> (n)", target="parallel", nopython=True
-    )
+@nb.guvectorize("void(i8, b1[:], b1[:])",
+                "(), (n) -> (n)",
+                target="parallel",
+                nopython=True)
 def unpack_bits(value, bits_template, out):
     """Return a boolean array for a value's bit representation.
 
diff --git a/km3io/offline.py b/km3io/offline.py
index 362d90d..8bd986d 100644
--- a/km3io/offline.py
+++ b/km3io/offline.py
@@ -5,7 +5,6 @@ import km3io.definitions.trigger
 import km3io.definitions.fitparameters
 import km3io.definitions.reconstruction
 
-
 # 110 MB based on the size of the largest basket found so far in km3net
 BASKET_CACHE_SIZE = 110 * 1024**2
 
@@ -178,7 +177,9 @@ class OfflineKeys:
             list of all "trks.fitinf" keys.
         """
         if self._fit_keys is None:
-            self._fit_keys = sorted(self.fitparameters, key=self.fitparameters.get, reverse=False)
+            self._fit_keys = sorted(self.fitparameters,
+                                    key=self.fitparameters.get,
+                                    reverse=False)
             # self._fit_keys = [*fit.keys()]
         return self._fit_keys
 
@@ -377,13 +378,13 @@ class OfflineReader:
             if b'Head;1' in fobj.keys():
                 self._header = {}
                 for n, x in fobj['Head']._map_3c_string_2c_string_3e_.items():
-                    print("{:15s} {}".format(n.decode("utf-8"), x.decode("utf-8")))
+                    print("{:15s} {}".format(n.decode("utf-8"),
+                                             x.decode("utf-8")))
                     self._header[n.decode("utf-8")] = x.decode("utf-8")
             if b'Header;1' in fobj.keys():
                 warnings.warn("Your file header has an unsupported format")
         return self._header
 
-
     @property
     def keys(self):
         """wrapper for all keys in an offline file.
@@ -491,17 +492,21 @@ class OfflineReader:
         """
         if self._best_reco is None:
             keys = ", ".join(self.keys.fit_keys[:-1])
-            empty_fit_info = np.array([match for match in
-                                        self._find_empty(self.tracks.fitinf)])
-            fit_info = [i for i,j in zip(self.tracks.fitinf,
-                                        empty_fit_info[:,1]) if j is not None]
+            empty_fit_info = np.array(
+                [match for match in self._find_empty(self.tracks.fitinf)])
+            fit_info = [
+                i for i, j in zip(self.tracks.fitinf, empty_fit_info[:, 1])
+                if j is not None
+            ]
             stages = self._get_max_reco_stages(self.tracks.rec_stages)
-            fit_data = np.array([i[j] for i,j in zip(fit_info, stages[:,2])])
+            fit_data = np.array([i[j] for i, j in zip(fit_info, stages[:, 2])])
             rows_size = len(max(fit_data, key=len))
-            equal_size_data = np.vstack([np.hstack([i, np.zeros(rows_size-len(i))
-                                                     + np.nan]) for i in fit_data])
-            self._best_reco = np.core.records.fromarrays(equal_size_data.transpose(),
-                                                         names=keys)
+            equal_size_data = np.vstack([
+                np.hstack([i, np.zeros(rows_size - len(i)) + np.nan])
+                for i in fit_data
+            ])
+            self._best_reco = np.core.records.fromarrays(
+                equal_size_data.transpose(), names=keys)
         return self._best_reco
 
     def _get_max_reco_stages(self, reco_stages):
@@ -522,12 +527,14 @@ class OfflineReader:
                                   *lentgh of the maximum reco_stages
                                   *position of the maximum reco_stages
         """
-        empty_reco_stages = np.array([match for match in
-                                        self._find_empty(reco_stages)])
-        max_reco_stages = np.array([[max(i, key=len), len(max(i, key=len)),
-                            i.index(max(i, key=len))] for i,j in
-                            zip(reco_stages, empty_reco_stages[:,1])
-                            if j is not None])
+        empty_reco_stages = np.array(
+            [match for match in self._find_empty(reco_stages)])
+        max_reco_stages = np.array(
+            [[max(i, key=len),
+              len(max(i, key=len)),
+              i.index(max(i, key=len))]
+             for i, j in zip(reco_stages, empty_reco_stages[:, 1])
+             if j is not None])
         return max_reco_stages
 
     def get_reco_fit(self, stages):
@@ -555,17 +562,21 @@ class OfflineReader:
         """
         keys = ", ".join(self.keys.fit_keys[:-1])
         fit_info = self.tracks.fitinf
-        rec_stages = np.array([match for match in
-                                self._find_rec_stages(stages)])
-        if np.all(rec_stages[:,1]==None):
-            raise ValueError("The stages {} are not found in your file."
-                                .format(str(stages)))
+        rec_stages = np.array(
+            [match for match in self._find_rec_stages(stages)])
+        if np.all(rec_stages[:, 1] == None):
+            raise ValueError(
+                "The stages {} are not found in your file.".format(
+                    str(stages)))
         else:
-            fit_data = np.array([i[k] for i,j,k in zip(fit_info,
-                                rec_stages[:,0], rec_stages[:,1])
-                                if k is not None])
+            fit_data = np.array([
+                i[k]
+                for i, j, k in zip(fit_info, rec_stages[:, 0], rec_stages[:,
+                                                                          1])
+                if k is not None
+            ])
             rec_array = np.core.records.fromarrays(fit_data.transpose(),
-                                                    names=keys)
+                                                   names=keys)
             return rec_array
 
     def _find_rec_stages(self, stages):
@@ -615,9 +626,9 @@ class OfflineReader:
         """
         for i, rs in enumerate(array):
             try:
-                if len(rs)==0:
+                if len(rs) == 0:
                     j = None
-                if len(rs)!=0:
+                if len(rs) != 0:
                     j = rs.index([])
             except ValueError:
                 j = False  # rs not empty but [] not found
@@ -784,11 +795,8 @@ class OfflineTracks:
             return OfflineTrack(self._keys, [v[item] for v in self._values],
                                 fitparameters=self._fitparameters)
         else:
-            return OfflineTracks(
-                self._keys,
-                [v[item] for v in self._values],
-                fitparameters=self._fitparameters
-            )
+            return OfflineTracks(self._keys, [v[item] for v in self._values],
+                                 fitparameters=self._fitparameters)
 
     def __len__(self):
         try:
@@ -831,8 +839,10 @@ class OfflineTrack:
             "{:30} {:^2} {:>26}".format(k, ':', str(v))
             for k, v in zip(self._keys, self._values) if k not in ['fitinf']
         ]) + "\n\t" + "\n\t".join([
-            "{:30} {:^2} {:>26}".format(k, ':', str(getattr(self, 'fitinf')[v]))
-            for k, v in self._fitparameters.items() if len(getattr(self, 'fitinf'))>v
+            "{:30} {:^2} {:>26}".format(k, ':', str(
+                getattr(self, 'fitinf')[v]))
+            for k, v in self._fitparameters.items()
+            if len(getattr(self, 'fitinf')) > v
         ])  # I don't like 18 being explicit here
 
     def __getitem__(self, item):
diff --git a/requirements-dev.txt b/requirements-dev.txt
index ab7cf28..25bd197 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -10,4 +10,4 @@ sphinx-autoapi
 sphinx-gallery
 sphinx-rtd-theme
 sphinxcontrib-versioning
-yapf
+yapf>=0.29.0
diff --git a/tests/test_offline.py b/tests/test_offline.py
index 281bf83..5257b4d 100644
--- a/tests/test_offline.py
+++ b/tests/test_offline.py
@@ -49,8 +49,10 @@ class TestOfflineKeys(unittest.TestCase):
     def test_trigger(self):
         # there are 4 trigger keys in v1.1.2 of km3net-Dataformat
         trigger = self.keys.trigger
-        keys = ['JTRIGGER3DSHOWER', 'JTRIGGERMXSHOWER',
-                'JTRIGGER3DMUON', 'JTRIGGERNB']
+        keys = [
+            'JTRIGGER3DSHOWER', 'JTRIGGERMXSHOWER', 'JTRIGGER3DMUON',
+            'JTRIGGERNB'
+        ]
         values = [1, 2, 4, 5]
 
         for k, v in zip(keys, values):
@@ -59,9 +61,10 @@ class TestOfflineKeys(unittest.TestCase):
     def test_reconstruction(self):
         # there are 34 parameters in v1.1.2 of km3net-Dataformat
         reco = self.keys.reconstruction
-        keys = ['JPP_RECONSTRUCTION_TYPE', 'JMUONFIT', 'JMUONBEGIN',
-                'JMUONPREFIT', 'JMUONSIMPLEX', 'JMUONGANDALF',
-                'JMUONENERGY', 'JMUONSTART']
+        keys = [
+            'JPP_RECONSTRUCTION_TYPE', 'JMUONFIT', 'JMUONBEGIN', 'JMUONPREFIT',
+            'JMUONSIMPLEX', 'JMUONGANDALF', 'JMUONENERGY', 'JMUONSTART'
+        ]
         values = [4000, 0, 0, 1, 2, 3, 4, 5]
 
         self.assertEqual(34, len([*reco.keys()]))
@@ -77,6 +80,7 @@ class TestOfflineKeys(unittest.TestCase):
         for k, v in fit.items():
             self.assertEqual(values[v], fit[k])
 
+
 class TestReader(unittest.TestCase):
     def setUp(self):
         self.r = Reader(OFFLINE_FILE)
@@ -168,28 +172,27 @@ class TestOfflineReader(unittest.TestCase):
         fitinf = self.nu.tracks.fitinf
         rec_stages = self.nu.tracks.rec_stages
 
-        empty_fitinf = np.array([match for match in
-                                self.nu._find_empty(fitinf)])
-        empty_stages = np.array([match for match in
-                                self.nu._find_empty(rec_stages)])
+        empty_fitinf = np.array(
+            [match for match in self.nu._find_empty(fitinf)])
+        empty_stages = np.array(
+            [match for match in self.nu._find_empty(rec_stages)])
 
-        self.assertListEqual(empty_fitinf[:5, 1].tolist(), [23, 14,
-                                                            14, 4, None])
-        self.assertListEqual(empty_stages[:5, 1].tolist(), [False, False,
-                                                            False, False,
-                                                            None])
+        self.assertListEqual(empty_fitinf[:5, 1].tolist(),
+                             [23, 14, 14, 4, None])
+        self.assertListEqual(empty_stages[:5, 1].tolist(),
+                             [False, False, False, False, None])
 
     def test_find_rec_stages(self):
-        stages = np.array([match for match in
-                           self.nu._find_rec_stages([1, 2, 3, 4, 5])])
+        stages = np.array(
+            [match for match in self.nu._find_rec_stages([1, 2, 3, 4, 5])])
 
         self.assertListEqual(stages[:5, 1].tolist(), [0, 0, 0, 0, None])
 
     def test_get_reco_fit(self):
-        JGANDALF_BETA0_RAD = [0.0020367251782607574,
-                              0.003306725805622178,
-                              0.0057877124222254885,
-                              0.015581698352185896]
+        JGANDALF_BETA0_RAD = [
+            0.0020367251782607574, 0.003306725805622178, 0.0057877124222254885,
+            0.015581698352185896
+        ]
         reco_fit = self.nu.get_reco_fit([1, 2, 3, 4, 5])['JGANDALF_BETA0_RAD']
 
         self.assertListEqual(JGANDALF_BETA0_RAD, reco_fit[:4].tolist())
@@ -201,18 +204,18 @@ class TestOfflineReader(unittest.TestCase):
         max_reco = self.nu._get_max_reco_stages(rec_stages)
 
         self.assertEqual(len(max_reco.tolist()), 9)
-        self.assertListEqual(max_reco[0].tolist(), [[1, 2, 3, 4, 5],
-                                                    5, 0])
+        self.assertListEqual(max_reco[0].tolist(), [[1, 2, 3, 4, 5], 5, 0])
 
     def test_best_reco(self):
-        JGANDALF_BETA1_RAD = [0.0014177681261476852,
-                              0.002094094517471032,
-                              0.003923368624980349,
-                              0.009491461076780453]
+        JGANDALF_BETA1_RAD = [
+            0.0014177681261476852, 0.002094094517471032, 0.003923368624980349,
+            0.009491461076780453
+        ]
         best = self.nu.best_reco
 
         self.assertEqual(best.size, 9)
-        self.assertEqual(best['JGANDALF_BETA1_RAD'][:4].tolist(), JGANDALF_BETA1_RAD)
+        self.assertEqual(best['JGANDALF_BETA1_RAD'][:4].tolist(),
+                         JGANDALF_BETA1_RAD)
 
     def test_reading_header(self):
         # head is the supported format
@@ -407,16 +410,14 @@ class TestOfflineTracks(unittest.TestCase):
         track_selection_2 = tracks[1:3]
         assert 2 == len(track_selection_2)
         for _slice in [
-            slice(0, 0),
-            slice(0, 1),
-            slice(0, 2),
-            slice(1, 5),
-            slice(3, -2)
+                slice(0, 0),
+                slice(0, 1),
+                slice(0, 2),
+                slice(1, 5),
+                slice(3, -2)
         ]:
-            self.assertListEqual(
-                list(tracks.E[:,0][_slice]),
-                list(tracks[_slice].E[:,0])
-            )
+            self.assertListEqual(list(tracks.E[:, 0][_slice]),
+                                 list(tracks[_slice].E[:, 0]))
 
 
 class TestOfflineTrack(unittest.TestCase):
-- 
GitLab