summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpepperpepperpepper <pepper@scannerjammer.com>2015-10-08 21:15:47 -0700
committerpepperpepperpepper <pepper@scannerjammer.com>2015-10-08 21:15:47 -0700
commitb4fdde9e35bb1fdaf2d88e07b2fa00dce80d6cf6 (patch)
tree27fefddb5b691a71a6759473c4d04b1979dfcc20
parent65915957b1e99e979f298cdba5d30284c1b3df0f (diff)
fixing like crazy
-rw-r--r--ricky/im.py2
-rw-r--r--ricky/imgradient/imgradient.py8
-rw-r--r--ricky/imgradient/params.py145
-rw-r--r--ricky/param/color.py43
-rw-r--r--ricky/param/multiselect.py4
-rw-r--r--ricky/param/numberrange.py52
-rw-r--r--ricky/param/param.py8
-rw-r--r--ricky/param/string.py1
-rw-r--r--ricky/param/username.py4
-rw-r--r--ricky/params.py7
10 files changed, 194 insertions, 80 deletions
diff --git a/ricky/im.py b/ricky/im.py
index 159aa89..3bbcf43 100644
--- a/ricky/im.py
+++ b/ricky/im.py
@@ -4,7 +4,7 @@ import sys
import simplejson as json
-class Im:
+class Im(object):
def __init__(self):
self._required_keys = []
self.url = ""
diff --git a/ricky/imgradient/imgradient.py b/ricky/imgradient/imgradient.py
index bc04615..1d8da3d 100644
--- a/ricky/imgradient/imgradient.py
+++ b/ricky/imgradient/imgradient.py
@@ -1,12 +1,16 @@
+"""class for the imgradient api handler"""
from ricky.im import Im
-from ricky.imgradient.params import ImGradientParams
+from ricky.imgradient.params import Params
from ricky.config import IMGRADIENT_URL
+
class ImGradient(Im):
def __init__(self):
+ super(ImGradient, self).__init__()
self.url = IMGRADIENT_URL
+
def params_init(self):
- new_params = ImGradientParams()
+ new_params = Params()
#new_params = self.get_from_server()
new_params.api = self
return new_params
diff --git a/ricky/imgradient/params.py b/ricky/imgradient/params.py
index 9d44b2a..e88e7a4 100644
--- a/ricky/imgradient/params.py
+++ b/ricky/imgradient/params.py
@@ -1,45 +1,120 @@
-import re, random
-from ricky.params import Params
-from ricky.param import Param
-from ricky.param.option import Option
-from ricky.param.options import Options
+import re
+from ricky.params import Params as _Params
from ricky.param.username import Username
-from ricky.param.imageurl import ImageUrl
from ricky.param.multiselect import MultiSelect
from ricky.param.numberrange import NumberRange
from ricky.param.color import Color
-
from ricky.imgradient.options import *
-
-class ImGradientParams(Params):
+class Params(_Params):
def __init__(self):
- self._params = [
- Username(name="username", required=0),
- NumberRange(name="width", required=1, options=width_options, min=100, max=800),
- NumberRange(name="height", required=1, options=height_options, min=100, max=800),
- Color(name="color1", required=1, options=color1_options),
- Color(name="color2", required=1, options=color2_options),
- MultiSelect(name="filetype", required=0, options=filetype_options),
- MultiSelect(name="gradienttype", required=1, options=gradienttype_options),
- MultiSelect(name="halftone", required=0, options=halftone_options),
- MultiSelect(name="bevel", required=0, options=bevel_options),
-
- NumberRange(name="stripenumber", required=0, options=stripenumber_options, min=0, max=400),
- NumberRange(name="stripeintensity", required=0, options=stripeintensity_options, min=0, max=5000),
-
- NumberRange(name="blurriness", required=0, options=blurriness_options, min=0, max=200),
-# NumberRange(name="contrast", required=0, options=contrast_options, min=0, max=200),
- NumberRange(name="brightness", required=0, options=brightness_options, min=0, max=200),
- NumberRange(name="saturation", required=0, options=saturation_options, min=0, max=200),
- NumberRange(name="hue", required=0, options=hue_options, min=0, max=200),
-
- NumberRange(name="percentbeveled", required=0, options=percentbeveled_options, min=0, max=100),
- NumberRange(name="rotate", required=0, options=rotate_options, min=0, max=360),
- NumberRange(name="tilt", required=0, options=tilt_options, min=0, max=360),
+ super(Params, self).__init__(
+ Username(name="username", required=0),
+ NumberRange(
+ name="width",
+ required=1,
+ options=width_options,
+ min=100,
+ max=800
+ ),
+ NumberRange(
+ name="height",
+ required=1,
+ options=width_options,
+ min=100,
+ max=800
+ ),
+ Color(name="color1", required=1, options=color1_options),
+ Color(name="color2", required=1, options=color2_options),
+ MultiSelect(
+ name="filetype",
+ required=0,
+ options=filetype_options
+ ),
+ MultiSelect(
+ name="gradienttype",
+ required=1,
+ options=gradienttype_options
+ ),
+ MultiSelect(
+ name="halftone",
+ required=0,
+ options=halftone_options
+ ),
+ MultiSelect(name="bevel", required=0, options=bevel_options),
+ NumberRange(
+ name="stripenumber",
+ required=0,
+ options=stripenumber_options,
+ min=0,
+ max=400
+ ),
+ NumberRange(
+ name="stripeintensity",
+ required=0,
+ options=stripeintensity_options,
+ min=0,
+ max=5000
+ ),
- MultiSelect(name="flop", required=0, options=flop_options),
- MultiSelect(name="flip", required=0, options=flip_options),
- ]
+ NumberRange(
+ name="blurriness",
+ required=0,
+ options=blurriness_options,
+ min=0,
+ max=200
+ ),
+ # NumberRange(
+ # name="contrast",
+ # required=0,
+ # options=contrast_options,
+ # min=0,
+ # max=200
+ # ),
+ NumberRange(
+ name="brightness",
+ required=0,
+ options=brightness_options,
+ min=0,
+ max=200
+ ),
+ NumberRange(
+ name="saturation",
+ required=0,
+ options=saturation_options,
+ min=0,
+ max=200
+ ),
+ NumberRange(
+ name="hue",
+ required=0,
+ options=hue_options,
+ min=0,
+ max=200
+ ),
+ NumberRange(
+ name="percentbeveled",
+ required=0,
+ options=percentbeveled_options,
+ min=0,
+ max=100
+ ),
+ NumberRange(
+ name="rotate",
+ required=0,
+ options=rotate_options,
+ min=0,
+ max=360
+ ),
+ NumberRange(
+ name="tilt",
+ required=0,
+ options=tilt_options,
+ min=0,
+ max=360
+ ),
+ MultiSelect(name="flop", required=0, options=flop_options),
+ MultiSelect(name="flip", required=0, options=flip_options),
+ )
diff --git a/ricky/param/color.py b/ricky/param/color.py
index b331fb9..e192cba 100644
--- a/ricky/param/color.py
+++ b/ricky/param/color.py
@@ -1,30 +1,39 @@
from ricky.param.multiselect import MultiSelect
import random
+
+
class Color(MultiSelect):
def __init__(self, **kwargs):
- super(Color, self).__init__(**kwargs)
+ super(Color, self).__init__(**kwargs)
@classmethod
- def from_rgb(cls, r,g,b):
- return cls(value="rgb({},{},{})".format(r,g,b))
+ def from_rgb(cls, r, g, b):
+ return cls(value="rgb({},{},{})".format(r, g, b))
@property
def value(self):
- return super(MultiSelect, self).value_get()
+ return super(MultiSelect, self).value_get()
+
@value.setter
def value(self, value):
- self._value = value
- if not self._value is None:
- self.is_ready = 1
- self.set_by_user = 1
+ self._value = value
+ if self._value is not None:
+ self.is_ready = 1
+ self.set_by_user = 1
def randomize(self):
- weights_total = sum(map(lambda x: x["weight"], self.options())) + (255 * 255 * 255)
- choice = random.randint(0, weights_total)
- position = 0
- for elem in self.options():
- position += elem["weight"]
- if position >= choice:
- self.value = elem["value"]
- return
- self.value = "rgb({},{},{})".format( random.randint(0,255), random.randint(0,255), random.randint(0,255))
+ weights_total = sum(
+ map(lambda x: x["weight"], self.options())
+ ) + (255 * 255 * 255)
+ choice = random.randint(0, weights_total)
+ position = 0
+ for elem in self.options():
+ position += elem["weight"]
+ if position >= choice:
+ self.value = elem["value"]
+ return
+ self.value = "rgb(%s,%s,%s)" % (
+ random.randint(0, 255),
+ random.randint(0, 255),
+ random.randint(0, 255)
+ )
diff --git a/ricky/param/multiselect.py b/ricky/param/multiselect.py
index 1db22f3..ac5c9e7 100644
--- a/ricky/param/multiselect.py
+++ b/ricky/param/multiselect.py
@@ -25,6 +25,10 @@ class MultiSelect(Param):
return super(MultiSelect, self).value_get()
def value_set(self, value):
+ import sys
+ sys.stderr.write("in value set right now for some reason...\n")
+ sys.stderr.write("%s\n" % self.name)
+ sys.stderr.write("%s\n" % value)
if not any([value == i['value'] for i in self._options]) and \
value is not None:
raise ValueError
diff --git a/ricky/param/numberrange.py b/ricky/param/numberrange.py
index 37b85e3..5ecd165 100644
--- a/ricky/param/numberrange.py
+++ b/ricky/param/numberrange.py
@@ -1,27 +1,39 @@
-import sys
-from ricky.param.multiselect import MultiSelect
import random
-class NumberRange(MultiSelect):
+from ricky.param import Param
+
+
+class NumberRange(Param):
def __init__(self, **kwargs):
- super(NumberRange, self).__init__(**kwargs)
- self.range_min = kwargs['min']
- self.range_max = kwargs['max']
+ super(Param, self).__init__()
+ self.range_min = kwargs['min']
+ self.range_max = kwargs['max']
+
def randomize(self):
- weights_total = sum(map(lambda x: x["weight"], self.options())) + self.range_max - self.range_min
- choice = random.randint(0, weights_total)
- position = 0
- for elem in self.options():
- position += elem["weight"]
- if position >= choice:
- self.value = elem["value"]
- return
- self.value = random.randint(self.range_min,self.range_max)
+ weights_total = sum(
+ map(lambda x: x["weight"], self.options())
+ ) + self.range_max - self.range_min
+ choice = random.randint(0, weights_total)
+ position = 0
+ for elem in self.options():
+ position += elem["weight"]
+ if position >= choice:
+ self.value = elem["value"]
+ return
+ self.value = random.randint(self.range_min, self.range_max)
+
@property
def value(self):
- return super(MultiSelect, self).value_get()
+ return super(Param, self).value_get()
+
@value.setter
def value(self, value):
- self._value = value
- if not self._value is None:
- self.is_ready = 1
- self.set_by_user = 1
+ self._value = value
+ if self._value < self.range_min or self._value > self.range_max:
+ raise ValueError(
+ "Value must be between %s and %s\n" % (
+ self.range_min, self.range_max
+ )
+ )
+ if self._value is not None:
+ self.is_ready = 1
+ self.set_by_user = 1
diff --git a/ricky/param/param.py b/ricky/param/param.py
index 838da6b..0d1739f 100644
--- a/ricky/param/param.py
+++ b/ricky/param/param.py
@@ -26,7 +26,13 @@ class Param(object):
def value_set(self, value):
self._value = value
- sys.stderr.write("trying to set %s: %s \n" % (self.name, value))
+ sys.stderr.write("trying to set %s - %s: %s \n" %
+ (
+ self.__class__.__name__,
+ self.name,
+ value
+ )
+ )
if self._value:
self.is_ready = 1
self.set_by_user = 1
diff --git a/ricky/param/string.py b/ricky/param/string.py
index 10e289a..ba1fc26 100644
--- a/ricky/param/string.py
+++ b/ricky/param/string.py
@@ -1,4 +1,5 @@
from ricky.param import Param
+
class String(Param):
def __init__(self, **kwargs):
super(String, self).__init__(**kwargs)
diff --git a/ricky/param/username.py b/ricky/param/username.py
index e5023ec..cc00f60 100644
--- a/ricky/param/username.py
+++ b/ricky/param/username.py
@@ -3,5 +3,5 @@ from ricky.param.string import String
class Username(String):
def __init__(self, **kwargs):
- super(Username, self).__init__(**kwargs)
- self.default(USERNAME)
+ super(Username, self).__init__(**kwargs)
+ self.default(USERNAME)
diff --git a/ricky/params.py b/ricky/params.py
index 2b5e6ee..2f6ef33 100644
--- a/ricky/params.py
+++ b/ricky/params.py
@@ -4,9 +4,12 @@ import pprint
class Params(object):
- def __init__(self):
+ def __init__(self, *args):
self._api = None
- self._params = []
+ self._params = args
+
+ def define_from_list(self, definitions_list):
+ self._params = definitions_list
def param(self, name):
"""getter for the param by name"""