diff --git a/integrations/acquisition/covidcast/test_covidcast_meta_caching.py b/integrations/acquisition/covidcast/test_covidcast_meta_caching.py index 30b6bbcf2..2ee59465f 100644 --- a/integrations/acquisition/covidcast/test_covidcast_meta_caching.py +++ b/integrations/acquisition/covidcast/test_covidcast_meta_caching.py @@ -5,7 +5,7 @@ import unittest # third party -import mysql.connector +import MySQLdb import requests # first party @@ -32,7 +32,7 @@ def setUp(self): """Perform per-test setup.""" # connect to the `epidata` database - cnx = mysql.connector.connect( + cnx = MySQLdb.connect( user='user', password='pass', host='delphi_database_epidata', @@ -58,7 +58,7 @@ def setUp(self): secrets.db.host = 'delphi_database_epidata' secrets.db.epi = ('user', 'pass') - epidata_cnx = mysql.connector.connect( + epidata_cnx = MySQLdb.connect( user='user', password='pass', host='delphi_database_epidata', diff --git a/integrations/acquisition/covidcast/test_csv_uploading.py b/integrations/acquisition/covidcast/test_csv_uploading.py index dab35f414..968484762 100644 --- a/integrations/acquisition/covidcast/test_csv_uploading.py +++ b/integrations/acquisition/covidcast/test_csv_uploading.py @@ -7,7 +7,7 @@ import argparse # third party -import mysql.connector +import MySQLdb import pandas as pd import numpy as np @@ -28,7 +28,7 @@ def setUp(self): """Perform per-test setup.""" # connect to the `epidata` database and clear the `covidcast` table - cnx = mysql.connector.connect( + cnx = MySQLdb.connect( user='user', password='pass', host='delphi_database_epidata', @@ -55,7 +55,7 @@ def setUp(self): secrets.db.host = 'delphi_database_epidata' secrets.db.epi = ('user', 'pass') - epidata_cnx = mysql.connector.connect( + epidata_cnx = MySQLdb.connect( user='user', password='pass', host='delphi_database_epidata', diff --git a/integrations/acquisition/covidcast/test_db.py b/integrations/acquisition/covidcast/test_db.py index 7b9d80770..35d344e15 100644 --- a/integrations/acquisition/covidcast/test_db.py +++ b/integrations/acquisition/covidcast/test_db.py @@ -23,7 +23,8 @@ def _find_matches_for_row(self, row): cur.execute(q) res = cur.fetchone() if res: - results[table] = dict(zip(cur.column_names, res)) + # Create a dictionary of column names (from cursor.description) & values + results[table] = dict(zip([desc[0] for desc in cur.description], res)) else: results[table] = None return results diff --git a/integrations/server/test_covidcast.py b/integrations/server/test_covidcast.py index 8b7fc6f52..c048f8a1f 100644 --- a/integrations/server/test_covidcast.py +++ b/integrations/server/test_covidcast.py @@ -5,7 +5,7 @@ import unittest # third party -import mysql.connector +import MySQLdb # first party from delphi_utils import Nans @@ -369,7 +369,7 @@ def test_unique_key_constraint(self): row = self._insert_placeholder_set_one() # fail to insert different placeholder data under the same key - with self.assertRaises(mysql.connector.errors.IntegrityError): + with self.assertRaises(MySQLdb.errors.IntegrityError): self._insert_placeholder_set_one() # succeed to insert different placeholder data under a different time_type diff --git a/integrations/server/test_covidcast_meta.py b/integrations/server/test_covidcast_meta.py index 857422a41..7fba26cbb 100644 --- a/integrations/server/test_covidcast_meta.py +++ b/integrations/server/test_covidcast_meta.py @@ -4,7 +4,7 @@ import unittest # third party -import mysql.connector +import MySQLdb import requests #first party @@ -53,7 +53,7 @@ def localSetUp(self): """Perform per-test setup.""" # connect to the `epidata` database and clear the `covidcast` table - cnx = mysql.connector.connect( + cnx = MySQLdb.connect( user='user', password='pass', host='delphi_database_epidata', diff --git a/integrations/server/test_fluview.py b/integrations/server/test_fluview.py index 48d9585fd..b6a7719c5 100644 --- a/integrations/server/test_fluview.py +++ b/integrations/server/test_fluview.py @@ -4,7 +4,7 @@ import unittest # third party -import mysql.connector +import MySQLdb # first party from delphi.epidata.client.delphi_epidata import Epidata @@ -25,7 +25,7 @@ def setUp(self): """Perform per-test setup.""" # connect to the `epidata` database and clear the `fluview` table - cnx = mysql.connector.connect( + cnx = MySQLdb.connect( user='user', password='pass', host='delphi_database_epidata', diff --git a/integrations/server/test_fluview_meta.py b/integrations/server/test_fluview_meta.py index 6f81c1859..2e23a994a 100644 --- a/integrations/server/test_fluview_meta.py +++ b/integrations/server/test_fluview_meta.py @@ -4,7 +4,7 @@ import unittest # third party -import mysql.connector +import MySQLdb # first party from delphi.epidata.client.delphi_epidata import Epidata @@ -25,7 +25,7 @@ def setUp(self): """Perform per-test setup.""" # connect to the `epidata` database and clear the `fluview` table - cnx = mysql.connector.connect( + cnx = MySQLdb.connect( user='user', password='pass', host='delphi_database_epidata', diff --git a/requirements.api.txt b/requirements.api.txt index 01026935f..c0f51d837 100644 --- a/requirements.api.txt +++ b/requirements.api.txt @@ -4,7 +4,7 @@ Flask==2.2.5 Flask-Limiter==3.3.0 jinja2==3.1.3 more_itertools==8.4.0 -mysqlclient==2.1.1 +mysqlclient==2.2.1 orjson==3.4.7 pandas==1.2.3 python-dotenv==0.15.0 @@ -13,7 +13,7 @@ redis==3.5.3 requests==2.31.0 scipy==1.10.0 sentry-sdk[flask] -SQLAlchemy==1.4.40 +SQLAlchemy==1.4.51 structlog==22.1.0 tenacity==7.0.0 typing-extensions diff --git a/requirements.dev.txt b/requirements.dev.txt index c071f208d..3f0d4f2f2 100644 --- a/requirements.dev.txt +++ b/requirements.dev.txt @@ -10,10 +10,8 @@ invoke>=1.4.1 lxml==4.9.1 matplotlib==3.6.2 mypy>=0.790 -mysql-connector==2.2.9 numpy==1.22.4 pycountry==22.3.5 -pymysql==1.0.2 pytest==7.2.0 pytest-check==1.3.0 sas7bdat==2.2.3 diff --git a/src/acquisition/cdcp/cdc_dropbox_receiver.py b/src/acquisition/cdcp/cdc_dropbox_receiver.py index 4fa20368e..9713aa384 100644 --- a/src/acquisition/cdcp/cdc_dropbox_receiver.py +++ b/src/acquisition/cdcp/cdc_dropbox_receiver.py @@ -22,7 +22,7 @@ # third party import dropbox -import mysql.connector +import MySQLdb # first party import delphi.operations.secrets as secrets @@ -47,7 +47,7 @@ def trigger_further_processing(): # connect u, p = secrets.db.auto - cnx = mysql.connector.connect(user=u, password=p, database="automation") + cnx = MySQLdb.connect(user=u, password=p, database="automation") cur = cnx.cursor() # add step "Process CDCP Data" to queue diff --git a/src/acquisition/cdcp/cdc_extract.py b/src/acquisition/cdcp/cdc_extract.py index 0d38e0bcc..13237c2da 100644 --- a/src/acquisition/cdcp/cdc_extract.py +++ b/src/acquisition/cdcp/cdc_extract.py @@ -66,7 +66,7 @@ import sys # third party -import mysql.connector +import MySQLdb # first party import delphi.operations.secrets as secrets @@ -154,7 +154,7 @@ def extract(first_week=None, last_week=None, test_mode=False): # connect u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") cur = cnx.cursor() # weeks to update diff --git a/src/acquisition/cdcp/cdc_upload.py b/src/acquisition/cdcp/cdc_upload.py index 0e191267b..e154f2e62 100644 --- a/src/acquisition/cdcp/cdc_upload.py +++ b/src/acquisition/cdcp/cdc_upload.py @@ -80,7 +80,7 @@ from zipfile import ZipFile # third party -import mysql.connector +import MySQLdb # first party import delphi.operations.secrets as secrets @@ -165,7 +165,7 @@ def upload(test_mode): # connect u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") cur = cnx.cursor() # insert (or update) table `cdc` diff --git a/src/acquisition/covid_hosp/common/database.py b/src/acquisition/covid_hosp/common/database.py index efbdb6c45..1c79c37c5 100644 --- a/src/acquisition/covid_hosp/common/database.py +++ b/src/acquisition/covid_hosp/common/database.py @@ -6,7 +6,7 @@ import math # third party -import mysql.connector +import MySQLdb import pandas as pd # first party @@ -60,7 +60,7 @@ def logger(database_class): @classmethod @contextmanager - def connect(database_class, mysql_connector_impl=mysql.connector): + def connect(database_class, mysql_connector_impl=MySQLdb): """Connect to a database and provide the connection as a context manager. As long as the context manager exits normally, the connection's transaction diff --git a/src/acquisition/covidcast/database.py b/src/acquisition/covidcast/database.py index 871061b81..860718448 100644 --- a/src/acquisition/covidcast/database.py +++ b/src/acquisition/covidcast/database.py @@ -10,7 +10,7 @@ # third party import json -import mysql.connector +import MySQLdb # first party import delphi.operations.secrets as secrets @@ -38,7 +38,7 @@ class Database: # TODO: also consider that for composite key tuples, like short_comp_key and long_comp_key as used in delete_batch() - def connect(self, connector_impl=mysql.connector): + def connect(self, connector_impl=MySQLdb): """Establish a connection to the database.""" u, p = secrets.db.epi @@ -71,8 +71,7 @@ def disconnect(self, commit): def count_all_load_rows(self): self._cursor.execute(f'SELECT count(1) FROM `{self.load_table}`') - for (num,) in self._cursor: - return num + return self._cursor.fetchone()[0] def _reset_load_table_ai_counter(self): """Corrects the AUTO_INCREMENT counter in the load table. @@ -101,7 +100,8 @@ def do_analyze(self): f'''ANALYZE TABLE signal_dim, geo_dim, {self.load_table}, {self.history_table}, {self.latest_table}''') - output = [self._cursor.column_names] + self._cursor.fetchall() + # Append lists of column names (from cursor.description) & values + output = [desc[0] for desc in self._cursor.description] + list(self._cursor.fetchall()) get_structured_logger('do_analyze').info("ANALYZE results", results=str(output)) def insert_or_update_bulk(self, cc_rows): @@ -456,8 +456,8 @@ def compute_covidcast_meta(self, table_name=None, n_threads=None): srcsigs = Queue() # multi-consumer threadsafe! sql = f'SELECT `source`, `signal` FROM `{table_name}` GROUP BY `source`, `signal` ORDER BY `source` ASC, `signal` ASC;' self._cursor.execute(sql) - for source, signal in self._cursor: - srcsigs.put((source, signal)) + for res in self._cursor.fetchall(): + srcsigs.put((res[0], res[1])) # source, signal inner_sql = f''' SELECT @@ -505,8 +505,9 @@ def worker(): logger.info("starting pair", thread=name, pair=f"({source}, {signal})") w_cursor.execute(inner_sql, (source, signal)) with meta_lock: + # Create a dictionary of column names (from cursor.description) & values meta.extend(list( - dict(zip(w_cursor.column_names, x)) for x in w_cursor + dict(zip([desc[0] for desc in w_cursor.description], x)) for x in w_cursor )) srcsigs.task_done() except Empty: diff --git a/src/acquisition/ecdc/ecdc_db_update.py b/src/acquisition/ecdc/ecdc_db_update.py index 84423c376..70f4c3cee 100644 --- a/src/acquisition/ecdc/ecdc_db_update.py +++ b/src/acquisition/ecdc/ecdc_db_update.py @@ -37,7 +37,7 @@ import tempfile # third party -import mysql.connector +import MySQLdb # first party import delphi.operations.secrets as secrets @@ -48,7 +48,7 @@ def ensure_tables_exist(): (u, p) = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") try: cursor = cnx.cursor() cursor.execute( @@ -98,7 +98,7 @@ def update_from_file(issue, date, dir, test_mode=False): # Read ECDC data from CSVs and insert into (or update) the database. # database connection u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") rows1 = get_rows(cnx, "ecdc_ili") print(f"rows before: {int(rows1)}") insert = cnx.cursor() diff --git a/src/acquisition/flusurv/flusurv_update.py b/src/acquisition/flusurv/flusurv_update.py index 1aa8e9885..17490fcb1 100644 --- a/src/acquisition/flusurv/flusurv_update.py +++ b/src/acquisition/flusurv/flusurv_update.py @@ -72,7 +72,7 @@ import argparse # third party -import mysql.connector +import MySQLdb # first party from delphi.epidata.acquisition.flusurv import flusurv @@ -105,7 +105,7 @@ def update(issue, location_name, test_mode=False): # connect to the database u, p = secrets.db.epi - cnx = mysql.connector.connect(host=secrets.db.host, user=u, password=p, database="epidata") + cnx = MySQLdb.connect(host=secrets.db.host, user=u, password=p, database="epidata") cur = cnx.cursor() rows1 = get_rows(cur) print(f"rows before: {int(rows1)}") diff --git a/src/acquisition/fluview/fluview_notify.py b/src/acquisition/fluview/fluview_notify.py index 3ed1a243f..e597d2098 100644 --- a/src/acquisition/fluview/fluview_notify.py +++ b/src/acquisition/fluview/fluview_notify.py @@ -25,7 +25,7 @@ import argparse # third party -import mysql.connector +import MySQLdb # first party import delphi.operations.secrets as secrets @@ -46,7 +46,7 @@ # connect u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata", host=secrets.db.host) + cnx = MySQLdb.connect(user=u, password=p, database="epidata", host=secrets.db.host) cur = cnx.cursor() # get the last known issue from the automation table `variables` diff --git a/src/acquisition/fluview/fluview_update.py b/src/acquisition/fluview/fluview_update.py index defd01dad..f292c281d 100644 --- a/src/acquisition/fluview/fluview_update.py +++ b/src/acquisition/fluview/fluview_update.py @@ -121,7 +121,7 @@ import zipfile # third party -import mysql.connector +import MySQLdb # first party import delphi.operations.secrets as secrets @@ -311,7 +311,7 @@ def update_from_file_clinical(issue, date, filename, test_mode=False): # database connection u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata", host=secrets.db.host) + cnx = MySQLdb.connect(user=u, password=p, database="epidata", host=secrets.db.host) rows1 = get_rows(cnx, CL_TABLE) print(f"rows before: {int(rows1)}") insert = cnx.cursor() @@ -376,7 +376,7 @@ def update_from_file_public(issue, date, filename, test_mode=False): # database connection u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata", host=secrets.db.host) + cnx = MySQLdb.connect(user=u, password=p, database="epidata", host=secrets.db.host) rows1 = get_rows(cnx, PHL_TABLE) print(f"rows before: {int(rows1)}") insert = cnx.cursor() @@ -445,7 +445,7 @@ def update_from_file(issue, date, filename, test_mode=False): # database connection u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata", host=secrets.db.host) + cnx = MySQLdb.connect(user=u, password=p, database="epidata", host=secrets.db.host) rows1 = get_rows(cnx) print(f"rows before: {int(rows1)}") insert = cnx.cursor() diff --git a/src/acquisition/fluview/impute_missing_values.py b/src/acquisition/fluview/impute_missing_values.py index c795d9cce..fc0d8d357 100644 --- a/src/acquisition/fluview/impute_missing_values.py +++ b/src/acquisition/fluview/impute_missing_values.py @@ -49,7 +49,7 @@ import argparse # third party -import mysql.connector +import MySQLdb import numpy as np # first party @@ -135,7 +135,7 @@ class Sql: def connect(self): """Connect to the database.""" u, p = secrets.db.epi - self.cnx = mysql.connector.connect(user=u, password=p, database="epidata", host=secrets.db.host) + self.cnx = MySQLdb.connect(user=u, password=p, database="epidata", host=secrets.db.host) self.cur = self.cnx.cursor() def close(self, commit): diff --git a/src/acquisition/ght/ght_update.py b/src/acquisition/ght/ght_update.py index 9e8d48d1d..a58283d76 100644 --- a/src/acquisition/ght/ght_update.py +++ b/src/acquisition/ght/ght_update.py @@ -70,7 +70,7 @@ import time # third party -import mysql.connector +import MySQLdb from apiclient.discovery import build # first party @@ -251,7 +251,7 @@ def update(locations, terms, first=None, last=None, countries=["US"]): # connect to the database u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") cur = cnx.cursor() def get_num_rows(): diff --git a/src/acquisition/kcdc/kcdc_update.py b/src/acquisition/kcdc/kcdc_update.py index 713b21f00..1fae58c95 100644 --- a/src/acquisition/kcdc/kcdc_update.py +++ b/src/acquisition/kcdc/kcdc_update.py @@ -35,7 +35,7 @@ import requests # third party -import mysql.connector +import MySQLdb # first party import delphi.operations.secrets as secrets @@ -45,7 +45,7 @@ def ensure_tables_exist(): (u, p) = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") try: cursor = cnx.cursor() cursor.execute( @@ -124,7 +124,7 @@ def get_kcdc_data(): def update_from_data(ews, ilis, date, issue, test_mode=False): u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") rows1 = get_rows(cnx) print(f"rows before: {int(rows1)}") insert = cnx.cursor() diff --git a/src/acquisition/nidss/taiwan_update.py b/src/acquisition/nidss/taiwan_update.py index 30d458481..2de4ab8b8 100644 --- a/src/acquisition/nidss/taiwan_update.py +++ b/src/acquisition/nidss/taiwan_update.py @@ -77,7 +77,7 @@ import argparse # third party -import mysql.connector +import MySQLdb # first party from .taiwan_nidss import NIDSS @@ -105,7 +105,7 @@ def update(test_mode=False): # Database connection u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") rows1 = get_rows(cnx) print(f"rows before (flu): {int(rows1[0])}") print(f"rows before (dengue): {int(rows1[1])}") diff --git a/src/acquisition/paho/paho_db_update.py b/src/acquisition/paho/paho_db_update.py index b351d3ff2..0dfd08e40 100644 --- a/src/acquisition/paho/paho_db_update.py +++ b/src/acquisition/paho/paho_db_update.py @@ -54,7 +54,7 @@ import tempfile # third party -import mysql.connector +import MySQLdb import pycountry # first party @@ -66,7 +66,7 @@ def ensure_tables_exist(): (u, p) = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") try: cursor = cnx.cursor() cursor.execute( @@ -169,7 +169,7 @@ def update_from_file(issue, date, filename, test_mode=False): # database connection u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") rows1 = get_rows(cnx, "paho_dengue") print(f"rows before: {int(rows1)}") insert = cnx.cursor() diff --git a/src/acquisition/quidel/quidel_update.py b/src/acquisition/quidel/quidel_update.py index 563cea898..a1ced5652 100644 --- a/src/acquisition/quidel/quidel_update.py +++ b/src/acquisition/quidel/quidel_update.py @@ -39,7 +39,7 @@ import argparse # third party -import mysql.connector +import MySQLdb # first party from delphi.epidata.acquisition.quidel import quidel @@ -64,7 +64,7 @@ def update(locations, first=None, last=None, force_update=False, load_email=True qd_ts = quidel.measurement_to_ts(qd_measurements, 7, startweek=first, endweek=last) # connect to the database u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") cur = cnx.cursor() def get_num_rows(): diff --git a/src/acquisition/twtr/twitter_update.py b/src/acquisition/twtr/twitter_update.py index 80a023f19..c89681af2 100644 --- a/src/acquisition/twtr/twitter_update.py +++ b/src/acquisition/twtr/twitter_update.py @@ -52,7 +52,7 @@ """ # third party -import mysql.connector +import MySQLdb # first party from .healthtweets import HealthTweets @@ -62,7 +62,7 @@ def run(): # connect to the database u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") cur = cnx.cursor() def get_num_rows(): diff --git a/src/acquisition/wiki/wiki_extract.py b/src/acquisition/wiki/wiki_extract.py index 718a64c20..5f886f2e5 100644 --- a/src/acquisition/wiki/wiki_extract.py +++ b/src/acquisition/wiki/wiki_extract.py @@ -28,7 +28,7 @@ import json # third party -import mysql.connector +import MySQLdb # first party import delphi.operations.secrets as secrets @@ -67,7 +67,7 @@ def get_timestamp(name): def run(job_limit=100): # connect to the database u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") cur = cnx.cursor() # # Some preparation for utf-8, and it is a temporary trick solution. The real solution should change those char set and collation encoding to utf8 permanently diff --git a/src/acquisition/wiki/wiki_update.py b/src/acquisition/wiki/wiki_update.py index a9f240629..667ac9b46 100644 --- a/src/acquisition/wiki/wiki_update.py +++ b/src/acquisition/wiki/wiki_update.py @@ -24,7 +24,7 @@ from datetime import datetime, timedelta # third party -import mysql.connector +import MySQLdb import requests # first party @@ -90,7 +90,7 @@ def get_manifest(year, month, optional=False): def run(): # connect to the database u, p = secrets.db.epi - cnx = mysql.connector.connect(user=u, password=p, database="epidata") + cnx = MySQLdb.connect(user=u, password=p, database="epidata") cur = cnx.cursor() # get the most recent job in wiki_raw diff --git a/src/common/integration_test_base_class.py b/src/common/integration_test_base_class.py index 47c9f68e4..67fda472d 100644 --- a/src/common/integration_test_base_class.py +++ b/src/common/integration_test_base_class.py @@ -2,7 +2,7 @@ import unittest # third party -import mysql.connector +import MySQLdb # first party from delphi.epidata.client.delphi_epidata import Epidata @@ -33,7 +33,7 @@ def setUp(self) -> None: """Perform per-test setup.""" # connect to the `epidata` database - cnx = mysql.connector.connect(user="user", password="pass", host="delphi_database_epidata", database="epidata") + cnx = MySQLdb.connect(user="user", password="pass", host="delphi_database_epidata", database="epidata") cur = cnx.cursor() cur.execute("DELETE FROM `api_user`") diff --git a/src/maintenance/remove_outdated_keys.py b/src/maintenance/remove_outdated_keys.py index 56fea0cf9..263565cae 100644 --- a/src/maintenance/remove_outdated_keys.py +++ b/src/maintenance/remove_outdated_keys.py @@ -2,7 +2,7 @@ from smtplib import SMTP import delphi.operations.secrets as secrets -import mysql.connector +import MySQLdb from delphi.epidata.server._config import API_KEY_REGISTRATION_FORM_LINK_LOCAL ApiUserRecord = namedtuple("APIUserRecord", ("api_key", "email", "date_diff")) @@ -51,7 +51,7 @@ def send_notification(to_addr, alert=True): def main(): u, p = secrets.db.epi - cnx = mysql.connector.connect(database="epidata", user=u, password=p, host=secrets.db.host) + cnx = MySQLdb.connect(database="epidata", user=u, password=p, host=secrets.db.host) cur = cnx.cursor() outdated_keys_list = get_old_keys(cur) for item in outdated_keys_list: diff --git a/src/maintenance/signal_dash_data_generator.py b/src/maintenance/signal_dash_data_generator.py index b7f1048f5..75ec2fe9b 100644 --- a/src/maintenance/signal_dash_data_generator.py +++ b/src/maintenance/signal_dash_data_generator.py @@ -5,7 +5,7 @@ import sys import time import datetime -import mysql.connector +import MySQLdb import pandas as pd from dataclasses import dataclass @@ -62,7 +62,7 @@ class Database: STATUS_TABLE_NAME = 'dashboard_signal_status' COVERAGE_TABLE_NAME = 'dashboard_signal_coverage' - def __init__(self, connector_impl=mysql.connector): + def __init__(self, connector_impl=MySQLdb): """Establish a connection to the database.""" u, p = secrets.db.epi @@ -264,13 +264,13 @@ def main(args): try: database.write_status(signal_status_list) logger.info("Wrote status.", rowcount=database.rowcount()) - except mysql.connector.Error as exception: + except MySQLdb.MySQLError as exception: logger.exception(exception) try: database.write_coverage(coverage_list) logger.info("Wrote coverage.", rowcount=database.rowcount()) - except mysql.connector.Error as exception: + except MySQLdb.MySQLError as exception: logger.exception(exception) logger.info( diff --git a/src/maintenance/update_last_usage.py b/src/maintenance/update_last_usage.py index 85596778a..dd9a52a58 100644 --- a/src/maintenance/update_last_usage.py +++ b/src/maintenance/update_last_usage.py @@ -2,7 +2,7 @@ from datetime import datetime as dtime import delphi.operations.secrets as secrets -import mysql.connector +import MySQLdb import redis REDIS_HOST = os.environ.get("REDIS_HOST", "delphi_redis") @@ -13,7 +13,7 @@ def main(): redis_cli = redis.Redis(host=REDIS_HOST, password=REDIS_PASSWORD, decode_responses=True) u, p = secrets.db.epi - cnx = mysql.connector.connect(database="epidata", user=u, password=p, host=secrets.db.host) + cnx = MySQLdb.connect(database="epidata", user=u, password=p, host=secrets.db.host) cur = cnx.cursor() redis_keys = redis_cli.keys(pattern=LAST_USED_KEY_PATTERN)