From e7aafccdd3f310dcfba4df2cc73e473baac977a0 Mon Sep 17 00:00:00 2001 From: hauntsaninja Date: Sun, 28 Jan 2024 02:56:59 -0800 Subject: [PATCH] Swallow warnings when performing AST checks Fixes #4188 --- src/black/parsing.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/black/parsing.py b/src/black/parsing.py index 178a7ef10e2..63c5e71a0fe 100644 --- a/src/black/parsing.py +++ b/src/black/parsing.py @@ -4,6 +4,7 @@ import ast import sys +import warnings from typing import Iterable, Iterator, List, Set, Tuple from black.mode import VERSION_TO_FEATURES, Feature, TargetVersion, supports_feature @@ -109,13 +110,16 @@ def lib2to3_unparse(node: Node) -> str: return code -def parse_single_version( +def _parse_single_version( src: str, version: Tuple[int, int], *, type_comments: bool ) -> ast.AST: filename = "" - return ast.parse( - src, filename, feature_version=version, type_comments=type_comments - ) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", SyntaxWarning) + warnings.simplefilter("ignore", DeprecationWarning) + return ast.parse( + src, filename, feature_version=version, type_comments=type_comments + ) def parse_ast(src: str) -> ast.AST: @@ -125,7 +129,7 @@ def parse_ast(src: str) -> ast.AST: first_error = "" for version in sorted(versions, reverse=True): try: - return parse_single_version(src, version, type_comments=True) + return _parse_single_version(src, version, type_comments=True) except SyntaxError as e: if not first_error: first_error = str(e) @@ -133,7 +137,7 @@ def parse_ast(src: str) -> ast.AST: # Try to parse without type comments for version in sorted(versions, reverse=True): try: - return parse_single_version(src, version, type_comments=False) + return _parse_single_version(src, version, type_comments=False) except SyntaxError: pass