2 urllib3 - Thread-safe connection pooling and re-using.
5 from __future__ import absolute_import
8 from .connectionpool import (
14 from . import exceptions
15 from .filepost import encode_multipart_formdata
16 from .poolmanager import PoolManager, ProxyManager, proxy_from_url
17 from .response import HTTPResponse
18 from .util.request import make_headers
19 from .util.url import get_host
20 from .util.timeout import Timeout
21 from .util.retry import Retry
24 # Set default logging handler to avoid "No handler found" warnings.
27 from logging import NullHandler
29 class NullHandler(logging.Handler):
30 def emit(self, record):
33 __author__ = 'Andrey Petrov (andrey.petrov@shazow.net)'
39 'HTTPSConnectionPool',
46 'connection_from_url',
48 'encode_multipart_formdata',
54 logging.getLogger(__name__).addHandler(NullHandler())
57 def add_stderr_logger(level=logging.DEBUG):
59 Helper for quickly adding a StreamHandler to the logger. Useful for
62 Returns the handler after adding it.
64 # This method needs to be in this __init__.py to get the __name__ correct
65 # even if urllib3 is vendored within another package.
66 logger = logging.getLogger(__name__)
67 handler = logging.StreamHandler()
68 handler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s %(message)s'))
69 logger.addHandler(handler)
70 logger.setLevel(level)
71 logger.debug('Added a stderr logging handler to logger: %s', __name__)
78 # All warning filters *must* be appended unless you're really certain that they
79 # shouldn't be: otherwise, it's very hard for users to use most Python
80 # mechanisms to silence them.
81 # SecurityWarning's always go off by default.
82 warnings.simplefilter('always', exceptions.SecurityWarning, append=True)
83 # SubjectAltNameWarning's should go off once per host
84 warnings.simplefilter('default', exceptions.SubjectAltNameWarning, append=True)
85 # InsecurePlatformWarning's don't vary between requests, so we keep it default.
86 warnings.simplefilter('default', exceptions.InsecurePlatformWarning,
88 # SNIMissingWarnings should go off only once.
89 warnings.simplefilter('default', exceptions.SNIMissingWarning, append=True)
92 def disable_warnings(category=exceptions.HTTPWarning):
94 Helper for quickly disabling all urllib3 warnings.
96 warnings.simplefilter('ignore', category)