diff options
Diffstat (limited to 'module/plugins/internal/utils.py')
-rw-r--r-- | module/plugins/internal/utils.py | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/module/plugins/internal/utils.py b/module/plugins/internal/utils.py index 58f0ca70c..f7d0c2d98 100644 --- a/module/plugins/internal/utils.py +++ b/module/plugins/internal/utils.py @@ -24,7 +24,7 @@ except ImportError: class utils(object): __name__ = "utils" __type__ = "plugin" - __version__ = "0.04" + __version__ = "0.05" __status__ = "testing" __pattern__ = r'^unmatchable$' @@ -48,6 +48,13 @@ def lock(fn): return new +def format_time(value): + dt = datetime.datetime(1, 1, 1) + datetime.timedelta(seconds=int(value)) + days = ("%d days and " % (dt.day - 1)) if dt.day > 1 else "" + return days + ", ".join("%d %ss" % (getattr(dt, attr), attr) for attr in ("hour", "minute", "second") + if getattr(dt, attr)) + + def compare_time(start, end): start = map(int, start) end = map(int, end) @@ -238,7 +245,7 @@ def parse_name(value, safechar=True): def parse_size(value, unit=""): #: returns bytes - m = re.match(r"([\d.,]+)\s*([\w^_]*)", value.lower()) + m = re.match(r"([\d.,]+)\s*([\w^_]*)", str(value).lower()) if m is None: return 0 @@ -431,3 +438,16 @@ def chunks(iterable, size): while item: yield item item = list(itertools.islice(it, size)) + + +def renice(pid, value): + if not value or os.name is "nt": + return + + try: + subprocess.Popen(["renice", str(value), str(pid)], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + bufsize=-1) + except Exception: + pass |