[GRASS-dev] Passing several floating values to one single option

Hi all,

This might be very simple, but I can't find an answer in the doco - so
here I am,

I'm trying to pass several floats to a single option in a Python script:

python my.module.py input=input output=output myoption=0.1,0.2,0.5

Is there a clever way to declare myoption so that it would parse it as
some 3 floats? Or do I need to define it as a string and parse it
manually?

Cheers,

Pierre

--
Scientist
Landcare Research, New Zealand

On Thu, Sep 13, 2012 at 2:07 AM, Pierre Roudier
<pierre.roudier@gmail.com> wrote:

Hi all,

This might be very simple, but I can't find an answer in the doco - so
here I am,

I'm trying to pass several floats to a single option in a Python script:

python my.module.py input=input output=output myoption=0.1,0.2,0.5

Is there a clever way to declare myoption so that it would parse it as
some 3 floats?

Add

#% multiple : yes

to the option definition section of myoption.

Markus M

Pierre Roudier wrote:

This might be very simple, but I can't find an answer in the doco - so
here I am,

I'm trying to pass several floats to a single option in a Python script:

> python my.module.py input=input output=output myoption=0.1,0.2,0.5

Is there a clever way to declare myoption so that it would parse it as
some 3 floats? Or do I need to define it as a string and parse it
manually?

The values in the "options" dictionary returned from the parser()
function are always strings. You can parse the string with:

  myoption = map(float, options['myoption'].split(','))

The option definition in the script should have:

  #% type: double
  #% multiple: yes

This allows g.parser to validate the option syntax, so you can rely
upon the string being in the correct format. If the values have a
fixed range, you can use e.g.:

  #% options: 0.0-1.0

to have the parser check that the values fall within the range.

--
Glynn Clements <glynn@gclements.plus.com>

Glynn Clements wrote:

The option definition in the script should have:

  #% type: double
  #% multiple: yes

This allows g.parser to validate the option syntax, so you can rely
upon the string being in the correct format. If the values have a
fixed range, you can use e.g.:

  #% options: 0.0-1.0

to have the parser check that the values fall within the range.

For more information on option definitions, see:

http://grass.osgeo.org/programming7/gislib.html#Complete_Structure_Members_Table

--
Glynn Clements <glynn@gclements.plus.com>

On Thu, Sep 13, 2012 at 12:44 PM, Glynn Clements
<glynn@gclements.plus.com> wrote:

Glynn Clements wrote:

The option definition in the script should have:

...

Added to
http://grass.osgeo.org/wiki/GRASS_Python_Scripting_Library#Parsing_the_options_and_flags

Markus

Thanks all for the trick,

Added to
http://grass.osgeo.org/wiki/GRASS_Python_Scripting_Library#Parsing_the_options_and_flags

Perfect place for it I reckon,

Pierre

--
Scientist
Landcare Research, New Zealand