>>>>> 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

Reply via email to