diff --git a/.gitignore b/.gitignore
index b20df1b8b925c0ffcbaa6adbee83bb5fea594ba8..4c384c5d5a3121eecf24a3dd0bf8b56292838596 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,6 +27,7 @@ doc/_build/
 doc/auto_examples/
 doc/modules/
 doc/api
+doc/autoapi/
 
 # jupyter files
 .ipynb_checkpoints/
diff --git a/doc/conf.py b/doc/conf.py
index 78d088f5ccff25999b0b69cbb476a5563cf13d6c..a730b877ab434864f79f0469fa932fe8773cf0f4 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -13,8 +13,6 @@
 # import os
 # import sys
 # sys.path.insert(0, os.path.abspath('.'))
-import sys
-import os
 from datetime import date
 import sphinx_rtd_theme
 from pkg_resources import get_distribution
diff --git a/setup.py b/setup.py
index ed56277150dde703db5b16c84cb095c951613fff..2edc152fb415afb921aa0aba5f1479a798898532 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,5 @@
 #!/usr/bin/env python3
 from setuptools import setup
 
-import setuptools_scm
 
 setup()
diff --git a/src/km3io/__init__.py b/src/km3io/__init__.py
index 4ea93667f383a98003df755d22a8df2da793ad6c..f6a4ea904c3ac7459c0ed28252a58b52e667f700 100644
--- a/src/km3io/__init__.py
+++ b/src/km3io/__init__.py
@@ -8,7 +8,6 @@ except ImportError:
     version = get_distribution(__name__).version
 
 
-import warnings
 import os
 
 # Getting rid of OpenMP warnings, related to Numba
@@ -18,3 +17,5 @@ os.environ["KMP_WARNINGS"] = "off"
 
 from .offline import OfflineReader
 from .acoustics import RawAcousticReader
+
+__all__ = [OfflineReader, RawAcousticReader]
diff --git a/src/km3io/acoustics.py b/src/km3io/acoustics.py
index 59031dc2334804aad48dec4fceec482e835ec9e3..5ab6dcad4dd974cffbe9a671e690ad19ab1712c0 100644
--- a/src/km3io/acoustics.py
+++ b/src/km3io/acoustics.py
@@ -97,7 +97,6 @@ class RawAcousticReader:
         sample_interval = 1 / F_S
         frame_duration = self.FRAME_LENGTH * sample_interval
         time_axis = np.arange(0, frame_duration, sample_interval)
-        start_frame = self._data[0]
         n_samples = self.FRAME_LENGTH * len(self._data)
 
         timebase = np.zeros(n_samples, dtype=np.float64)
diff --git a/src/km3io/definitions.py b/src/km3io/definitions.py
index 5413b5d9818787f449b26833867085aecbfefa29..815e2690dedf13bdb1a4f3d247f0f063acdcde36 100644
--- a/src/km3io/definitions.py
+++ b/src/km3io/definitions.py
@@ -1,6 +1,5 @@
 #!/usr/bin/env python3
 
-from km3io._definitions.mc_header import data as mc_header
 
 from km3io._definitions.daqdatatypes import data as daqdatatypes
 from km3io._definitions.fitparameters import data as fitparameters
@@ -11,7 +10,6 @@ from km3io._definitions.w2list_genhen import data as w2list_genhen
 from km3io._definitions.w2list_gseagen import data as w2list_gseagen
 from km3io._definitions.w2list_km3buu import data as w2list_km3buu
 from km3io._definitions.trkmembers import data as trkmembers
-from km3io._definitions.applications import data as applications
 from km3io._definitions.pmt_status import data as pmt_status
 from km3io._definitions.weightlist import data as weightlist
 from km3io._definitions.module_status import data as module_status
diff --git a/src/km3io/offline.py b/src/km3io/offline.py
index f5599e5f8a280b7f698f48b4f8a60d540426a3d7..a52825194c9b3f2e3ed79444fa7ad0f75fb887d3 100644
--- a/src/km3io/offline.py
+++ b/src/km3io/offline.py
@@ -1,12 +1,9 @@
 from collections import namedtuple
 import logging
 import warnings
-import uproot
-import numpy as np
-import awkward as ak
 
 from .definitions import mc_header
-from .tools import cached_property, to_num, unfold_indices
+from .tools import cached_property, to_num
 from .rootio import EventReader
 
 log = logging.getLogger("offline")
diff --git a/src/km3io/tools.py b/src/km3io/tools.py
index 2df278276745af1d0178b66f13ad0991fc8bc1b9..d43f109602cc88edef7b2c11c5a2426f99b320b3 100644
--- a/src/km3io/tools.py
+++ b/src/km3io/tools.py
@@ -1,5 +1,4 @@
 #!/usr/bin/env python3
-from collections import namedtuple
 import numba as nb
 import numpy as np
 import awkward as ak
