[GRASS-dev] Fwd: Re: [GRASS-user] script html manual file directory

Moritz Lennert mlennert at club.worldonline.be
Thu May 3 05:09:20 PDT 2018

Forwarding this to grass-dev as I think there are more people here that 
might be able to help:

-------- Forwarded Message --------
Subject: 	Re: [GRASS-user] script html manual file directory
Date: 	Wed, 2 May 2018 23:51:21 +0200
From: 	Frank David <frank.david at geophom.fr>
Organization: 	Geophom
To: 	Moritz Lennert <mlennert at club.worldonline.be>
CC: 	grass-user at lists.osgeo.org

Hi all,

Thank you for your advices Moritz !

I succeed (I guess..) to make a package  with several python scripts 
(one by sub-folder) and a shared library (in its own sub-folder). I can 
install with g.extension (only in command line) (why?). But the entries 
does not appear in g.extension list because they are not in  in 
.grass7/addons/modules.xml. I do not find anything about the way to add 
my entries in that file. It's not a part of Makefile commands. How it's 
handled ?

I notice that: if I install twice my package (suite) with g.extension, 
the library sub-folder is copied inside the library sub-folder (one 
level too low and do not replace), if I install once again, the library 
replace the lowest level folder. So, If i update the library I must 
remove manually the library to keep it at the right level. Do you  have 
an idea of the reason ? (I suppose Makefile, but I don't understand - 
see below the Makefile)

I have created a custom menu toolboxes.xml. Is there a way ton install 
my menu and insert the sub-toolbox in main_menu.xml ?

Concerning french accent, as you suggest, I can use html special 
characters &xxx; for the <description> part, and it works. But not in 
the #% description module entries of the python script for correct 
display in gui. However, the manual display bad characters in the upper 
section (like é for é), and good in the lowest... Is there a way to 
have accent both in gui and manual ?



_Library Makefile:_

MODULE_TOPDIR = ../../..

include $(MODULE_TOPDIR)/include/Make/Other.make
include $(MODULE_TOPDIR)/include/Make/Python.make

MODULES = utils __init__

PGM = r.wtg
LIBDIR = libwtg

PYFILES := $(patsubst %,$(ETCDIR)/%.py,$(MODULES))
PYCFILES := $(patsubst %,$(ETCDIR)/%.pyc,$(MODULES))

default: $(PYFILES) $(PYCFILES)

      $(MKDIR) $@

$(ETCDIR)/%: % | $(ETCDIR)
      $(INSTALL_DATA) $< $@

      $(MKDIR) $(INST_DIR)/etc/$(PGM)
      cp -r $(ETCDIR) $(INST_DIR)/etc/$(PGM)/$(LIBDIR)

Le 27/04/2018 à 17:34, Moritz Lennert a écrit :
> Le Fri, 27 Apr 2018 16:08:00 +0200,
> Frank David<frank.david at geophom.fr>  a écrit :
>> Thank you Moritz,
>> I succeed to install python script, But.. my script use a custom lib
>> in a sub-folder for my shared functions, so g.extension fails with
>> the line "from gg.geolib import *". How may I manage this included
>> lib ?
> Check examples of other scripts and how they handle this. For example:
> r.agent [1] or r.green [2].
> Check the Makefiles at each level, including the one in the
> library directory, and how the set the path for import of the library
> files before importing them:
>  From r.agent.rand [3]:
> from grass.pygrass.utils import set_path
> set_path('r.agent', 'libagent', '..')
> from libagent import error, grassland, world
>> Without this include, install works (only on console, not with gui)
> You would need to give us more details: what do you do exactly and what
> doesn't work ?
>> and allows to exec the script from console. I notice encoding manual
>> is not in UTF-8. Is it possible to force UTF-8 encoding ?.
> I don't think so, but others should know better than me. If you want to
> include accented characters, you should use html symbol codes (i.e.
> '&‌agrave;' for à, etc).
>> However,
>> my custom menu (toolboxes.xml) fails with the following error :
>> "/usr/local/grass-7.4.0svn/gui/wxpython/lmgr/frame.py", line
>> 905, in OnMenuCmd
>> GUI(parent=self, giface=self._giface).ParseCommand(cmd)
>>     File
>> "/usr/local/grass-7.4.0svn/gui/wxpython/gui_core/forms.py",
>> line 2834, in ParseCommand
>> raise gcmd.GException(e.value)
>> core.gcmd
>> .
>> GException
>> :
>> Unable to fetch interface description for command
>> 'gzvibin.py'.
>> Details: [Errno 2] No such file or directory
> This sounds like it cannot find gzvibin.py. How and where did you
> 'install' it ?
> Moritz
> [1]
> https://trac.osgeo.org/grass/browser/grass-addons/grass7/raster/r.agent
> [2]
> https://trac.osgeo.org/grass/browser/grass-addons/grass7/raster/r.green
> [3]
> https://trac.osgeo.org/grass/browser/grass-addons/grass7/raster/r.agent/r.agent.rand/r.agent.rand.py#L91

More information about the grass-dev mailing list