diff options
Diffstat (limited to 'libmproxy/utils.py')
-rw-r--r-- | libmproxy/utils.py | 30 |
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) + + + |