Docstrings and version bump
This commit is contained in:
parent
2fe369fdf8
commit
0e585cbf64
28
speedtest.py
28
speedtest.py
|
@ -36,7 +36,7 @@ except ImportError:
|
|||
gzip = None
|
||||
GZIP_BASE = object
|
||||
|
||||
__version__ = '1.0.7'
|
||||
__version__ = '2.0.0a'
|
||||
|
||||
|
||||
class FakeShutdownEvent(object):
|
||||
|
@ -333,6 +333,8 @@ def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT,
|
|||
is used. If *source_address* is set it must be a tuple of (host, port)
|
||||
for the socket to bind as a source address before making the connection.
|
||||
An host of '' or port 0 tells the OS to use the default.
|
||||
|
||||
Largely vendored from Python 2.7, modified to work with Python 2.4
|
||||
"""
|
||||
|
||||
host, port = address
|
||||
|
@ -361,6 +363,9 @@ def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT,
|
|||
|
||||
|
||||
class SpeedtestHTTPConnection(HTTPConnection):
|
||||
"""Custom HTTPConnection to support source_address across
|
||||
Python 2.4 - Python 3
|
||||
"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
source_address = kwargs.pop('source_address', None)
|
||||
context = kwargs.pop('context', None)
|
||||
|
@ -391,6 +396,9 @@ class SpeedtestHTTPConnection(HTTPConnection):
|
|||
if HTTPSConnection:
|
||||
class SpeedtestHTTPSConnection(HTTPSConnection,
|
||||
SpeedtestHTTPConnection):
|
||||
"""Custom HTTPSConnection to support source_address across
|
||||
Python 2.4 - Python 3
|
||||
"""
|
||||
def connect(self):
|
||||
"Connect to a host on a given (SSL) port."
|
||||
|
||||
|
@ -404,6 +412,12 @@ if HTTPSConnection:
|
|||
|
||||
|
||||
def _build_connection(connection, source_address, timeout, context=None):
|
||||
"""Cross Python 2.4 - Python 3 callable to build an ``HTTPConnection`` or
|
||||
``HTTPSConnection`` with the args we need
|
||||
|
||||
Called from ``http(s)_open`` methods of ``SpeedtestHTTPHandler`` or
|
||||
``SpeedtestHTTPSHandler``
|
||||
"""
|
||||
def inner(host, **kwargs):
|
||||
kwargs.update({
|
||||
'source_address': source_address,
|
||||
|
@ -416,6 +430,9 @@ def _build_connection(connection, source_address, timeout, context=None):
|
|||
|
||||
|
||||
class SpeedtestHTTPHandler(AbstractHTTPHandler):
|
||||
"""Custom ``HTTPHandler`` that can build a ``HTTPConnection`` with the
|
||||
args we need for ``source_address`` and ``timeout``
|
||||
"""
|
||||
def __init__(self, debuglevel=0, source_address=None, timeout=10):
|
||||
AbstractHTTPHandler.__init__(self, debuglevel)
|
||||
self.source_address = source_address
|
||||
|
@ -435,6 +452,9 @@ class SpeedtestHTTPHandler(AbstractHTTPHandler):
|
|||
|
||||
|
||||
class SpeedtestHTTPSHandler(AbstractHTTPHandler):
|
||||
"""Custom ``HTTPSHandler`` that can build a ``HTTPSConnection`` with the
|
||||
args we need for ``source_address`` and ``timeout``
|
||||
"""
|
||||
def __init__(self, debuglevel=0, context=None, source_address=None,
|
||||
timeout=10):
|
||||
AbstractHTTPHandler.__init__(self, debuglevel)
|
||||
|
@ -457,6 +477,12 @@ class SpeedtestHTTPSHandler(AbstractHTTPHandler):
|
|||
|
||||
|
||||
def build_opener(source_address=None, timeout=10):
|
||||
"""Function similar to ``urllib2.build_opener`` that will build
|
||||
an ``OpenerDirector`` with the explicit handlers we want,
|
||||
``source_address`` for binding, ``timeout`` and our custom
|
||||
`User-Agent`
|
||||
"""
|
||||
|
||||
if source_address:
|
||||
source_address_tuple = (source_address, 0)
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue