diff options
| -rwxr-xr-x | example.py | 9 | ||||
| m--------- | photoblaster | 0 | ||||
| -rw-r--r-- | ricky/config.py | 24 | ||||
| -rw-r--r-- | ricky/param/__init__.py | 3 | ||||
| -rw-r--r-- | ricky/param/constrainednumber.py | 27 | ||||
| -rw-r--r-- | ricky/pb.py | 29 |
6 files changed, 66 insertions, 26 deletions
@@ -7,10 +7,15 @@ from ricky.pbpattern import PbPattern api = PbGradient() params = api.params_init() -print params params.randomize() print params -print params.execute() +#print params +#print params.execute() +data = api.data_from_url( + "http://i.asdf.us/im/8f/PbGradientblue4-DarkGreen_1448917630.png" +) +params.from_dict(data['params']) +print params #print params['color1'] #params['color1'].from_normalized(0.28187431585) #print params['color1'] diff --git a/photoblaster b/photoblaster -Subproject b08d2f2cadd971b2a66defe2fc24e6c5c455dab +Subproject a78fb8a603c2fbafb61b39a6e0c6f0b1f4ca647 diff --git a/ricky/config.py b/ricky/config.py index 04da7e1..2040435 100644 --- a/ricky/config.py +++ b/ricky/config.py @@ -1,13 +1,27 @@ +import os + """ALL GLOBAL CONSTANTS GO HERE""" + + USERNAME = "RICHARD_GIOVANNI" TEST_URL = ( "http://i.asdf.us/im/" "65/imBreak5qI6DN2_14254-PbPattern_1444004782_pepper.png" ) -PATTERN_URL_BASE = "http://asdf.us/impattern/patterns" -IMPATTERN_URL = "http://asdf.us/im/api/impattern" -IMGRID_URL = "http://asdf.us/im/api/imgrid" -IMGRADIENT_URL = "http://asdf.us/im/api/imgradient" -IMBREAK_URL = "http://asdf.us/im/api/imbreak" +PB_BASE = "http://asdf.us/" + + +def _add_pb_base(path): + return os.path.join(PB_BASE, path) + +PATTERN_URL_BASE = _add_pb_base("impattern/patterns") +IMPATTERN_URL = _add_pb_base("im/api/impattern") +IMGRID_URL = _add_pb_base("im/api/imgrid") +IMGRADIENT_URL = _add_pb_base("im/api/imgradient") +IMBREAK_URL = _add_pb_base("im/api/imbreak") +PB_DATA_URL = _add_pb_base("im/data") + +# offline mode, true by default OFFLINE = True + PROBABILITIES_DIR = "share/probabilities" diff --git a/ricky/param/__init__.py b/ricky/param/__init__.py index abb5e6a..3bf5c7e 100644 --- a/ricky/param/__init__.py +++ b/ricky/param/__init__.py @@ -10,14 +10,13 @@ class Param(object): name=None, **kwargs ): - self._value_default = None self.name = name self.required = required self._value_default = kwargs.get("default") or None if not hasattr(self, "set_by_user"): self._set_by_user = set_by_user - if self.value is not None and \ + if hasattr(self, "value") and self.value is not None and \ kwargs.get("value") is not None: self._value = kwargs.get("value") else: diff --git a/ricky/param/constrainednumber.py b/ricky/param/constrainednumber.py index 8585481..079ba10 100644 --- a/ricky/param/constrainednumber.py +++ b/ricky/param/constrainednumber.py @@ -14,17 +14,36 @@ class ConstrainedNumber(Param): self.forbidden_range_max = kwargs.get('forbidden_range_max') self.enforce_int = kwargs.get('enforce_int') self.prec = kwargs.get('prec') + super(ConstrainedNumber, self).__init__(**kwargs) if "default" not in kwargs: self.randomize() kwargs["default"] = self._value - super(ConstrainedNumber, self).__init__(**kwargs) @property def value(self): - return super(ConstrainedNumber, self).value_get() + return self._value +# self._set_by_user = True # FIXME +# return super(ConstrainedNumber, self).value_get() @value.setter def value(self, value): + if not self.required and value in ["", None]: + return + if self.enforce_int: + try: + value = int(value) + except ValueError: + raise ValueError( + "Value %s for %s is not an int" % (value, self.name) + ) + else: + try: + value = decimal.Decimal(value) + except ValueError: + raise ValueError( + "Value %s for %s is not a valid number type" % + (value, self.name) + ) if value is not None and ( value < self.range_min or value > self.range_max @@ -51,10 +70,6 @@ class ConstrainedNumber(Param): self.forbidden_range_max ) ) - if self.enforce_int and type(value) != int: - raise ValueError( - "Value %s is not an int" % value - ) self._value = value def __str__(self): diff --git a/ricky/pb.py b/ricky/pb.py index 10674f2..4a94a46 100644 --- a/ricky/pb.py +++ b/ricky/pb.py @@ -3,7 +3,7 @@ import urllib import urllib2 import sys import simplejson as json -from ricky.config import OFFLINE +from ricky.config import OFFLINE, PB_DATA_URL class Pb(object): @@ -12,7 +12,7 @@ class Pb(object): self.url = "" self._offline = OFFLINE - def post_request(self, url, params): + def http_request(self, url, params={}): params = urllib.urlencode(params) headers = { "Content-type": "application/x-www-form-urlencoded", @@ -24,7 +24,10 @@ class Pb(object): "Accept": "text/plain" } try: - req = urllib2.Request(url, params, headers) + if params: + req = urllib2.Request(url, params, headers) + else: + req = urllib2.Request(url, params, headers) response = urllib2.urlopen(req) return response.read() except ValueError: @@ -53,22 +56,26 @@ class Pb(object): instance.file_s3move() return instance.file_dict() return json.loads( - self.post_request(self.url, params.as_dict()) + self.http_request(self.url, params=params.as_dict()) ) - def params_from_url(self, url): + def data_from_url(self, url): """ retrieves image params from db using the url """ + newfile = os.path.split(url)[-1] if self._offline: sys.path.append("./photoblaster") from photoblaster.db.models.imcmd import ImCmd - newfile = os.path.split(url)[-1] - files = ImCmd.search({"newfile": newfile}) - if not len(files): + result = ImCmd.search(newfile=newfile).first() + try: + return { + "module": result.tag.split(":")[0], + "params": json.loads(result.dataobj) + } + except AttributeError: + sys.stderr.write("No usable data found in db\n") return None - filedata = json.loads(files[0].dataobj) - return filedata else: - # needs a route + print self.http_request("%s?newfile=%s" % (PB_DATA_URL, newfile)) raise NotImplementedError("Not yet implemented\n") |
