Mercurial > repos > bcclaywell > argo_navis
diff venv/lib/python2.7/site-packages/pip/utils/deprecation.py @ 0:d67268158946 draft
planemo upload commit a3f181f5f126803c654b3a66dd4e83a48f7e203b
author | bcclaywell |
---|---|
date | Mon, 12 Oct 2015 17:43:33 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/venv/lib/python2.7/site-packages/pip/utils/deprecation.py Mon Oct 12 17:43:33 2015 -0400 @@ -0,0 +1,68 @@ +""" +A module that implments tooling to enable easy warnings about deprecations. +""" +from __future__ import absolute_import + +import logging +import warnings + + +class PipDeprecationWarning(Warning): + pass + + +class RemovedInPip7Warning(PipDeprecationWarning, DeprecationWarning): + pass + + +class RemovedInPip8Warning(PipDeprecationWarning, PendingDeprecationWarning): + pass + + +DEPRECATIONS = [RemovedInPip7Warning, RemovedInPip8Warning] + + +# Warnings <-> Logging Integration + + +_warnings_showwarning = None + + +def _showwarning(message, category, filename, lineno, file=None, line=None): + if file is not None: + if _warnings_showwarning is not None: + _warnings_showwarning( + message, category, filename, lineno, file, line, + ) + else: + if issubclass(category, PipDeprecationWarning): + # We use a specially named logger which will handle all of the + # deprecation messages for pip. + logger = logging.getLogger("pip.deprecations") + + # This is purposely using the % formatter here instead of letting + # the logging module handle the interpolation. This is because we + # want it to appear as if someone typed this entire message out. + log_message = "DEPRECATION: %s" % message + + # Things that are DeprecationWarnings will be removed in the very + # next version of pip. We want these to be more obvious so we + # use the ERROR logging level while the PendingDeprecationWarnings + # are still have at least 2 versions to go until they are removed + # so they can just be warnings. + if issubclass(category, DeprecationWarning): + logger.error(log_message) + else: + logger.warning(log_message) + else: + _warnings_showwarning( + message, category, filename, lineno, file, line, + ) + + +def install_warning_logger(): + global _warnings_showwarning + + if _warnings_showwarning is None: + _warnings_showwarning = warnings.showwarning + warnings.showwarning = _showwarning