@@ -7,7 +6,6 @@ import awkward as ak
 import km3io.definitions
 from km3io.definitions import reconstruction as krec
 from km3io.definitions import trigger as ktrg
-from km3io.definitions import fitparameters as kfit
 from km3io.definitions import w2list_genhen as kw2gen
 from km3io.definitions import w2list_gseagen as kw2gsg
 
diff --git a/tests/test_km3io.py b/tests/test_km3io.py
deleted file mode 100644
index e5ddaa929ee5e29f8082a4dd88b104f15ba3d7f6..0000000000000000000000000000000000000000
--- a/tests/test_km3io.py
+++ /dev/null
@@ -1,6 +0,0 @@
-import unittest
-
-
-class TestImport(unittest.TestCase):
-    def test_import(self):
-        import km3io
diff --git a/tests/test_offline.py b/tests/test_offline.py
index 2cdf33c64b5f21c2eaf9f3f9ed4b2234f528af1d..119dcdee0987c012e7d211557a7082bd620f882e 100644
--- a/tests/test_offline.py
+++ b/tests/test_offline.py
@@ -1,14 +1,11 @@
 import unittest
 import numpy as np
-from pathlib import Path
-import uuid
 
 import awkward as ak
 from km3net_testdata import data_path
 
 from km3io import OfflineReader
 from km3io.offline import Header
-from km3io.tools import usr
 
 OFFLINE_FILE = OfflineReader(data_path("offline/km3net_offline.root"))
 OFFLINE_USR = OfflineReader(data_path("offline/usr-sample.root"))
@@ -30,7 +27,6 @@ class TestOfflineReader(unittest.TestCase):
         self.n_events = 10
 
     def test_context_manager(self):
-        filename = OFFLINE_FILE
         with OfflineReader(data_path("offline/km3net_offline.root")) as r:
             assert r
 
@@ -573,7 +569,6 @@ class TestMcTrackUsr(unittest.TestCase):
         self.f = OFFLINE_MC_TRACK_USR
 
     def test_usr_names(self):
-        n_tracks = len(self.f.events)
         for i in range(3):
             self.assertListEqual(
                 ["bx", "by", "ichan", "cc"],
diff --git a/tests/test_tools.py b/tests/test_tools.py
index 7d290f31decfda35ead9d6bea56c0ce9e015540c..667506ffe2467d08dd074109169e1bbe52c2dc97 100644
--- a/tests/test_tools.py
+++ b/tests/test_tools.py
@@ -3,7 +3,6 @@
 import unittest
 import awkward as ak
 import numpy as np
-from pathlib import Path
 
 from numpy.testing import assert_almost_equal, assert_allclose
 
@@ -21,7 +20,6 @@ from km3io.tools import (
     count_nested,
     mask,
     best_track,
-    get_w2list_param,
     get_multiplicity,
     has_jmuon,
     has_jshower,
@@ -479,7 +477,7 @@ class TestRecStagesMasks(unittest.TestCase):
 
         assert masks[0][0] == all(rec_stages[0][0] == ak.Array(stages))
         assert masks[1][0] == all(rec_stages[1][0] == ak.Array(stages))
-        assert masks[0][1] == False
+        assert not masks[0][1]
 
     def test_mask_with_atleast_on_multiple_events(self):
         stages = [1, 3, 4, 5]
@@ -498,11 +496,9 @@ class TestRecStagesMasks(unittest.TestCase):
 
         assert masks[0][0] == all(rec_stages[0][0] == ak.Array(stages))
         assert masks[1][0] == all(rec_stages[1][0] == ak.Array(stages))
-        assert masks[0][1] == False
+        assert not masks[0][1]
 
     def test_mask_with_start_and_end_of_rec_stages_signle_event(self):
-        rec_stages = self.tracks.rec_stages[0][0]
-        stages = [1, 3, 5, 4]
         track = self.tracks[0]
         masks = mask(track.rec_stages, startend=(1, 4))
 
@@ -510,7 +506,6 @@ class TestRecStagesMasks(unittest.TestCase):
         assert track[masks].rec_stages[0][-1] == 4
 
     def test_mask_with_explicit_rec_stages_with_single_event(self):
-        rec_stages = self.tracks.rec_stages[0][0]
         stages = [1, 3]
         track = self.tracks[0]
         masks = mask(track.rec_stages, sequence=stages)
@@ -641,9 +636,9 @@ class TestIsCC(unittest.TestCase):
         CC_file = is_cc(GSEAGEN_OFFLINE_FILE)
 
         self.assertFalse(
-            all(NC_file) == True
+            all(NC_file)
         )  # this test fails because the CC flags are not reliable in old files
-        self.assertTrue(all(CC_file) == True)
+        self.assertTrue(all(CC_file))
 
 
 class TestUsr(unittest.TestCase):