summaryrefslogtreecommitdiffstats
path: root/module/utils/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/utils/__init__.py')
-rw-r--r--module/utils/__init__.py253
1 files changed, 0 insertions, 253 deletions
diff --git a/module/utils/__init__.py b/module/utils/__init__.py
deleted file mode 100644
index ca00f9abe..000000000
--- a/module/utils/__init__.py
+++ /dev/null
@@ -1,253 +0,0 @@
-# -*- coding: utf-8 -*-
-
-""" Store all usefull functions here """
-
-import os
-import time
-import re
-from string import maketrans
-from itertools import islice
-from htmlentitydefs import name2codepoint
-
-# abstraction layer for json operations
-try: # since python 2.6
- import json
-except ImportError: #use system simplejson if available
- import simplejson as json
-
-json_loads = json.loads
-json_dumps = json.dumps
-
-def decode(string):
- """ decode string with utf if possible """
- try:
- if type(string) == str:
- return string.decode("utf8", "replace")
- else:
- return string
- except:
- return string
-
-def encode(string):
- """ decode string to utf if possible """
- try:
- if type(string) == unicode:
- return string.encode("utf8", "replace")
- else:
- return string
- except:
- return string
-
-def remove_chars(string, repl):
- """ removes all chars in repl from string"""
- if type(string) == str:
- return string.translate(maketrans("", ""), repl)
- elif type(string) == unicode:
- return string.translate(dict([(ord(s), None) for s in repl]))
-
-
-def get_console_encoding(enc):
- if os.name == "nt":
- if enc == "cp65001": # aka UTF-8
- print "WARNING: Windows codepage 65001 is not supported."
- enc = "cp850"
- else:
- enc = "utf8"
-
- return enc
-
-def compare_time(start, end):
- start = map(int, start)
- end = map(int, end)
-
- if start == end: return True
-
- now = list(time.localtime()[3:5])
- if start < now < end: return True
- elif start > end and (now > start or now < end): return True
- elif start < now > end < start: return True
- else: return False
-
-def to_list(value):
- return value if type(value) == list else ([value] if value is not None else [])
-
-def formatSize(size):
- print "Deprecated formatSize, use format_size"
- return format_size(size)
-
-def format_size(bytes):
- bytes = int(bytes)
- steps = 0
- sizes = ("B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB")
- while bytes > 1000:
- bytes /= 1024.0
- steps += 1
- return "%.2f %s" % (bytes, sizes[steps])
-
-def formatSpeed(speed):
- print "Deprecated formatSpeed, use format_speed"
- return format_speed(speed)
-
-def format_speed(speed):
- return format_size(speed) + "/s"
-
-def format_time(seconds):
- if seconds < 0: return "00:00:00"
- hours, seconds = divmod(seconds, 3600)
- minutes, seconds = divmod(seconds, 60)
- return "%.2i:%.2i:%.2i" % (hours, minutes, seconds)
-
-def uniqify(seq): #by Dave Kirby
- """ removes duplicates from list, preserve order """
- seen = set()
- return [x for x in seq if x not in seen and not seen.add(x)]
-
-def bits_set(bits, compare):
- """ checks if all bits are set in compare, or bits is 0 """
- return bits == (bits & compare)
-
-def parseFileSize(string, unit=None): #returns bytes
- if not unit:
- m = re.match(r"([\d.,]+) *([a-zA-Z]*)", string.strip().lower())
- if m:
- traffic = float(m.group(1).replace(",", "."))
- unit = m.group(2)
- else:
- return 0
- else:
- if isinstance(string, basestring):
- traffic = float(string.replace(",", "."))
- else:
- traffic = string
-
- #ignore case
- unit = unit.lower().strip()
-
- if unit in ("gb", "gig", "gbyte", "gigabyte", "gib", "g"):
- traffic *= 1 << 30
- elif unit in ("mb", "mbyte", "megabyte", "mib", "m"):
- traffic *= 1 << 20
- elif unit in ("kb", "kib", "kilobyte", "kbyte", "k"):
- traffic *= 1 << 10
-
- return traffic
-
-
-def lock(func):
- def new(*args, **kwargs):
- #print "Handler: %s args: %s" % (func,args[1:])
- args[0].lock.acquire()
- try:
- return func(*args, **kwargs)
- finally:
- args[0].lock.release()
-
- return new
-
-def read_lock(func):
- def new(*args, **kwargs):
- args[0].lock.acquire(shared=True)
- try:
- return func(*args, **kwargs)
- finally:
- args[0].lock.release()
-
- return new
-
-def chunks(iterable, size):
- it = iter(iterable)
- item = list(islice(it, size))
- while item:
- yield item
- item = list(islice(it, size))
-
-
-def fixup(m):
- text = m.group(0)
- if text[:2] == "&#":
- # character reference
- try:
- if text[:3] == "&#x":
- return unichr(int(text[3:-1], 16))
- else:
- return unichr(int(text[2:-1]))
- except ValueError:
- pass
- else:
- # named entity
- try:
- name = text[1:-1]
- text = unichr(name2codepoint[name])
- except KeyError:
- pass
-
- return text # leave as is
-
-
-def has_method(obj, name):
- """ checks if 'name' was defined in obj, (false if it was inhereted) """
- return name in obj.__dict__
-
-def accumulate(it, inv_map=None):
- """ accumulate (key, value) data to {value : [keylist]} dictionary """
- if not inv_map:
- inv_map = {}
-
- for key, value in it:
- if value in inv_map:
- inv_map[value].append(key)
- else:
- inv_map[value] = [key]
-
- return inv_map
-
-def to_string(value):
- return str(value) if not isinstance(value, basestring) else value
-
-def to_int(string, default=0):
- """ return int from string or default """
- try:
- return int(string)
- except ValueError:
- return default
-
-def from_string(value, typ=None):
- """ cast value to given type, unicode for strings """
-
- # value is no string
- if not isinstance(value, basestring):
- return value
-
- value = decode(value)
-
- if typ == "int":
- return int(value)
- elif typ == "bool":
- return True if value.lower() in ("1", "true", "on", "an", "yes") else False
- elif typ == "time":
- if not value: value = "0:00"
- if not ":" in value: value += ":00"
- return value
- else:
- return value
-
-def get_index(l, value):
- """ .index method that also works on tuple and python 2.5 """
- for pos, t in enumerate(l):
- if t == value:
- return pos
-
- # Matches behavior of list.index
- raise ValueError("list.index(x): x not in list")
-
-def primary_uid(user):
- """ Gets primary user id for user instances or ints """
- if type(user) == int: return user
- return user.primary if user else None
-
-def html_unescape(text):
- """Removes HTML or XML character references and entities from a text string"""
- return re.sub("&#?\w+;", fixup, text)
-
-if __name__ == "__main__":
- print remove_chars("ab'cdgdsf''ds'", "'ghd")