Add some docstrings and comments
This commit is contained in:
parent
93682d73ca
commit
a4b8a74641
|
@ -21,11 +21,6 @@ __version__ = '0.2.2'
|
||||||
source = None
|
source = None
|
||||||
shutdown_event = None
|
shutdown_event = None
|
||||||
|
|
||||||
try:
|
|
||||||
from urllib2 import urlopen, Request, HTTPError, URLError
|
|
||||||
except ImportError:
|
|
||||||
from urllib.request import urlopen, Request, HTTPError, URLError
|
|
||||||
|
|
||||||
import math
|
import math
|
||||||
import time
|
import time
|
||||||
import os
|
import os
|
||||||
|
@ -40,6 +35,12 @@ socket_socket = socket.socket
|
||||||
|
|
||||||
from xml.dom import minidom as DOM
|
from xml.dom import minidom as DOM
|
||||||
|
|
||||||
|
# Begin import game to handle Python 2 and Python 3
|
||||||
|
try:
|
||||||
|
from urllib2 import urlopen, Request, HTTPError, URLError
|
||||||
|
except ImportError:
|
||||||
|
from urllib.request import urlopen, Request, HTTPError, URLError
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from Queue import Queue
|
from Queue import Queue
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
@ -153,6 +154,8 @@ def distance(origin, destination):
|
||||||
|
|
||||||
|
|
||||||
class FileGetter(threading.Thread):
|
class FileGetter(threading.Thread):
|
||||||
|
"""Thread class for retrieving a URL"""
|
||||||
|
|
||||||
def __init__(self, url, start):
|
def __init__(self, url, start):
|
||||||
self.url = url
|
self.url = url
|
||||||
self.result = None
|
self.result = None
|
||||||
|
@ -174,6 +177,8 @@ class FileGetter(threading.Thread):
|
||||||
|
|
||||||
|
|
||||||
def downloadSpeed(files, quiet=False):
|
def downloadSpeed(files, quiet=False):
|
||||||
|
"""Function to launch FileGetter threads and calculate download speeds"""
|
||||||
|
|
||||||
start = time.time()
|
start = time.time()
|
||||||
|
|
||||||
def producer(q, files):
|
def producer(q, files):
|
||||||
|
@ -209,6 +214,8 @@ def downloadSpeed(files, quiet=False):
|
||||||
|
|
||||||
|
|
||||||
class FilePutter(threading.Thread):
|
class FilePutter(threading.Thread):
|
||||||
|
"""Thread class for putting a URL"""
|
||||||
|
|
||||||
def __init__(self, url, start, size):
|
def __init__(self, url, start, size):
|
||||||
self.url = url
|
self.url = url
|
||||||
chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||||
|
@ -234,6 +241,8 @@ class FilePutter(threading.Thread):
|
||||||
|
|
||||||
|
|
||||||
def uploadSpeed(url, sizes, quiet=False):
|
def uploadSpeed(url, sizes, quiet=False):
|
||||||
|
"""Function to launch FilePutter threads and calculate upload speeds"""
|
||||||
|
|
||||||
start = time.time()
|
start = time.time()
|
||||||
|
|
||||||
def producer(q, sizes):
|
def producer(q, sizes):
|
||||||
|
@ -269,6 +278,9 @@ def uploadSpeed(url, sizes, quiet=False):
|
||||||
|
|
||||||
|
|
||||||
def getAttributesByTagName(dom, tagName):
|
def getAttributesByTagName(dom, tagName):
|
||||||
|
"""Retrieve an attribute from an XML document and return it in a
|
||||||
|
consistent format
|
||||||
|
"""
|
||||||
elem = dom.getElementsByTagName(tagName)[0]
|
elem = dom.getElementsByTagName(tagName)[0]
|
||||||
return dict(list(elem.attributes.items()))
|
return dict(list(elem.attributes.items()))
|
||||||
|
|
||||||
|
@ -365,12 +377,18 @@ def getBestServer(servers):
|
||||||
|
|
||||||
|
|
||||||
def ctrl_c(signum, frame):
|
def ctrl_c(signum, frame):
|
||||||
|
"""Catch Ctrl-C key sequence and set a shutdown_event for our threaded
|
||||||
|
operations
|
||||||
|
"""
|
||||||
|
|
||||||
global shutdown_event
|
global shutdown_event
|
||||||
shutdown_event.set()
|
shutdown_event.set()
|
||||||
raise SystemExit('\nCancelling...')
|
raise SystemExit('\nCancelling...')
|
||||||
|
|
||||||
|
|
||||||
def version():
|
def version():
|
||||||
|
"""Print the version"""
|
||||||
|
|
||||||
raise SystemExit(__version__)
|
raise SystemExit(__version__)
|
||||||
|
|
||||||
|
|
||||||
|
@ -390,6 +408,8 @@ def speedtest():
|
||||||
'https://github.com/sivel/speedtest-cli')
|
'https://github.com/sivel/speedtest-cli')
|
||||||
|
|
||||||
parser = ArgParser(description=description)
|
parser = ArgParser(description=description)
|
||||||
|
# Give optparse.OptionParser an `add_argument` method for
|
||||||
|
# compatibility with argparse.ArgumentParser
|
||||||
try:
|
try:
|
||||||
parser.add_argument = parser.add_option
|
parser.add_argument = parser.add_option
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
|
@ -416,9 +436,11 @@ def speedtest():
|
||||||
args = options
|
args = options
|
||||||
del options
|
del options
|
||||||
|
|
||||||
|
# Print the version and exit
|
||||||
if args.version:
|
if args.version:
|
||||||
version()
|
version()
|
||||||
|
|
||||||
|
# If specified bind to a specific IP address
|
||||||
if args.source:
|
if args.source:
|
||||||
source = args.source
|
source = args.source
|
||||||
socket.socket = bound_socket
|
socket.socket = bound_socket
|
||||||
|
@ -534,6 +556,9 @@ def speedtest():
|
||||||
ping = int(round(best['latency'], 0))
|
ping = int(round(best['latency'], 0))
|
||||||
ulspeedk = int(round((ulspeed / 1000) * 8, 0))
|
ulspeedk = int(round((ulspeed / 1000) * 8, 0))
|
||||||
|
|
||||||
|
# Build the request to send results back to speedtest.net
|
||||||
|
# We use a list instead of a dict because the API expects parameters
|
||||||
|
# in a certain order
|
||||||
apiData = [
|
apiData = [
|
||||||
'download=%s' % dlspeedk,
|
'download=%s' % dlspeedk,
|
||||||
'ping=%s' % ping,
|
'ping=%s' % ping,
|
||||||
|
|
Loading…
Reference in New Issue