From 1a94f498478d4a06b5f492b4ded386bb3a2a760f Mon Sep 17 00:00:00 2001 From: Yi Hu Date: Thu, 21 Aug 2025 11:13:00 -0400 Subject: [PATCH] Remove mysql-connector-python dependency --- .../apache_beam/yaml/integration_tests.py | 33 ++++++++----------- .../ml/py310/base_image_requirements.txt | 1 - .../ml/py311/base_image_requirements.txt | 1 - .../ml/py312/base_image_requirements.txt | 1 - .../ml/py39/base_image_requirements.txt | 1 - .../py310/base_image_requirements.txt | 1 - .../py311/base_image_requirements.txt | 1 - .../py312/base_image_requirements.txt | 1 - .../py313/base_image_requirements.txt | 1 - .../py39/base_image_requirements.txt | 1 - sdks/python/setup.py | 1 - 11 files changed, 14 insertions(+), 29 deletions(-) diff --git a/sdks/python/apache_beam/yaml/integration_tests.py b/sdks/python/apache_beam/yaml/integration_tests.py index 38fa2689268e..733dd10d0286 100644 --- a/sdks/python/apache_beam/yaml/integration_tests.py +++ b/sdks/python/apache_beam/yaml/integration_tests.py @@ -33,7 +33,6 @@ from datetime import timezone import mock -import mysql.connector import psycopg2 import pytds import sqlalchemy @@ -286,26 +285,22 @@ def temp_mysql_database(): Exception: Any other exception encountered during the setup process. """ with MySqlContainer(init=True, dialect='pymysql') as mysql_container: - try: - # Make connection to temp database and create tmp table - engine = sqlalchemy.create_engine(mysql_container.get_connection_url()) - with engine.begin() as connection: - connection.execute( - sqlalchemy.text( - "CREATE TABLE tmp_table (value INTEGER, `rank` INTEGER);")) + # Make connection to temp database and create tmp table + engine = sqlalchemy.create_engine(mysql_container.get_connection_url()) + with engine.begin() as connection: + connection.execute( + sqlalchemy.text( + "CREATE TABLE tmp_table (value INTEGER, `rank` INTEGER);")) - # Construct the JDBC url for connections later on by tests - jdbc_url = ( - f"jdbc:mysql://{mysql_container.get_container_host_ip()}:" - f"{mysql_container.get_exposed_port(mysql_container.port)}/" - f"{mysql_container.dbname}?" - f"user={mysql_container.username}&" - f"password={mysql_container.password}") + # Construct the JDBC url for connections later on by tests + jdbc_url = ( + f"jdbc:mysql://{mysql_container.get_container_host_ip()}:" + f"{mysql_container.get_exposed_port(mysql_container.port)}/" + f"{mysql_container.dbname}?" + f"user={mysql_container.username}&" + f"password={mysql_container.password}") - yield jdbc_url - except mysql.connector.Error as err: - logging.error("Error interacting with temporary MySQL DB: %s", err) - raise err + yield jdbc_url @contextlib.contextmanager diff --git a/sdks/python/container/ml/py310/base_image_requirements.txt b/sdks/python/container/ml/py310/base_image_requirements.txt index d5849d98a9eb..3803dbaa252a 100644 --- a/sdks/python/container/ml/py310/base_image_requirements.txt +++ b/sdks/python/container/ml/py310/base_image_requirements.txt @@ -132,7 +132,6 @@ mock==5.2.0 more-itertools==10.7.0 mpmath==1.3.0 multidict==6.6.4 -mysql-connector-python==9.4.0 namex==0.1.0 networkx==3.4.2 nltk==3.9.1 diff --git a/sdks/python/container/ml/py311/base_image_requirements.txt b/sdks/python/container/ml/py311/base_image_requirements.txt index 88b9d111496a..62a52be1be88 100644 --- a/sdks/python/container/ml/py311/base_image_requirements.txt +++ b/sdks/python/container/ml/py311/base_image_requirements.txt @@ -130,7 +130,6 @@ mock==5.2.0 more-itertools==10.7.0 mpmath==1.3.0 multidict==6.6.4 -mysql-connector-python==9.4.0 namex==0.1.0 networkx==3.5 nltk==3.9.1 diff --git a/sdks/python/container/ml/py312/base_image_requirements.txt b/sdks/python/container/ml/py312/base_image_requirements.txt index e653b06f5ca1..ef34f7f76758 100644 --- a/sdks/python/container/ml/py312/base_image_requirements.txt +++ b/sdks/python/container/ml/py312/base_image_requirements.txt @@ -129,7 +129,6 @@ mock==5.2.0 more-itertools==10.7.0 mpmath==1.3.0 multidict==6.6.4 -mysql-connector-python==9.4.0 namex==0.1.0 networkx==3.5 nltk==3.9.1 diff --git a/sdks/python/container/ml/py39/base_image_requirements.txt b/sdks/python/container/ml/py39/base_image_requirements.txt index d1630d2463b0..1b57137b93f0 100644 --- a/sdks/python/container/ml/py39/base_image_requirements.txt +++ b/sdks/python/container/ml/py39/base_image_requirements.txt @@ -132,7 +132,6 @@ mock==5.2.0 more-itertools==10.7.0 mpmath==1.3.0 multidict==6.6.4 -mysql-connector-python==9.4.0 namex==0.1.0 networkx==3.2.1 nltk==3.9.1 diff --git a/sdks/python/container/py310/base_image_requirements.txt b/sdks/python/container/py310/base_image_requirements.txt index fd4e424c6f54..056c5755756c 100644 --- a/sdks/python/container/py310/base_image_requirements.txt +++ b/sdks/python/container/py310/base_image_requirements.txt @@ -115,7 +115,6 @@ mmh3==5.2.0 mock==5.2.0 more-itertools==10.7.0 multidict==6.6.4 -mysql-connector-python==9.4.0 nltk==3.9.1 numpy==2.2.6 oauth2client==4.1.3 diff --git a/sdks/python/container/py311/base_image_requirements.txt b/sdks/python/container/py311/base_image_requirements.txt index a558a975c8ab..2e832a3910a7 100644 --- a/sdks/python/container/py311/base_image_requirements.txt +++ b/sdks/python/container/py311/base_image_requirements.txt @@ -113,7 +113,6 @@ mmh3==5.2.0 mock==5.2.0 more-itertools==10.7.0 multidict==6.6.4 -mysql-connector-python==9.4.0 nltk==3.9.1 numpy==2.2.6 oauth2client==4.1.3 diff --git a/sdks/python/container/py312/base_image_requirements.txt b/sdks/python/container/py312/base_image_requirements.txt index f9b50f19aebf..d18dcf48e9ef 100644 --- a/sdks/python/container/py312/base_image_requirements.txt +++ b/sdks/python/container/py312/base_image_requirements.txt @@ -112,7 +112,6 @@ mmh3==5.2.0 mock==5.2.0 more-itertools==10.7.0 multidict==6.6.4 -mysql-connector-python==9.4.0 nltk==3.9.1 numpy==2.2.6 oauth2client==4.1.3 diff --git a/sdks/python/container/py313/base_image_requirements.txt b/sdks/python/container/py313/base_image_requirements.txt index f9cd657b9486..7bed2e8150d8 100644 --- a/sdks/python/container/py313/base_image_requirements.txt +++ b/sdks/python/container/py313/base_image_requirements.txt @@ -110,7 +110,6 @@ mmh3==5.2.0 mock==5.2.0 more-itertools==10.7.0 multidict==6.6.4 -mysql-connector-python==9.4.0 nltk==3.9.1 numpy==2.2.6 oauth2client==4.1.3 diff --git a/sdks/python/container/py39/base_image_requirements.txt b/sdks/python/container/py39/base_image_requirements.txt index 9956cc3028ca..fed634bd80a9 100644 --- a/sdks/python/container/py39/base_image_requirements.txt +++ b/sdks/python/container/py39/base_image_requirements.txt @@ -115,7 +115,6 @@ mmh3==5.2.0 mock==5.2.0 more-itertools==10.7.0 multidict==6.6.4 -mysql-connector-python==9.4.0 nltk==3.9.1 numpy==2.0.2 oauth2client==4.1.3 diff --git a/sdks/python/setup.py b/sdks/python/setup.py index 9702ba4746ea..9570393f6a06 100644 --- a/sdks/python/setup.py +++ b/sdks/python/setup.py @@ -441,7 +441,6 @@ def get_portability_package_data(): 'cryptography>=41.0.2', 'hypothesis>5.0.0,<7.0.0', 'virtualenv-clone>=0.5,<1.0', - 'mysql-connector-python>=9.3.0', 'python-tds>=1.16.1', 'sqlalchemy-pytds>=1.0.2', 'pg8000>=1.31.1',