diff options
| author | Aldo Cortesi <aldo@nullcube.com> | 2016-10-20 09:45:18 +1300 |
|---|---|---|
| committer | Aldo Cortesi <aldo@nullcube.com> | 2016-10-20 09:45:18 +1300 |
| commit | 1407830280383e50a8af848a0c564c4912df5a52 (patch) | |
| tree | 99298b45cb4b34b36f3308e695944bc3a2e1df60 /mitmproxy | |
| parent | 069119364d6490e52ba26f2d8001c6b2bf50ab7b (diff) | |
| download | mitmproxy-1407830280383e50a8af848a0c564c4912df5a52.tar.gz mitmproxy-1407830280383e50a8af848a0c564c4912df5a52.tar.bz2 mitmproxy-1407830280383e50a8af848a0c564c4912df5a52.zip | |
netlib.human -> mitmproxy.utils.human
Diffstat (limited to 'mitmproxy')
| -rw-r--r-- | mitmproxy/addons/dumper.py | 2 | ||||
| -rw-r--r-- | mitmproxy/tools/cmdline.py | 2 | ||||
| -rw-r--r-- | mitmproxy/tools/console/common.py | 2 | ||||
| -rw-r--r-- | mitmproxy/tools/console/flowdetailview.py | 2 | ||||
| -rw-r--r-- | mitmproxy/tools/console/statusbar.py | 2 | ||||
| -rw-r--r-- | mitmproxy/utils/human.py | 64 |
6 files changed, 69 insertions, 5 deletions
diff --git a/mitmproxy/addons/dumper.py b/mitmproxy/addons/dumper.py index 04dfb42c..013fa337 100644 --- a/mitmproxy/addons/dumper.py +++ b/mitmproxy/addons/dumper.py @@ -8,7 +8,7 @@ from mitmproxy import contentviews from mitmproxy import ctx from mitmproxy import exceptions from mitmproxy import flowfilter -from netlib import human +from mitmproxy.utils import human from netlib import strutils diff --git a/mitmproxy/tools/cmdline.py b/mitmproxy/tools/cmdline.py index 41770631..b83694ef 100644 --- a/mitmproxy/tools/cmdline.py +++ b/mitmproxy/tools/cmdline.py @@ -5,7 +5,7 @@ from mitmproxy import exceptions from mitmproxy import flowfilter from mitmproxy import options from mitmproxy import platform -from netlib import human +from mitmproxy.utils import human from netlib import tcp from mitmproxy import version diff --git a/mitmproxy/tools/console/common.py b/mitmproxy/tools/console/common.py index dc4cfe18..53411d17 100644 --- a/mitmproxy/tools/console/common.py +++ b/mitmproxy/tools/console/common.py @@ -10,7 +10,7 @@ import netlib from mitmproxy.utils import lrucache from mitmproxy.tools.console import signals from mitmproxy import export -from netlib import human +from mitmproxy.utils import human try: import pyperclip diff --git a/mitmproxy/tools/console/flowdetailview.py b/mitmproxy/tools/console/flowdetailview.py index f13f9a1d..7591c3d1 100644 --- a/mitmproxy/tools/console/flowdetailview.py +++ b/mitmproxy/tools/console/flowdetailview.py @@ -1,7 +1,7 @@ import urwid from mitmproxy.tools.console import common, searchable -from netlib import human +from mitmproxy.utils import human def maybe_timestamp(base, attr): diff --git a/mitmproxy/tools/console/statusbar.py b/mitmproxy/tools/console/statusbar.py index 99f73727..ac41b213 100644 --- a/mitmproxy/tools/console/statusbar.py +++ b/mitmproxy/tools/console/statusbar.py @@ -6,7 +6,7 @@ import netlib.http.url from mitmproxy.tools.console import common from mitmproxy.tools.console import pathedit from mitmproxy.tools.console import signals -from netlib import human +from mitmproxy.utils import human class ActionBar(urwid.WidgetWrap): diff --git a/mitmproxy/utils/human.py b/mitmproxy/utils/human.py new file mode 100644 index 00000000..72e96d30 --- /dev/null +++ b/mitmproxy/utils/human.py @@ -0,0 +1,64 @@ +import datetime +import time + + +SIZE_TABLE = [ + ("b", 1024 ** 0), + ("k", 1024 ** 1), + ("m", 1024 ** 2), + ("g", 1024 ** 3), + ("t", 1024 ** 4), +] + +SIZE_UNITS = dict(SIZE_TABLE) + + +def pretty_size(size): + for bottom, top in zip(SIZE_TABLE, SIZE_TABLE[1:]): + if bottom[1] <= size < top[1]: + suf = bottom[0] + lim = bottom[1] + x = round(size / lim, 2) + if x == int(x): + x = int(x) + return str(x) + suf + return "%s%s" % (size, SIZE_TABLE[0][0]) + + +def parse_size(s): + try: + return int(s) + except ValueError: + pass + for i in SIZE_UNITS.keys(): + if s.endswith(i): + try: + return int(s[:-1]) * SIZE_UNITS[i] + except ValueError: + break + raise ValueError("Invalid size specification.") + + +def pretty_duration(secs): + formatters = [ + (100, "{:.0f}s"), + (10, "{:2.1f}s"), + (1, "{:1.2f}s"), + ] + + for limit, formatter in formatters: + if secs >= limit: + return formatter.format(secs) + # less than 1 sec + return "{:.0f}ms".format(secs * 1000) + + +def format_timestamp(s): + s = time.localtime(s) + d = datetime.datetime.fromtimestamp(time.mktime(s)) + return d.strftime("%Y-%m-%d %H:%M:%S") + + +def format_timestamp_with_milli(s): + d = datetime.datetime.fromtimestamp(s) + return d.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3] |
