Rename deprecation warnings to not be versioned

This commit is contained in:
Pradyun Gedam 2018-06-22 08:16:41 +05:30
parent e6e0a14b68
commit 7769ddd52c
No known key found for this signature in database
GPG Key ID: DA17C4B29CB32E4B
1 changed files with 22 additions and 29 deletions

View File

@ -16,50 +16,43 @@ class PipDeprecationWarning(Warning):
pass pass
class Pending(object): class PipPendingDeprecationWarning(PipDeprecationWarning):
pass pass
class RemovedInPip12Warning(PipDeprecationWarning, Pending):
pass
# Warnings <-> Logging Integration
_warnings_showwarning = None # type: Any _warnings_showwarning = None # type: Any
# Warnings <-> Logging Integration
def _showwarning(message, category, filename, lineno, file=None, line=None): def _showwarning(message, category, filename, lineno, file=None, line=None):
if file is not None: if file is not None:
if _warnings_showwarning is not None: if _warnings_showwarning is not None:
_warnings_showwarning( _warnings_showwarning(
message, category, filename, lineno, file, line, message, category, filename, lineno, file, line,
) )
else: elif issubclass(category, PipDeprecationWarning):
if issubclass(category, PipDeprecationWarning): # We use a specially named logger which will handle all of the
# We use a specially named logger which will handle all of the # deprecation messages for pip.
# deprecation messages for pip. logger = logging.getLogger("pip._internal.deprecations")
logger = logging.getLogger("pip._internal.deprecations")
# This is purposely using the % formatter here instead of letting # This is purposely using the % formatter here instead of letting
# the logging module handle the interpolation. This is because we # the logging module handle the interpolation. This is because we
# want it to appear as if someone typed this entire message out. # want it to appear as if someone typed this entire message out.
log_message = "DEPRECATION: %s" % message log_message = "DEPRECATION: %s" % message
# PipDeprecationWarnings that are Pending still have at least 2 # PipPendingDeprecationWarnings still have at least 2
# versions to go until they are removed so they can just be # versions to go until they are removed so they can just be
# warnings. Otherwise, they will be removed in the very next # warnings. Otherwise, they will be removed in the very next
# version of pip. We want these to be more obvious so we use the # version of pip. We want these to be more obvious so we use the
# ERROR logging level. # ERROR logging level.
if issubclass(category, Pending): if issubclass(category, PipPendingDeprecationWarning):
logger.warning(log_message) logger.warning(log_message)
else:
logger.error(log_message)
else: else:
_warnings_showwarning( logger.error(log_message)
message, category, filename, lineno, file, line, else:
) _warnings_showwarning(
message, category, filename, lineno, file, line,
)
def install_warning_logger(): def install_warning_logger():