summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--grc/blocks/parameter.xml29
-rw-r--r--grc/python/Param.py7
-rw-r--r--grc/python/flow_graph.tmpl6
-rw-r--r--grc/todo.txt1
4 files changed, 22 insertions, 21 deletions
diff --git a/grc/blocks/parameter.xml b/grc/blocks/parameter.xml
index 682f626ee..5d08c4b39 100644
--- a/grc/blocks/parameter.xml
+++ b/grc/blocks/parameter.xml
@@ -17,12 +17,6 @@
<hide>#if $label() then 'none' else 'part'#</hide>
</param>
<param>
- <name>Short ID</name>
- <key>short_id</key>
- <value></value>
- <type>string</type>
- </param>
- <param>
<name>Value</name>
<key>value</key>
<value>0</value>
@@ -33,44 +27,53 @@
<key>type</key>
<value></value>
<type>enum</type>
- <hide>$type.hide</hide>
+ <hide>#if $type() then 'none' else 'part'#</hide>
<option>
<name>None</name>
<key></key>
<opt>type:raw</opt>
- <opt>hide:part</opt>
</option>
<option>
<name>Complex</name>
<key>complex</key>
<opt>type:complex</opt>
- <opt>hide:none</opt>
</option>
<option>
<name>Float</name>
<key>eng_float</key>
<opt>type:real</opt>
- <opt>hide:none</opt>
</option>
<option>
<name>Int</name>
<key>int</key>
<opt>type:int</opt>
- <opt>hide:none</opt>
</option>
<option>
<name>Long</name>
<key>long</key>
<opt>type:int</opt>
- <opt>hide:none</opt>
</option>
<option>
<name>String</name>
<key>string</key>
<opt>type:string</opt>
- <opt>hide:none</opt>
</option>
</param>
+ <param>
+ <name>Short ID</name>
+ <key>short_id</key>
+ <value></value>
+ <type>string</type>
+ <hide>#if not $type()
+all#slurp
+#elif $short_id()
+none#slurp
+#else
+part#slurp
+#end if</hide>
+ </param>
+ <check>len($short_id) in (0, 1)</check>
+ <check>$short_id == '' or $(short_id).isalpha()</check>
<doc>
This block represents a parameter to the flow graph. \
A parameter can be used to pass command line arguments into a top block. \
diff --git a/grc/python/Param.py b/grc/python/Param.py
index 15ccd323c..f971d0c3f 100644
--- a/grc/python/Param.py
+++ b/grc/python/Param.py
@@ -302,13 +302,6 @@ class Param(_Param):
elif t in ('string', 'file_open', 'file_save'):
#do not check if file/directory exists, that is a runtime issue
e = eval_string(v)
- str_e = str(e)
- if t == 'string' and self.get_name() == 'Short ID' and len(str_e) > 0:
- try:
- assert len(str_e) == 1
- ord_e = ord(str_e)
- assert ord_e >= ord('a') and ord_e <= ord('z') or ord_e >= ord('A') and ord_e <= ord('Z')
- except AssertionError: raise Exception, 'Short ID "%s" must be a single letter'%v
return str(e)
#########################
# Unique ID Type
diff --git a/grc/python/flow_graph.tmpl b/grc/python/flow_graph.tmpl
index bc89fb1b5..b537c43e2 100644
--- a/grc/python/flow_graph.tmpl
+++ b/grc/python/flow_graph.tmpl
@@ -189,7 +189,11 @@ if __name__ == '__main__':
#set $type = $param.get_param('type').get_value()
#if $type
#silent $params_eq_list.append('%s=options.%s'%($param.get_id(), $param.get_id()))
- parser.add_option("-$param.get_param('short_id').get_value()", "--$param.get_id()", dest="$param.get_id()", type="$type", default=$param.get_make(),
+ #set $short_id = $param.get_param('short_id').get_evaluated()
+ #if $short_id
+ #set $short_id = '-' + $short_id
+ #end if
+ parser.add_option("$short_id", "--$param.get_id()", dest="$param.get_id()", type="$type", default=$param.get_make(),
help="Set $($param.get_param('label').evaluate() or $param.get_id()) [default=%default]")
#end if
#end for
diff --git a/grc/todo.txt b/grc/todo.txt
index de43d3677..f715dd1d0 100644
--- a/grc/todo.txt
+++ b/grc/todo.txt
@@ -69,6 +69,7 @@
* will not update for non-enum params
* needs to account for added or removed params
* example with grid params need update after notebook change
+* use .strip() on the hide property so we can do away with #slurp(s) in the templates
##################################################
# Future