diff --git a/metobsapi/__init__.py b/metobsapi/__init__.py
index e9c169d1f25964105c390e91f1aeac1d27d5bf0b..4175874247b645233b5c2550751196969a3bcf18 100644
--- a/metobsapi/__init__.py
+++ b/metobsapi/__init__.py
@@ -1,3 +1,3 @@
-from metobsapi.server import app
+from metobsapi.server import app  # noqa
 
 from .version import __version__  # noqa
diff --git a/metobsapi/data_api.py b/metobsapi/data_api.py
index baab959a9bd28878e58b3bc22200bf6565b1d9f9..cf43c86ef6be4a392bec174f4720aadedfcc5371 100644
--- a/metobsapi/data_api.py
+++ b/metobsapi/data_api.py
@@ -139,7 +139,7 @@ def calc_num_records(begin, end, interval):
 
 
 def calc_file_size(num_records, num_streams):
-    """Number of bytes returned for a text based format"""
+    """Get number of bytes returned for a text based format."""
     # estimate about 7 bytes (overhead + data characters) per data point
     return num_records * num_streams * 7.0
 
diff --git a/metobsapi/files_api.py b/metobsapi/files_api.py
index 92d813a05c8dc284936fc51ccbeab31b9250bd17..879f1beaf8c6e30461feaf07effb04dee11a19ef 100644
--- a/metobsapi/files_api.py
+++ b/metobsapi/files_api.py
@@ -175,14 +175,13 @@ bitsadmin /resume myDownloadJob
 bitsadmin /SetNotifyCmdLine myDownloadJob \"%SystemRoot%\\system32\\bitsadmin.exe\" \"%SystemRoot%\\syste,32\\bitsadmin.exe /complete myDownloadJob\"
 bitsadmin /monitor
 
-"""
+"""  # noqa
 
     if frame is not None and not frame.empty:
         urls = frame["url"]
         directories = []
         commands = []
-        for idx, url in enumerate(urls):
-            relpath = frame["relpath"][idx]
+        for relpath in frame["relpath"]:
             directory = os.path.dirname(relpath).replace("/", "\\")
 
             if directory not in directories:
diff --git a/metobsapi/server.py b/metobsapi/server.py
index 28ccde9e52dbd38af6b00868fa8522c9b60b5336..08752e1c2c7814d7711dce40813ddccaabd9bdd3 100644
--- a/metobsapi/server.py
+++ b/metobsapi/server.py
@@ -41,13 +41,13 @@ CORS(app, resources=r"/api/*", allow_headers="Content-Type")
 
 @app.route("/api/")
 def index():
-    """Main App Documentation"""
+    """Get Main App Documentation."""
     return render_template("index.html")
 
 
 @app.route("/api/files")
 def files_index():
