Hi Martin,

On Sun, Oct 4, 2015 at 2:30 PM, Martin Landa <landa.mar...@gmail.com> wrote:
> Hi all,
>
> when trying to fix all compilation and installation issues I replaced
> get_lib_path() by set_path() [1]. These functions are not used in
> GRASS core codebase. Their usage is not clear to me.

The idea is to be able to execute the same code in both scenarios:
compiled/installed code, and executing the python code locally (e.g. python
my.grass.module.py parm0=option0 param1=option1 -e --o).
Since GRASS is changing the paths before and after compilations...

Surelly these functions can be implemented in a different way and/or
improved.

> Fn get_lib_path() says "Return the path of the libname contained in
> the module". So I would expect that it checkd that `modname` is a
> directory and contains `libname` Python module. But 'libname' is just
> used to check if it's a directory [2].

Yes, I think you are right, the function should check if libname is a
directory or a python file.

> Only one function calls get_lib_path() - set_path() [3].
>
> Can anybody here to clarify their usage?

They are split for code-granularity reasons and potential re-usability,
Every time that you need to set/modify the python path you need the
get_lib_path and modify the python path, but i think that sometime could be
also useful to just check the path to the library without changing the
python path. Therefore the idea here is:

get_lib_path => Return a string with the path to the library, if found else
return None
set_path() => Set the python path to make the library importable or raise
an exception

What do you think?

Pietro
_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to