aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/utils.py')
-rw-r--r--libmproxy/utils.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/libmproxy/utils.py b/libmproxy/utils.py
index 37b751dc..a7e41752 100644
--- a/libmproxy/utils.py
+++ b/libmproxy/utils.py
@@ -410,3 +410,33 @@ def parse_url(url):
return scheme, host, port, path
+def parse_size(s):
+ """
+ Parses a size specification. Valid specifications are:
+
+ 123: bytes
+ 123k: kilobytes
+ 123m: megabytes
+ 123g: gigabytes
+ """
+ if not s:
+ return None
+ mult = None
+ if s[-1].lower() == "k":
+ mult = 1024**1
+ elif s[-1].lower() == "m":
+ mult = 1024**2
+ elif s[-1].lower() == "g":
+ mult = 1024**3
+
+ if mult:
+ s = s[:-1]
+ else:
+ mult = 1
+ try:
+ return int(s) * mult
+ except ValueError:
+ raise ValueError("Invalid size specification: %s"%s)
+
+
+