-    """Files API Documentation"""
+    """Get Files API Documentation."""
     return render_template(
         "files_index.html",
         archive_info=file_responses.ARCHIVE_STREAMS,
@@ -57,7 +57,7 @@ def files_index():
 
 @app.route("/api/data")
 def data_index():
-    """Data API Documentation"""
+    """Get Data API Documentation."""
     return render_template("data_index.html")
 
 
diff --git a/metobsapi/tests/test_files_api.py b/metobsapi/tests/test_files_api.py
index 5ae33107d1918f268970592ee88229024248450c..105e0c5075276f4deb610d9823128dc240ab2084 100644
--- a/metobsapi/tests/test_files_api.py
+++ b/metobsapi/tests/test_files_api.py
@@ -82,7 +82,7 @@ class TestFilesAPI(unittest.TestCase):
         assert fn in res.data
 
     def test_tower_daily_ascii_relative_json(self):
-        """Test relative begin with defined end
+        """Test relative begin with defined end.
 
         Begin and end are relative to today so begin=-2 should mean the day
         before yesterday. End being set to yesterday's date should mean we get
@@ -98,7 +98,7 @@ class TestFilesAPI(unittest.TestCase):
         assert fn not in res.data
 
     def test_tower_daily_ascii_both_relative_json(self):
-        """Test relative begin and end
+        """Test relative begin and end.
 
         Begin and end are relative to today so begin=-2 and end=-2 should mean
         we only get 1 file for the day before yesterday.
diff --git a/metobsapi/util/__init__.py b/metobsapi/util/__init__.py
index c64b90d8728825b0175d589bc03e007ed4cdc437..dc57c9b485eb27b1542a326ac3ccdf6c0b673684 100644
--- a/metobsapi/util/__init__.py
+++ b/metobsapi/util/__init__.py
@@ -1,6 +1,5 @@
 #!/usr/bin/env python
-"""Utility functions to help with testing and running hte MetObs API
-"""
+"""Utility functions to help with testing and running hte MetObs API."""
 
 import os
 from datetime import datetime
@@ -37,10 +36,10 @@ def create_fake_archive(archive_info, root=FAKE_ARCHIVE_PATH, datetimes=None):
     curr_dir = os.getcwd()
     os.makedirs(root, exist_ok=True)
     os.chdir(root)
-    for site, inst_info in archive_info.items():
+    for site, site_info in archive_info.items():
         os.makedirs(site, exist_ok=True)
         os.chdir(site)
-        for inst, inst_info in inst_info["instruments"].items():
+        for inst, inst_info in site_info["instruments"].items():
             os.makedirs(inst, exist_ok=True)
             os.chdir(inst)
             for level_name, level_info in inst_info["levels"].items():
@@ -50,7 +49,7 @@ def create_fake_archive(archive_info, root=FAKE_ARCHIVE_PATH, datetimes=None):
                     os.makedirs(version_name, exist_ok=True)
                     os.chdir(version_name)
                     for dt in datetimes:
-                        for pattern_name, pattern_info in level_info["products"].items():
+                        for pattern_info in level_info["products"].values():
                             if pattern_info["frequency"] not in FREQUENCY_DIR_FMT:
                                 raise RuntimeError("Unknown frequency '%s'", pattern_info["frequency"])
 
diff --git a/metobsapi/util/data_responses.py b/metobsapi/util/data_responses.py
index 0805a464851ae2b9ceaa82cb91c505611c24270c..52207223a67efd832a01184e5fa221c0aa16773e 100644
--- a/metobsapi/util/data_responses.py
+++ b/metobsapi/util/data_responses.py
@@ -1,3 +1,5 @@
+"""Configuration for data-based API responses."""
+
 SYMBOL_TRANSLATIONS = {
     ("aoss", "tower"): {
         "air_temp": "air_temp",
diff --git a/metobsapi/util/file_responses.py b/metobsapi/util/file_responses.py
index 07c57c10cedc845a2a8b44309b6a6af8c60a3326..e0b313730007d6102895ae5f61dfb869ae14cfac 100644
--- a/metobsapi/util/file_responses.py
+++ b/metobsapi/util/file_responses.py
@@ -1,3 +1,4 @@
+"""Configuration for file-based API responses."""
 import os
 from collections import defaultdict
 from typing import TypedDict
@@ -89,7 +90,8 @@ ARCHIVE_INFO: dict[str, SiteInfo] = {
                                 "frequency": ProductFrequency.DAILY_FILE,
                                 "pattern": "aoss_tower.accum_precip.%Y-%m-%d.png",
                                 "thumbnail_pattern": "aoss_tower.accum_precip.%Y-%m-%d_thumbnail.png",
-                                "display_name": "Daily Accumulated Precipitation (aoss_tower.accum_precip.YYYY-MM-DD.png)",
+                                "display_name": "Daily Accumulated Precipitation "
+                                "(aoss_tower.accum_precip.YYYY-MM-DD.png)",
                             },
                             "solar-flux-daily": {
                                 "frequency": ProductFrequency.DAILY_FILE,
diff --git a/metobsapi/util/query_influx.py b/metobsapi/util/query_influx.py
index 35c03ef1431e937be6efad41a0eff3d36b318270..57f40546d876d869cfa1a40528bd28e68b71bcf6 100644
--- a/metobsapi/util/query_influx.py
+++ b/metobsapi/util/query_influx.py
@@ -1,3 +1,4 @@
+"""Helpers for querying an InfluxDB backend."""
 from datetime import timedelta
 
 from flask import current_app
diff --git a/metobsapi_development.py b/metobsapi_development.py
index f10d2d9d89757f1c450ca99b7716725826a303d5..cf10fd8682f921f31584820c83b70aab1c253bc9 100644
--- a/metobsapi_development.py
+++ b/metobsapi_development.py
@@ -1,6 +1,4 @@
-import os
-
-from metobsapi.common_config import *
+"""Fake configuration options for testing."""
 from metobsapi.util import FAKE_ARCHIVE_PATH, create_fake_archive
 from metobsapi.util.file_responses import ARCHIVE_INFO
 
diff --git a/setup.cfg b/setup.cfg
index 191111d52ee53d36aa23528a276d6e99705dedb0..207d834481ffc0ddfb3e546969225eddf3047efa 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
 [flake8]
 max-line-length = 120
-ignore = D101,D102,D103,D104,D106,D107,W503,E203,B008
+ignore = D100,D101,D102,D103,D104,D106,D107,W503,E203,B008
 
 [coverage:run]
 relative_files = True