We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Configure flake8 & GitHub Action correctly
Our flake8 setup has a couple of issues:
- Failures on the GitHub Action don't actually block merge.
- We need to set up our style guide for flake8.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `mathesar/forms/widgets.py`
Content:
```
1 from django.forms.widgets import TextInput
2 
3 class DataListInput(TextInput):
4     """
5     Widget that adds a <data_list> element to the standard text input widget.
6     See TextInput for further details.
7 
8     Attributes:
9         data_list: List of strings, where each string is a data_list value, or
10         a callable that returns a list of the same form
11         data_list_id: ID of the data_list, generated when render() is called.
12         Of the form [widget_id | widget_name]_data_list
13     """
14     template_name = "mathesar/widgets/data_list.html"
15 
16     def __init__(self, data_list, attrs=None):
17         super().__init__(attrs=attrs)
18         self.data_list = data_list
19         self.data_list_id = "_data_list"
20 
21     def get_context(self, name, value, attrs):
22         context = super().get_context(name, value, attrs)
23         if callable(self.data_list):
24             context["widget"]["data_list"] = self.data_list()
25         else:
26             context["widget"]["data_list"] = self.data_list
27         context["widget"]["data_list_id"] = self.data_list_id
28         return context
29 
30     def render(self, name, value, attrs=None, renderer=None):
31         # In practice, there should always be an ID attribute, but we fallback
32         # to using widget name if ID is missing
33         if attrs and "id" in attrs:
34             self.data_list_id = attrs["id"] + "_data_list"
35         else:
36             self.data_list_id = name + "_data_list"
37         attrs = {} if attrs is None else attrs
38         attrs["list"] = self.data_list_id
39         return super().render(name, value, attrs, renderer)
40 
41
```

