diff options
-rw-r--r-- | grc/blocks/parameter.xml | 29 | ||||
-rw-r--r-- | grc/python/Param.py | 7 | ||||
-rw-r--r-- | grc/python/flow_graph.tmpl | 6 | ||||
-rw-r--r-- | grc/todo.txt | 1 |
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 |