prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  we should clean up CantusDB/django/cantusdb_project
  ```shell
  root@7aa2f88fb303:/code/django/cantusdb_project# ls
  align_text_mel.py  create_fixtures.sh	 error_log.txt		   manage.py		       requirements.txt
  articles	   differentia_data.txt  latin_syllabification.py  next_chants.py	       static
  break_json.py	   editors_chant.csv	 load_fixtures.sh	   old_users_list.py	       templates
  cantusdb	   editors_source.csv	 main_app		   oldcantususer_uid_role.csv  users
  ```
  The following files have already served their purpose:
  - `differentia_data.txt` (used in #1137)
  - `editors_chant.csv` (used in the data sync from OldCantus to New)
  - `editors_source.csv` (used in the data sync from OldCantus to New)
  - `old_users_list.py` (used in the data sync from OldCantus to New)
  - `oldcantususer_uid_role.csv` (used in the data sync from OldCantus to New, created by `old_users_list.py`)
  - `create_fixtures.sh`, (we no longer migrate data using fixtures)
  - `error_log.txt` (This is a log generated during the syncing process from OldCantus to NewCantus. It's not clear why it was committed to the repo in the first place.)
  - `break_json.py` (we no longer migrate data using fixtures)
  - `load_fixtures.sh` (we no longer migrate data using fixtures)
  
  I propose deleting these files, so that future developers don't need to spend time figuring out what they are.
  
  </issue>
  <code>
  [start of django/cantusdb_project/old_users_list.py]
  1 import csv
  2 import lxml.html as lh
  3 import requests
  4 
  5 with open("oldcantususer_uid_role.csv", "r") as csvinput:
  6     with open("oldcantususer_uid_role_detailed.csv", "w") as csvoutput:
  7         with open("id_username_email.csv", "r") as csvinput_username_email:
  8             writer = csv.writer(csvoutput, lineterminator="\n")
  9             reader = csv.reader(csvinput)
  10             reader_username_email = csv.reader(csvinput_username_email)
  11 
  12             # header
  13             writer.writerow(
  14                 [
  15                     "uid",
  16                     "old role",
  17                     "new role",
  18                     "name",
  19                     "surname",
  20                     "institution",
  21                     "town",
  22                     "country",
  23                     "username",
  24                     "email",
  25                 ]
  26             )
  27 
  28             for row, row_username_email in zip(reader, reader_username_email):
  29                 old_role = row[1]
  30                 if old_role == "administrator":
  31                     row.append("project manager")
  32                 elif old_role == "anonymous user":
  33                     row.append("")
  34                 elif old_role == "authenticated user":
  35                     row.append("")
  36                 elif old_role == "contributor":
  37                     row.append("contributor")
  38                 elif old_role == "Debra":
  39                     row.append("project manager")
  40                 elif old_role == "editor":
  41                     row.append("editor")
  42                 elif old_role == "power":
  43                     row.append("editor")
  44                 elif old_role == "proofreader":
  45                     row.append("editor")
  46                 elif old_role == "SIMSSA contributor":
  47                     row.append("contributor")
  48 
  49                 id = row[0]
  50                 url = f"https://cantus.uwaterloo.ca/user/{id}"
  51                 response = requests.get(url)
  52                 doc = lh.fromstring(response.content)
  53 
  54                 try:
  55                     name = (
  56                         doc.find_class("field-name-field-name")[0]
  57                         .find_class("field-item")[0]
  58                         .text_content()
  59                     )
  60                 except:
  61                     name = ""
  62                 try:
  63                     surname = (
  64                         doc.find_class("field-name-field-surname")[0]
  65                         .find_class("field-item")[0]
  66                         .text_content()
  67                     )
  68                 except:
  69                     surname = ""
  70                 try:
  71                     institution = (
  72                         doc.find_class("field-name-field-institution")[0]
  73                         .find_class("field-item")[0]
  74                         .text_content()
  75                     )
  76                 except:
  77                     institution = ""
  78                 try:
  79                     town = (
  80                         doc.find_class("field-name-field-town")[0]
  81                         .find_class("field-item")[0]
  82                         .text_content()
  83                     )
  84                 except:
  85                     town = ""
  86                 try:
  87                     country = (
  88                         doc.find_class("field-name-field-country")[0]
  89                         .find_class("field-item")[0]
  90                         .text_content()
  91                     )
  92                 except:
  93                     country = ""
  94 
  95                 username = row_username_email[1]
  96                 email = row_username_email[2]
  97 
  98                 row.append(name)
  99                 row.append(surname)
  100                 row.append(institution)
  101                 row.append(town)
  102                 row.append(country)
  103                 row.append(username)
  104                 row.append(email)
  105 
  106                 writer.writerow(row)
  107
  [end of django/cantusdb_project/old_users_list.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/django/cantusdb_project/old_users_list.py b/django/cantusdb_project/old_users_list.py
  deleted file mode 100755
  --- a/django/cantusdb_project/old_users_list.py
  +++ /dev/null
  @@ -1,106 +0,0 @@
  -import csv
  -import lxml.html as lh
  -import requests
  -
  -with open("oldcantususer_uid_role.csv", "r") as csvinput:
  -    with open("oldcantususer_uid_role_detailed.csv", "w") as csvoutput:
  -        with open("id_username_email.csv", "r") as csvinput_username_email:
  -            writer = csv.writer(csvoutput, lineterminator="\n")
  -            reader = csv.reader(csvinput)
  -            reader_username_email = csv.reader(csvinput_username_email)
  -
  -            # header
  -            writer.writerow(
  -                [
  -                    "uid",
  -                    "old role",
  -                    "new role",
  -                    "name",
  -                    "surname",
  -                    "institution",
  -                    "town",
  -                    "country",
  -                    "username",
  -                    "email",
  -                ]
  -            )
  -
  -            for row, row_username_email in zip(reader, reader_username_email):
  -                old_role = row[1]
  -                if old_role == "administrator":
  -                    row.append("project manager")
  -                elif old_role == "anonymous user":
  -                    row.append("")
  -                elif old_role == "authenticated user":
  -                    row.append("")
  -                elif old_role == "contributor":
  -                    row.append("contributor")
  -                elif old_role == "Debra":
  -                    row.append("project manager")
  -                elif old_role == "editor":
  -                    row.append("editor")
  -                elif old_role == "power":
  -                    row.append("editor")
  -                elif old_role == "proofreader":
  -                    row.append("editor")
  -                elif old_role == "SIMSSA contributor":
  -                    row.append("contributor")
  -
  -                id = row[0]
  -                url = f"https://cantus.uwaterloo.ca/user/{id}"
  -                response = requests.get(url)
  -                doc = lh.fromstring(response.content)
  -
  -                try:
  -                    name = (
  -                        doc.find_class("field-name-field-name")[0]
  -                        .find_class("field-item")[0]
  -                        .text_content()
  -                    )
  -                except:
  -                    name = ""
  -                try:
  -                    surname = (
  -                        doc.find_class("field-name-field-surname")[0]
  -                        .find_class("field-item")[0]
  -                        .text_content()
  -                    )
  -                except:
  -                    surname = ""
  -                try:
  -                    institution = (
  -                        doc.find_class("field-name-field-institution")[0]
  -                        .find_class("field-item")[0]
  -                        .text_content()
  -                    )
  -                except:
  -                    institution = ""
  -                try:
  -                    town = (
  -                        doc.find_class("field-name-field-town")[0]
  -                        .find_class("field-item")[0]
  -                        .text_content()
  -                    )
  -                except:
  -                    town = ""
  -                try:
  -                    country = (
  -                        doc.find_class("field-name-field-country")[0]
  -                        .find_class("field-item")[0]
  -                        .text_content()
  -                    )
  -                except:
  -                    country = ""
  -
  -                username = row_username_email[1]
  -                email = row_username_email[2]
  -
  -                row.append(name)
  -                row.append(surname)
  -                row.append(institution)
  -                row.append(town)
  -                row.append(country)
  -                row.append(username)
  -                row.append(email)
  -
  -                writer.writerow(row)
  
verification_info: {"golden_diff": "diff --git a/django/cantusdb_project/old_users_list.py b/django/cantusdb_project/old_users_list.py\ndeleted file mode 100755\n--- a/django/cantusdb_project/old_users_list.py\n+++ /dev/null\n@@ -1,106 +0,0 @@\n-import csv\n-import lxml.html as lh\n-import requests\n-\n-with open(\"oldcantususer_uid_role.csv\", \"r\") as csvinput:\n-    with open(\"oldcantususer_uid_role_detailed.csv\", \"w\") as csvoutput:\n-        with open(\"id_username_email.csv\", \"r\") as csvinput_username_email:\n-            writer = csv.writer(csvoutput, lineterminator=\"\\n\")\n-            reader = csv.reader(csvinput)\n-            reader_username_email = csv.reader(csvinput_username_email)\n-\n-            # header\n-            writer.writerow(\n-                [\n-                    \"uid\",\n-                    \"old role\",\n-                    \"new role\",\n-                    \"name\",\n-                    \"surname\",\n-                    \"institution\",\n-                    \"town\",\n-                    \"country\",\n-                    \"username\",\n-                    \"email\",\n-                ]\n-            )\n-\n-            for row, row_username_email in zip(reader, reader_username_email):\n-                old_role = row[1]\n-                if old_role == \"administrator\":\n-                    row.append(\"project manager\")\n-                elif old_role == \"anonymous user\":\n-                    row.append(\"\")\n-                elif old_role == \"authenticated user\":\n-                    row.append(\"\")\n-                elif old_role == \"contributor\":\n-                    row.append(\"contributor\")\n-                elif old_role == \"Debra\":\n-                    row.append(\"project manager\")\n-                elif old_role == \"editor\":\n-                    row.append(\"editor\")\n-                elif old_role == \"power\":\n-                    row.append(\"editor\")\n-                elif old_role == \"proofreader\":\n-                    row.append(\"editor\")\n-                elif old_role == \"SIMSSA contributor\":\n-                    row.append(\"contributor\")\n-\n-                id = row[0]\n-                url = f\"https://cantus.uwaterloo.ca/user/{id}\"\n-                response = requests.get(url)\n-                doc = lh.fromstring(response.content)\n-\n-                try:\n-                    name = (\n-                        doc.find_class(\"field-name-field-name\")[0]\n-                        .find_class(\"field-item\")[0]\n-                        .text_content()\n-                    )\n-                except:\n-                    name = \"\"\n-                try:\n-                    surname = (\n-                        doc.find_class(\"field-name-field-surname\")[0]\n-                        .find_class(\"field-item\")[0]\n-                        .text_content()\n-                    )\n-                except:\n-                    surname = \"\"\n-                try:\n-                    institution = (\n-                        doc.find_class(\"field-name-field-institution\")[0]\n-                        .find_class(\"field-item\")[0]\n-                        .text_content()\n-                    )\n-                except:\n-                    institution = \"\"\n-                try:\n-                    town = (\n-                        doc.find_class(\"field-name-field-town\")[0]\n-                        .find_class(\"field-item\")[0]\n-                        .text_content()\n-                    )\n-                except:\n-                    town = \"\"\n-                try:\n-                    country = (\n-                        doc.find_class(\"field-name-field-country\")[0]\n-                        .find_class(\"field-item\")[0]\n-                        .text_content()\n-                    )\n-                except:\n-                    country = \"\"\n-\n-                username = row_username_email[1]\n-                email = row_username_email[2]\n-\n-                row.append(name)\n-                row.append(surname)\n-                row.append(institution)\n-                row.append(town)\n-                row.append(country)\n-                row.append(username)\n-                row.append(email)\n-\n-                writer.writerow(row)\n", "issue": "we should clean up CantusDB/django/cantusdb_project\n```shell\r\nroot@7aa2f88fb303:/code/django/cantusdb_project# ls\r\nalign_text_mel.py  create_fixtures.sh\t error_log.txt\t\t   manage.py\t\t       requirements.txt\r\narticles\t   differentia_data.txt  latin_syllabification.py  next_chants.py\t       static\r\nbreak_json.py\t   editors_chant.csv\t load_fixtures.sh\t   old_users_list.py\t       templates\r\ncantusdb\t   editors_source.csv\t main_app\t\t   oldcantususer_uid_role.csv  users\r\n```\r\nThe following files have already served their purpose:\r\n- `differentia_data.txt` (used in #1137)\r\n- `editors_chant.csv` (used in the data sync from OldCantus to New)\r\n- `editors_source.csv` (used in the data sync from OldCantus to New)\r\n- `old_users_list.py` (used in the data sync from OldCantus to New)\r\n- `oldcantususer_uid_role.csv` (used in the data sync from OldCantus to New, created by `old_users_list.py`)\r\n- `create_fixtures.sh`, (we no longer migrate data using fixtures)\r\n- `error_log.txt` (This is a log generated during the syncing process from OldCantus to NewCantus. It's not clear why it was committed to the repo in the first place.)\r\n- `break_json.py` (we no longer migrate data using fixtures)\r\n- `load_fixtures.sh` (we no longer migrate data using fixtures)\r\n\r\nI propose deleting these files, so that future developers don't need to spend time figuring out what they are.\n", "before_files": [{"content": "import csv\nimport lxml.html as lh\nimport requests\n\nwith open(\"oldcantususer_uid_role.csv\", \"r\") as csvinput:\n    with open(\"oldcantususer_uid_role_detailed.csv\", \"w\") as csvoutput:\n        with open(\"id_username_email.csv\", \"r\") as csvinput_username_email:\n            writer = csv.writer(csvoutput, lineterminator=\"\\n\")\n            reader = csv.reader(csvinput)\n            reader_username_email = csv.reader(csvinput_username_email)\n\n            # header\n            writer.writerow(\n                [\n                    \"uid\",\n                    \"old role\",\n                    \"new role\",\n                    \"name\",\n                    \"surname\",\n                    \"institution\",\n                    \"town\",\n                    \"country\",\n                    \"username\",\n                    \"email\",\n                ]\n            )\n\n            for row, row_username_email in zip(reader, reader_username_email):\n                old_role = row[1]\n                if old_role == \"administrator\":\n                    row.append(\"project manager\")\n                elif old_role == \"anonymous user\":\n                    row.append(\"\")\n                elif old_role == \"authenticated user\":\n                    row.append(\"\")\n                elif old_role == \"contributor\":\n                    row.append(\"contributor\")\n                elif old_role == \"Debra\":\n                    row.append(\"project manager\")\n                elif old_role == \"editor\":\n                    row.append(\"editor\")\n                elif old_role == \"power\":\n                    row.append(\"editor\")\n                elif old_role == \"proofreader\":\n                    row.append(\"editor\")\n                elif old_role == \"SIMSSA contributor\":\n                    row.append(\"contributor\")\n\n                id = row[0]\n                url = f\"https://cantus.uwaterloo.ca/user/{id}\"\n                response = requests.get(url)\n                doc = lh.fromstring(response.content)\n\n                try:\n                    name = (\n                        doc.find_class(\"field-name-field-name\")[0]\n                        .find_class(\"field-item\")[0]\n                        .text_content()\n                    )\n                except:\n                    name = \"\"\n                try:\n                    surname = (\n                        doc.find_class(\"field-name-field-surname\")[0]\n                        .find_class(\"field-item\")[0]\n                        .text_content()\n                    )\n                except:\n                    surname = \"\"\n                try:\n                    institution = (\n                        doc.find_class(\"field-name-field-institution\")[0]\n                        .find_class(\"field-item\")[0]\n                        .text_content()\n                    )\n                except:\n                    institution = \"\"\n                try:\n                    town = (\n                        doc.find_class(\"field-name-field-town\")[0]\n                        .find_class(\"field-item\")[0]\n                        .text_content()\n                    )\n                except:\n                    town = \"\"\n                try:\n                    country = (\n                        doc.find_class(\"field-name-field-country\")[0]\n                        .find_class(\"field-item\")[0]\n                        .text_content()\n                    )\n                except:\n                    country = \"\"\n\n                username = row_username_email[1]\n                email = row_username_email[2]\n\n                row.append(name)\n                row.append(surname)\n                row.append(institution)\n                row.append(town)\n                row.append(country)\n                row.append(username)\n                row.append(email)\n\n                writer.writerow(row)\n", "path": "django/cantusdb_project/old_users_list.py"}]}