<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Feb 1, 2015 at 2:26 PM, Moritz Lennert <span dir="ltr"><<a href="mailto:mlennert@club.worldonline.be" target="_blank">mlennert@club.worldonline.be</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">On 01/02/15 12:29, Glynn Clements wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Pietro wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
{{{<br>
import os<br>
os.system('g.region rast=elevation')<br>
}}}<br>
<br>
and not subprocess:<br>
<br>
{{{<br>
import subprocess<br>
subprocess.call('g.region rast=elevation', shell=True)<br>
<br>
# or<br>
<br>
subprocess.Popen('g.region rast=elevation', shell=True)<br>
}}}<br>
<br>
Concerning the pygrass Module API, may be we can use the shortcut version:<br>
</blockquote>
<br>
Using subprocess.call() with shell=True is no better than using<br>
os.system(). Both should be avoided at all costs.<br>
<br>
The grass.script module provides a number of convenience functions<br>
which use grass.script.make_command() to generate the command's<br>
argument list from the function's argument list. Also, they use a<br>
version of subprocess.Popen() which has been wrapped to deal with some<br>
of Windows' idiosyncrasies.<br>
<br>
</blockquote>
<br>
<br></span>
Just to be clear: the example on this wiki page shows just that it is possible to call any GRASS module from any language that allows system calls. It then goes on to introduce the scripting API to show how that eases things on the script writer since she doesn't have to deal with any idiosyncrasies.<br>
<br>
But if this causes too much opposition I can take it out or at least put a big warning of likes of "Don't use this ! Example code only."<span class=""><font color="#888888"><br>
<br></font></span></blockquote><div><br></div><div>I suggest to use Bash example instead of Python one because this is how it is actually (also) used.<br><br></div><div>If some warning is needed, it probably applies to all, Bash, C system calls and Perl too.<br><br></div><div>Do you consider a section for 3rd party APIs? Particularly I'm asking about spgrass in R (the same philosophy as grass.script for Python) and QGIS Processing (wrapper, limited functionality?, different philosophy).<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class=""><font color="#888888">
Moritz</font></span><div class=""><div class="h5"><br>
______________________________<u></u>_________________<br>
grass-dev mailing list<br>
<a href="mailto:grass-dev@lists.osgeo.org" target="_blank">grass-dev@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/grass-dev" target="_blank">http://lists.osgeo.org/<u></u>mailman/listinfo/grass-dev</a><br>
</div></div></blockquote></div><br></div></div>