From 8726ddf50b8b20c1be4dac60420928538c1692b3 Mon Sep 17 00:00:00 2001 From: Roland Walker Date: Sat, 14 Mar 2026 08:31:02 -0400 Subject: [PATCH] suppress warnings when sqlglotrs is installed Pending a fix upstream, the issue is that when the user upgrades to a new version of sqlglot, the separate deprecated package sqlglotrs does not in many cases get removed. Upgrading via pip would be an example in which the separate package remains installed. --- changelog.md | 6 ++++++ mycli/main.py | 12 +++++++++++- mycli/packages/hybrid_redirection.py | 13 +++++++++++-- mycli/packages/parseutils.py | 12 +++++++++++- 4 files changed, 39 insertions(+), 4 deletions(-) diff --git a/changelog.md b/changelog.md index abad33bb..1b63d851 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,12 @@ Features * Add prompt format string for literal backslash. +Bug Fixes +--------- +* Suppress warnings when `sqlglotrs` is installed. + + + 1.64.0 (2026/03/13) ============== diff --git a/mycli/main.py b/mycli/main.py index b8a4330e..5c1a6f77 100755 --- a/mycli/main.py +++ b/mycli/main.py @@ -26,6 +26,7 @@ from textwrap import dedent from time import sleep, time from urllib.parse import parse_qs, unquote, urlparse +import warnings from cli_helpers.tabular_output import TabularOutputFormatter, preprocessors from cli_helpers.tabular_output.output_formatter import MISSING_VALUE as DEFAULT_MISSING_VALUE @@ -58,9 +59,18 @@ from pymysql.constants.CR import CR_SERVER_LOST from pymysql.constants.ER import ACCESS_DENIED_ERROR, HANDSHAKE_ERROR from pymysql.cursors import Cursor -import sqlglot import sqlparse +with warnings.catch_warnings(): + # for sqlglot v29.0.1 + warnings.filterwarnings( + 'ignore', + message=r'sqlglot\[rs\] is deprecated', + category=UserWarning, + module='sqlglot', + ) + import sqlglot + from mycli import __version__ from mycli.clibuffer import cli_is_multiline from mycli.clistyle import style_factory_helpers, style_factory_toolkit diff --git a/mycli/packages/hybrid_redirection.py b/mycli/packages/hybrid_redirection.py index 1937daf9..238d0918 100644 --- a/mycli/packages/hybrid_redirection.py +++ b/mycli/packages/hybrid_redirection.py @@ -1,7 +1,16 @@ import functools import logging - -import sqlglot +import warnings + +with warnings.catch_warnings(): + # for sqlglot v29.0.1 + warnings.filterwarnings( + 'ignore', + message=r'sqlglot\[rs\] is deprecated', + category=UserWarning, + module='sqlglot', + ) + import sqlglot from mycli.compat import WIN from mycli.packages.special.delimitercommand import DelimiterCommand diff --git a/mycli/packages/parseutils.py b/mycli/packages/parseutils.py index 7a2b341f..b1f9eb78 100644 --- a/mycli/packages/parseutils.py +++ b/mycli/packages/parseutils.py @@ -2,12 +2,22 @@ import re from typing import Any, Generator, Literal +import warnings -import sqlglot import sqlparse from sqlparse.sql import Function, Identifier, IdentifierList, Token, TokenList from sqlparse.tokens import DML, Keyword, Punctuation +with warnings.catch_warnings(): + # for sqlglot v29.0.1 + warnings.filterwarnings( + 'ignore', + message=r'sqlglot\[rs\] is deprecated', + category=UserWarning, + module='sqlglot', + ) + import sqlglot + sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None # type: ignore[assignment] sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None # type: ignore[assignment]