summaryrefslogtreecommitdiff
path: root/Pb/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'Pb/__init__.py')
-rw-r--r--Pb/__init__.py49
1 files changed, 36 insertions, 13 deletions
diff --git a/Pb/__init__.py b/Pb/__init__.py
index f584f00..5e5aa65 100644
--- a/Pb/__init__.py
+++ b/Pb/__init__.py
@@ -5,7 +5,9 @@ import urllib
import urllib2
import sys
import os
+import random
from subprocess import Popen,PIPE,call
+from Pb.Params import Params
Request = urllib2.Request
urlencode = urllib.urlencode
urlopen = urllib2.urlopen
@@ -13,14 +15,15 @@ urlopen = urllib2.urlopen
class Pb(object):
def __init__(self):
- pass;
+ self.params = Params();
+ self._working_dir = WORKING_DIR
- @staticmethod
- def call_cmd(cmd, error=""):
+ def _call_cmd(self, cmd):
try:
call(cmd)
except Exception as e:
- raise (str(e))
+ self.err_warn("Could not call cmd: {}".format(str(cmd)))
+ self.err_warn(str(e))
@staticmethod
def is_color(s):
@@ -130,14 +133,34 @@ class Pb(object):
sys.stderr.write(str(e))
raise;
- @staticmethod
- def make_dotdict(d):
- return dotdict(d)
+ def tempname_create(self, basename=None, fmt="png"):
+ if not basename: basename = self.random_string_create()
+ return os.path.join(self._working_dir, "{}{}.{}".format(self.__class__.__name__, basename, fmt)) # this
+
+ def _get_filename_and_type_from_url (self, url):
+ name = re.sub(r'(?:\s|\?.*|.*/)', '', urllib.unquote(url));
+ try:
+ basename, ext = map(lambda s: self.santize(s), re.search(r'(^.*)\.(.*$)', name).groups());
+ except Exception as e:
+ self.err_warn("Incompatible input file type")
+ if (len(name_part) > 20):
+ name_part = name_part[:-20]
+ return "{}{}_{}_{}".format(self.tag, basename, self._now, self.params.username or ""), ext
+
+ def random_string_create(self):
+ return "{}".format(random.uniform(0, 100000));
+
+
+ def _file_read(self, filepath):
+ f = open(filepath, 'r');
+ data = f.read()
+ f.close()
+ return data
-class dotdict(dict):
- """dot.notation access to dictionary attributes"""
- def __getattr__(self, attr):
- return self.get(attr)
- __setattr__= dict.__setitem__
- __delattr__= dict.__delitem__
+ def err_warn(self, s):
+ sys.stderr.write("ERROR:{} - {}\n".format(self.__class__.__name__, s))
+
+ def err_fatal(self, s):
+ sys.stderr.write("ERROR[FATAL]:{} - {}\n".format(self.__class__.__name__, s))
+ sys.exit(1);