35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
import sys
|
|
|
|
try:
|
|
# Python 3
|
|
from urllib.request import HTTPHandler
|
|
except (ImportError):
|
|
# Python 2
|
|
from urllib2 import HTTPHandler
|
|
|
|
from .debuggable_http_connection import DebuggableHTTPConnection
|
|
from .persistent_handler import PersistentHandler
|
|
|
|
|
|
class DebuggableHTTPHandler(PersistentHandler, HTTPHandler):
|
|
"""
|
|
A custom HTTPHandler that formats debugging info for Sublime Text
|
|
"""
|
|
|
|
def __init__(self, debuglevel=0, debug=False, **kwargs):
|
|
# This is a special value that will not trigger the standard debug
|
|
# functionality, but custom code where we can format the output
|
|
if debug:
|
|
self._debuglevel = 5
|
|
else:
|
|
self._debuglevel = debuglevel
|
|
self.passwd = kwargs.get('passwd')
|
|
|
|
def http_open(self, req):
|
|
def http_class_wrapper(host, **kwargs):
|
|
kwargs['passwd'] = self.passwd
|
|
if 'debuglevel' not in kwargs:
|
|
kwargs['debuglevel'] = self._debuglevel
|
|
return DebuggableHTTPConnection(host, **kwargs)
|
|
|
|
return self.do_open(http_class_wrapper, req)
|