From 2aaa95ef623c44c04eb5de484c78fc586b43abc6 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 5 Oct 2022 17:29:10 -0400 Subject: [PATCH] Extract context manager for suppressing logs. Ref pypa/distutils#183. --- setuptools/wheel.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/setuptools/wheel.py b/setuptools/wheel.py index 0ced0ff2e2..527ed3b233 100644 --- a/setuptools/wheel.py +++ b/setuptools/wheel.py @@ -1,13 +1,14 @@ """Wheels support.""" -from distutils.util import get_platform -from distutils import log import email import itertools import os import posixpath import re import zipfile +import contextlib + +from distutils.util import get_platform import pkg_resources import setuptools @@ -50,6 +51,19 @@ def unpack(src_dir, dst_dir): os.rmdir(dirpath) +@contextlib.contextmanager +def disable_info_traces(): + """ + Temporarily disable info traces. + """ + from distutils import log + saved = log.set_threshold(log.WARN) + try: + yield + finally: + log.set_threshold(saved) + + class Wheel: def __init__(self, filename): @@ -156,17 +170,12 @@ def raw_req(req): extras_require=extras_require, ), ) - # Temporarily disable info traces. - log_threshold = log._global_log.threshold - log.set_threshold(log.WARN) - try: + with disable_info_traces(): write_requirements( setup_dist.get_command_obj('egg_info'), None, os.path.join(egg_info, 'requires.txt'), ) - finally: - log.set_threshold(log_threshold) @staticmethod def _move_data_entries(destination_eggdir, dist_data):