Path: `mathesar/forms/forms.py`
Content:
```
1 from django import forms
2 from django.core.exceptions import ValidationError
3 
4 from mathesar.database.schemas import get_all_schemas
5 from mathesar.forms.widgets import DataListInput
6 
7 def validate_csv(value):
8     if not value.name.lower().endswith(".csv"):
9         raise ValidationError(f"{value.name} is not a CSV file")
10 
11 class UploadFileForm(forms.Form):
12     collection_name = forms.CharField(min_length=1, label="Collection Name")
13 
14     application_name = forms.CharField(
15         min_length=1, label="Application Name",
16         widget=DataListInput(get_all_schemas)
17     )
18 
19     file = forms.FileField(validators=[validate_csv], label="CSV File")
20
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/mathesar/forms/forms.py b/mathesar/forms/forms.py
--- a/mathesar/forms/forms.py
+++ b/mathesar/forms/forms.py
@@ -4,10 +4,12 @@
 from mathesar.database.schemas import get_all_schemas
 from mathesar.forms.widgets import DataListInput
 
+
 def validate_csv(value):
     if not value.name.lower().endswith(".csv"):
         raise ValidationError(f"{value.name} is not a CSV file")
 
+
 class UploadFileForm(forms.Form):
     collection_name = forms.CharField(min_length=1, label="Collection Name")
 
diff --git a/mathesar/forms/widgets.py b/mathesar/forms/widgets.py
--- a/mathesar/forms/widgets.py
+++ b/mathesar/forms/widgets.py
@@ -1,5 +1,6 @@
 from django.forms.widgets import TextInput
 
+
 class DataListInput(TextInput):
     """
     Widget that adds a <data_list> element to the standard text input widget.
@@ -37,4 +38,3 @@
         attrs = {} if attrs is None else attrs
         attrs["list"] = self.data_list_id
         return super().render(name, value, attrs, renderer)
-

{"golden_diff": "diff --git a/mathesar/forms/forms.py b/mathesar/forms/forms.py\n--- a/mathesar/forms/forms.py\n+++ b/mathesar/forms/forms.py\n@@ -4,10 +4,12 @@\n from mathesar.database.schemas import get_all_schemas\n from mathesar.forms.widgets import DataListInput\n \n+\n def validate_csv(value):\n     if not value.name.lower().endswith(\".csv\"):\n         raise ValidationError(f\"{value.name} is not a CSV file\")\n \n+\n class UploadFileForm(forms.Form):\n     collection_name = forms.CharField(min_length=1, label=\"Collection Name\")\n \ndiff --git a/mathesar/forms/widgets.py b/mathesar/forms/widgets.py\n--- a/mathesar/forms/widgets.py\n+++ b/mathesar/forms/widgets.py\n@@ -1,5 +1,6 @@\n from django.forms.widgets import TextInput\n \n+\n class DataListInput(TextInput):\n     \"\"\"\n     Widget that adds a <data_list> element to the standard text input widget.\n@@ -37,4 +38,3 @@\n         attrs = {} if attrs is None else attrs\n         attrs[\"list\"] = self.data_list_id\n         return super().render(name, value, attrs, renderer)\n-\n", "issue": "Configure flake8 & GitHub Action correctly\nOur flake8 setup has a couple of issues:\r\n- Failures on the GitHub Action don't actually block merge.\r\n- We need to set up our style guide for flake8.\n", "before_files": [{"content": "from django.forms.widgets import TextInput\n\nclass DataListInput(TextInput):\n    \"\"\"\n    Widget that adds a <data_list> element to the standard text input widget.\n    See TextInput for further details.\n\n    Attributes:\n        data_list: List of strings, where each string is a data_list value, or\n        a callable that returns a list of the same form\n        data_list_id: ID of the data_list, generated when render() is called.\n        Of the form [widget_id | widget_name]_data_list\n    \"\"\"\n    template_name = \"mathesar/widgets/data_list.html\"\n\n    def __init__(self, data_list, attrs=None):\n        super().__init__(attrs=attrs)\n        self.data_list = data_list\n        self.data_list_id = \"_data_list\"\n\n    def get_context(self, name, value, attrs):\n        context = super().get_context(name, value, attrs)\n        if callable(self.data_list):\n            context[\"widget\"][\"data_list\"] = self.data_list()\n        else:\n            context[\"widget\"][\"data_list\"] = self.data_list\n        context[\"widget\"][\"data_list_id\"] = self.data_list_id\n        return context\n\n    def render(self, name, value, attrs=None, renderer=None):\n        # In practice, there should always be an ID attribute, but we fallback\n        # to using widget name if ID is missing\n        if attrs and \"id\" in attrs:\n            self.data_list_id = attrs[\"id\"] + \"_data_list\"\n        else:\n            self.data_list_id = name + \"_data_list\"\n        attrs = {} if attrs is None else attrs\n        attrs[\"list\"] = self.data_list_id\n        return super().render(name, value, attrs, renderer)\n\n", "path": "mathesar/forms/widgets.py"}, {"content": "from django import forms\nfrom django.core.exceptions import ValidationError\n\nfrom mathesar.database.schemas import get_all_schemas\nfrom mathesar.forms.widgets import DataListInput\n\ndef validate_csv(value):\n    if not value.name.lower().endswith(\".csv\"):\n        raise ValidationError(f\"{value.name} is not a CSV file\")\n\nclass UploadFileForm(forms.Form):\n    collection_name = forms.CharField(min_length=1, label=\"Collection Name\")\n\n    application_name = forms.CharField(\n        min_length=1, label=\"Application Name\",\n        widget=DataListInput(get_all_schemas)\n    )\n\n    file = forms.FileField(validators=[validate_csv], label=\"CSV File\")\n", "path": "mathesar/forms/forms.py"}], "after_files": [{"content": "from django.forms.widgets import TextInput\n\n\nclass DataListInput(TextInput):\n    \"\"\"\n    Widget that adds a <data_list> element to the standard text input widget.\n    See TextInput for further details.\n\n    Attributes:\n        data_list: List of strings, where each string is a data_list value, or\n        a callable that returns a list of the same form\n        data_list_id: ID of the data_list, generated when render() is called.\n        Of the form [widget_id | widget_name]_data_list\n    \"\"\"\n    template_name = \"mathesar/widgets/data_list.html\"\n\n    def __init__(self, data_list, attrs=None):\n        super().__init__(attrs=attrs)\n        self.data_list = data_list\n        self.data_list_id = \"_data_list\"\n\n    def get_context(self, name, value, attrs):\n        context = super().get_context(name, value, attrs)\n        if callable(self.data_list):\n            context[\"widget\"][\"data_list\"] = self.data_list()\n        else:\n            context[\"widget\"][\"data_list\"] = self.data_list\n        context[\"widget\"][\"data_list_id\"] = self.data_list_id\n        return context\n\n    def render(self, name, value, attrs=None, renderer=None):\n        # In practice, there should always be an ID attribute, but we fallback\n        # to using widget name if ID is missing\n        if attrs and \"id\" in attrs:\n            self.data_list_id = attrs[\"id\"] + \"_data_list\"\n        else:\n            self.data_list_id = name + \"_data_list\"\n        attrs = {} if attrs is None else attrs\n        attrs[\"list\"] = self.data_list_id\n        return super().render(name, value, attrs, renderer)\n", "path": "mathesar/forms/widgets.py"}, {"content": "from django import forms\nfrom django.core.exceptions import ValidationError\n\nfrom mathesar.database.schemas import get_all_schemas\nfrom mathesar.forms.widgets import DataListInput\n\n\ndef validate_csv(value):\n    if not value.name.lower().endswith(\".csv\"):\n        raise ValidationError(f\"{value.name} is not a CSV file\")\n\n\nclass UploadFileForm(forms.Form):\n    collection_name = forms.CharField(min_length=1, label=\"Collection Name\")\n\n    application_name = forms.CharField(\n        min_length=1, label=\"Application Name\",\n        widget=DataListInput(get_all_schemas)\n    )\n\n    file = forms.FileField(validators=[validate_csv], label=\"CSV File\")\n", "path": "mathesar/forms/forms.py"}]}