summaryrefslogtreecommitdiff
path: root/ricky/pbgrid/params.py
diff options
context:
space:
mode:
authorpepperpepperpepper <pepper@scannerjammer.com>2015-12-06 17:31:00 -0800
committerpepperpepperpepper <pepper@scannerjammer.com>2015-12-06 17:31:00 -0800
commitf72d7dc6a5a926f56790151e3dde36eaf7978ba0 (patch)
tree1620560f424ffc558ac30ae1b6246d4b7df2eeac /ricky/pbgrid/params.py
parent8ebd9d7eb7b3289a722cdae6a4bdcdd4cd21ff86 (diff)
cleaned up names
Diffstat (limited to 'ricky/pbgrid/params.py')
-rw-r--r--ricky/pbgrid/params.py130
1 files changed, 130 insertions, 0 deletions
diff --git a/ricky/pbgrid/params.py b/ricky/pbgrid/params.py
new file mode 100644
index 0000000..850e180
--- /dev/null
+++ b/ricky/pbgrid/params.py
@@ -0,0 +1,130 @@
+from ricky.params import Params as _Params
+from ricky.param.username import Username
+from ricky.param.imageurl import PbageUrl
+from ricky.param.enum import Enum
+from ricky.param.constrainednumber import ConstrainedNumber
+from ricky.param.color import Color
+from ricky.param.bool import Bool
+
+_TRANSITION_OPTIONS = [
+ "background",
+ "dither",
+ "random",
+ "tile",
+ "edge"
+]
+
+_FILETYPE_OPTIONS = [
+ "png",
+ "jpg",
+ "gif",
+]
+
+
+class Params(_Params):
+ def __init__(self):
+ self._params = (
+ Username(name="username", required=False),
+ PbageUrl(name="bgimage", required=False),
+ PbageUrl(name="imageinstead", required=False),
+ PbageUrl(name="planebgimage", required=False),
+ Enum(
+ name="format",
+ required=False,
+ options=_FILETYPE_OPTIONS
+ ),
+ Enum(
+ name="transition",
+ required=True,
+ options=_TRANSITION_OPTIONS
+ ),
+ Color(name="skycolor", required=False),
+ Color(name="planebgcolor", required=False),
+ Color(name="bgcolor", required=False),
+ Color(name="linecolor", required=False),
+ ConstrainedNumber(
+ name="swing",
+ required=False,
+ enforce_int=True,
+ min=-170,
+ max=170),
+ ConstrainedNumber(
+ name="tilt",
+ required=False,
+ enforce_int=True,
+ min=-170,
+ max=170),
+ ConstrainedNumber(
+ name="roll",
+ required=False,
+ enforce_int=True,
+ min=-170,
+ max=170),
+ ConstrainedNumber(
+ name="width",
+ required=False,
+ enforce_int=True,
+ min=100,
+ max=800),
+ ConstrainedNumber(
+ name="height",
+ required=False,
+ enforce_int=True,
+ min=100,
+ max=800),
+ ConstrainedNumber(
+ name="linethickness",
+ required=False,
+ enforce_int=True,
+ min=1,
+ max=30
+ ),
+ ConstrainedNumber(
+ name="opacity", required=False, min=0, max=1, prec=2),
+ ConstrainedNumber(
+ name="spacing",
+ enforce_int=True,
+ required=False,
+ min=2,
+ max=100),
+ Bool(name="vlines", required=False),
+ Bool(name="hlines", required=False),
+ Bool(name="trim", required=False),
+ Bool(name="shadow", required=False),
+ ConstrainedNumber(
+ name="zoom",
+ required=False,
+ min=-12,
+ max=12,
+ forbidden_range_min=-1.1,
+ forbidden_range_max=1.1,
+ prec=1
+ )
+ )
+
+ def _test_values(self):
+ return not any([
+ (self.__getitem__('spacing').value >
+ self.__getitem__('width').value),
+ (self.__getitem__('spacing').value >
+ self.__getitem__('height').value),
+ (self.__getitem__('linethickness').value >
+ self.__getitem__('width').value),
+ (self.__getitem__('linethickness').value >
+ self.__getitem__('height').value),
+ ])
+
+ def randomize(self):
+ p = self._params
+ for el in p:
+ if el in ['spacing', 'linethickness']:
+ continue
+ el.randomize()
+ for name in ['spacing', 'linethickness']:
+ max_tries = 10000
+ while(max_tries):
+ self.__getitem__(name).randomize()
+ if self._test_values():
+ return
+ max_tries -= 1
+ raise ValueError