>>>>> Ivan Shmakov <[EMAIL PROTECTED]> writes:
>>>>> Michael Barton <[EMAIL PROTECTED]> writes:
[...]
>> What this means is that we need to have Python people volunteer to
>> begin to rewrite existing Bash scripts in Python and begin writing
>> any new scripts in that platform so that we can have the critical
>> mass to encourage others to learn it and write in it. A couple
>> people have started on this.
> I'm afraid that an attempt to rewrite /all/ the Shell scripts in
> Python will both take time and bring some mess along. Would you,
> e. g., consider an untested 100-lines Python substitute for a
> 50-lines Shell script (that's known to be working for years) to
> encourage anyone to write in Python?
> If there're particular strong points of Python, they're to be
> exploited first (is wxPython among the others?)
I may sound obvious here, but one more strong point could be
added almost for free by exploiting an extended G_parser ().
Namely, in order to ease the creation of ``smart'' wrappers, it
may be allowed to introspect a GRASS module's CLI from Python.
Furthermore, with introduction of an additional field, it may be
allowed for a GRASS module to advertise its ``linearity'' on a
particular field or fields. E. g., the following are
equivalent:
$ g.remove rast=foo,bar,baz
$ g.remove rast=foo,bar ; g.remove rast=baz
Thus a ``smart'' wrapper for `g.remove' should be allowed to run
`g.remove' on ``chunks'' of a sufficiently large list to
overcome the OS command line limits (if any.)
Some ``smart'' wrappers for `g.mlist' and `r.mapcalc' would
allow for something like:
for rast in grass.g.mlist (["rast"], "2008-*-temperature"]):
grass.r.mapcalc ("%s-celsius" % rast, "\"%s\" - 273.15" % rast)
(BTW, does Python allow associative lists, or named arguments?)
And there should be a module allowing one to use a Python
function to perform raster arithmetic (like `r.mapcalc'), too.
Surely, there're many other things that could be done to make
Python quite a sophisticated platform for GRASS scripting. And
I'm not certain that the time used to rewrite all the existing
Shell scripts in Python cannot be spent better.
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev