[GRASS-git] [OSGeo/grass] a29983: locale: Update translation files (#6119)

renovate[bot] noreply at github.com
Sat Aug 2 08:38:02 PDT 2025


  Branch: refs/heads/periodic/update-configure
  Home:   https://github.com/OSGeo/grass
  Commit: a2998302a240419259640fc093a135b7b6637822
      https://github.com/OSGeo/grass/commit/a2998302a240419259640fc093a135b7b6637822
  Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
  Date:   2025-07-26 (Sat, 26 Jul 2025)

  Changed paths:
    M locale/templates/grasslibs.pot
    M locale/templates/grassmods.pot
    M locale/templates/grasswxpy.pot

  Log Message:
  -----------
  locale: Update translation files (#6119)

Co-authored-by: echoix <27212526+echoix at users.noreply.github.com>


  Commit: 8adc66e5e2b327e9e92ac509d11be1613ec80265
      https://github.com/OSGeo/grass/commit/8adc66e5e2b327e9e92ac509d11be1613ec80265
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2025-07-26 (Sat, 26 Jul 2025)

  Changed paths:
    M man/mkdocs/requirements.txt

  Log Message:
  -----------
  CI(deps): Update dependency mkdocs-material to v9.6.16 (#6120)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>


  Commit: b6f55364314ad219b7b84c483028392eb446b5cc
      https://github.com/OSGeo/grass/commit/b6f55364314ad219b7b84c483028392eb446b5cc
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2025-07-26 (Sat, 26 Jul 2025)

  Changed paths:
    M lib/gis/parser_md_python.c

  Log Message:
  -----------
  lib/parser: Use None as default for overwrite (#6076)

Use None, not False, as a default value for overwrite, verbose etc. None is more appropriate because the default behavior is influenced by the environment and, very generally, by how the library is set up. While False is correct in terms of the corresponding command line not being set, the False value may create a false perception that overwriting will be disabled, but in fact overwriting will be driven by the environment.


  Commit: ab6f35014ec46c07f76b93fa6268ef9e4fa4b3b2
      https://github.com/OSGeo/grass/commit/ab6f35014ec46c07f76b93fa6268ef9e4fa4b3b2
  Author: Jayneel Shah <80264736+jayneel-shah18 at users.noreply.github.com>
  Date:   2025-07-26 (Sat, 26 Jul 2025)

  Changed paths:
    A raster3d/r3.cross.rast/testsuite/test_r3_cross_rast.py

  Log Message:
  -----------
  r3.cross.rast: add test file (#6117)

This PR introduces a regression test suite for the `r3.cross.rast` GRASS module. The tests are designed to validate the correctness and stability of 2D cross-section extraction from 3D voxel data using various elevation maps under controlled region settings.

### Tests Included:
* **test\_cross\_section\_at\_flat\_plane**: Verifies that extracting a cross-section at a constant elevation (z = 5) returns the correct voxel values. Serves as a baseline test for fixed Z-plane interpolation.

* **test\_cross\_section\_with\_diagonal\_elevation**: Tests cross-section generation with a sloped elevation surface defined as `(row() + col()) / 2`. Confirms statistics based on expected voxel data.

* **test\_elevation\_above\_voxel\_returns\_nulls**: Ensures that when elevation values lie above the 3D raster extent, the resulting 2D output is completely NULL. This validates correct handling of out-of-bound Z queries.

> **Note:** This test uses `r.univar -g` instead of `format=json` because the JSON output returns `None` when the entire map is NULL. If there is another way to detect this condition without using the deprecated `-g` flag, I will update the implementation accordingly.

* **test\_null\_cells\_in\_elevation\_propagate**: Confirms that NULL values in the input elevation raster result in NULL values in the corresponding output cells. This validates elevation NULL handling logic in the module.


  Commit: bca6f4334c2ad919433fba9fd4e93ae44cd60160
      https://github.com/OSGeo/grass/commit/bca6f4334c2ad919433fba9fd4e93ae44cd60160
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2025-07-27 (Sun, 27 Jul 2025)

  Changed paths:
    M python/grass/CMakeLists.txt
    M python/grass/Makefile
    M python/grass/app/cli.py
    M python/grass/app/tests/grass_app_cli_test.py
    M python/grass/experimental/Makefile
    M python/grass/experimental/tests/conftest.py
    A python/grass/tools/Makefile
    A python/grass/tools/__init__.py
    A python/grass/tools/session_tools.py
    A python/grass/tools/support.py
    A python/grass/tools/tests/conftest.py
    A python/grass/tools/tests/grass_tools_result_test.py
    A python/grass/tools/tests/grass_tools_session_tools_test.py
    A python/grass/tools/tests/grass_tools_tool_function_wrap_test.py

  Log Message:
  -----------
  grass.tools: Add API to access tools as functions (#2923)

This adds a Tools class which allows to access GRASS tools (modules) to be accessed using methods. Once an instance is created, calling a tool is calling a function (method) similarly to grass.jupyter.Map. Unlike grass.script, this does not require a general function to be called with a tool name as a parameter, and unlike grass.pygrass module shortcuts, this does not require special objects to mimic the module families just to get tool names into Python syntax.

Outputs are handled through a returned object which is result of automatic capture of outputs and can do conversions from known formats using properties. The capture is opt-out rather than opt-in as with the other interfaces. The result object is, in a way, similar to what subprocess.run function returns, but focused on GRASS text formats.

The code is included under a new grass.tools package and is marked as experimental which allows merging the code while doing breaking changes after a release.

The implementation maximizes sharing of the low-level code with grass.script, so handle_errors, Popen, and parameter processing is reused, but with different defaults (exceptions and output capturing). It relies on grass.script.Popen which newly defaults to text=True. Both stdout and stderr are passed as is to the result (so as string by default and bytes when text=False).

Adds also a run subcommand to have a CLI use case for the tools. It runs one tool in XY project, so useful only for things like g.extension or m.proj, but, with a workaround for argparse --help, it can do --help for a tool. Processing of special flags is more robust in grass.tools to accommodate the CLI usage.

Uses the no-copy approach for env taken also elsewhere like init which allows for the changes in the session to be reflected in the tools. This requires overwrite and verbosity setting to be handled in an internal, ad-hoc copy which is avoided if not needed. No special computational region treatment.

Dynamic module attributes are used instead of imports, anticipating standalone tools to live in the same package and users picking one or the other but not both. (This requires silencing a Pylint, but we also could not use the all attribute at all.) The use of lazy imports enables code from grass.tools import Tools without forcing that import on everyone importing anything from the other modules (like standalone tools). The file layout itself should accommodate future additions such as standalone tools.

Using io.StringIO for stdin assumes that any tool which will have stdin will have something like input=- or file=- because there is no other way of getting stdin data to the tool at this point. The cmd functions taking a command as a list take an input parameter for stdin aligning with subprocess.run and Popen.communicate (the name stdin is already used for a pipe flag parameter). Allows for stderr to be captured even without capturing stdout to allow for exceptions with error message while simply printing stdout.

The Tools class can also behave like a context manager which is useful when used with other context managers and also will be useful when more functionality is added (like pack file IO) or for aligning (feature parity) with other Tools-like implementations which will require resource handling (like the standalone tools).

The four different tool calling functions (when tool names are not used as attributes) use short names to always keep the focus on the tool, distinguish smart and basic behavior by run and call, and parameter-based (kwargs) and list (command) by no suffix and _cmd suffix.

Function-like calling of tools:

* Tool failure causes an exception with an error message being part of the exception (traceback).
* All returncode, standard output, and error output are part of one result object similar to what subprocess.run returns.
* Access and post-processing of the text result (standard output) is done by the result object (its properties or methods).
* Additionally, the result object can be directly indexed to access a JSON parsed as a Python list or dictionary.
* Standard input is passed as `parameter_name=io.StringIO` which takes care of `input="-"` and piping the text into the subprocess.
* A _session_ or _env_ is accepted when creating an object (`Tools(session=session)`). No need to pass _env_ later.
* `__dir__` code completion for function names and `help()` calls work and work even outside of a session.
* The keyval format processing converts strings to ints and floats.

Other functionality:

* High-level and low-level usage is possible with four different functions: taking Python function parameters as tool parameters or taking a list of strings forming a command, and processing the parameters before the subprocess call or leaving the parameters as is (2x2 matrix).
* Handling of inputs and outputs can be customized (e.g., not capturing stdout and stderr).
* The _env_ parameter is also accepted by individual functions (as with _run_command_).
* The Tools object is a context manager, so it can be created with other context managers within one `with` statement and can include cleanup code in the future.
* Tools-object-level overwrite and verbosity setting including limited support for the reversed (False) setting which is not possible with the standard flags at the tool level (there is no `--overwrite=False` in CLI).

Features originally implemented, but at the end removed:

* Region freezing when Tools object is created.
* Allow to specify stdin and use a new instance of Tools itself to execute with that stdin through a new function which returns that instance (feed_input_to method and stdin in the constructor).
* A special function to ignore errors returning a new instance.
* Overwriting by default like in grass.jupyter.
* Wrappers with names from the run_command family.
* Processing of command line call into JSON which is useful only for the pack file IO.
* Tools in grass.experimental as opposed to grass.tools only marked as experimental.


  Commit: da409580ef15011f3bac379c76d41101c9e36347
      https://github.com/OSGeo/grass/commit/da409580ef15011f3bac379c76d41101c9e36347
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2025-07-27 (Sun, 27 Jul 2025)

  Changed paths:
    M db/drivers/odbc/table.c
    M db/drivers/sqlite/create_table.c
    M db/drivers/sqlite/describe.c
    M db/drivers/sqlite/execute.c
    M db/drivers/sqlite/fetch.c
    M db/drivers/sqlite/index.c
    M db/drivers/sqlite/listtab.c
    M db/drivers/sqlite/select.c
    M imagery/i.atcorr/computations.cpp
    M imagery/i.cluster/print3.c
    M imagery/i.ortho.photo/lib/error.c
    M imagery/i.ortho.photo/lib/georef.c
    M imagery/i.ortho.photo/lib/isnull.c
    M imagery/i.ortho.photo/lib/m_add.c
    M imagery/i.ortho.photo/lib/m_copy.c
    M imagery/i.ortho.photo/lib/m_inverse.c
    M imagery/i.ortho.photo/lib/m_mult.c
    M imagery/i.ortho.photo/lib/m_transpose.c
    M imagery/i.ortho.photo/lib/m_zero.c
    M imagery/i.smap/multialloc.c
    M lib/bitmap/bitmap.c
    M lib/bitmap/sparse.c
    M lib/cdhc/royston.c
    M lib/datetime/between.c
    M lib/datetime/change.c
    M lib/datetime/copy.c
    M lib/datetime/diff.c
    M lib/datetime/error.c
    M lib/datetime/format.c
    M lib/datetime/incr1.c
    M lib/datetime/incr2.c
    M lib/datetime/incr3.c
    M lib/datetime/local.c
    M lib/datetime/misc.c
    M lib/datetime/same.c
    M lib/datetime/scan.c
    M lib/datetime/sign.c
    M lib/datetime/type.c
    M lib/datetime/tz1.c
    M lib/datetime/tz2.c
    M lib/datetime/values.c
    M lib/db/stubs/close_cursor.c
    M lib/display/cnversions.c
    M lib/display/draw2.c
    M lib/display/r_raster.c
    M lib/display/raster2.c
    M lib/display/symbol.c
    M lib/display/tran_colr.c
    M lib/dspf/cube_io.c
    M lib/gis/alloc.c
    M lib/gis/area.c
    M lib/gis/area_poly1.c
    M lib/gis/area_sphere.c
    M lib/gis/ascii_chk.c
    M lib/gis/asprintf.c
    M lib/gis/commas.c
    M lib/gis/copy_dir.c
    M lib/gis/done_msg.c
    M lib/gis/geodist.c
    M lib/gis/get_projinfo.c
    M lib/gis/is.c
    M lib/gis/locale.c
    M lib/gis/lrand48.c
    M lib/gis/mach_name.c
    M lib/gis/make_loc.c
    M lib/gis/mapcase.c
    M lib/gis/mkstemp.c
    M lib/gis/myname.c
    M lib/gis/omp_threads.c
    M lib/gis/open.c
    M lib/gis/open_misc.c
    M lib/gis/overwrite.c
    M lib/gis/parser.c
    M lib/gis/plot.c
    M lib/gis/remove.c
    M lib/gis/rhumbline.c
    M lib/gis/short_way.c
    M lib/gis/snprintf.c
    M lib/gis/spawn.c
    M lib/gis/token.c
    M lib/gis/units.c
    M lib/gis/user_config.c
    M lib/gis/view.c
    M lib/gis/wind_2_box.c
    M lib/gis/wind_in.c
    M lib/gis/wind_limits.c
    M lib/gis/wind_overlap.c
    M lib/gis/wr_cellhd.c
    M lib/gis/writ_zeros.c
    M lib/gis/zone.c
    M lib/gmath/blas_level_2.c
    M lib/gmath/dalloc.c
    M lib/gmath/del2g.c
    M lib/gmath/fft.c
    M lib/gmath/findzc.c
    M lib/gmath/gauss.c
    M lib/gmath/la.c
    M lib/gmath/max_pow2.c
    M lib/gmath/mult.c
    M lib/gmath/rand1.c
    M lib/imagery/find.c
    M lib/imagery/group.c
    M lib/imagery/iscatt_core.c
    M lib/imagery/list_subgp.c
    M lib/imagery/points.c
    M lib/imagery/target.c
    M lib/imagery/var.c
    M lib/nviz/nviz.c
    M lib/pngdriver/box.c
    M lib/pngdriver/color.c
    M lib/pngdriver/draw_bitmap.c
    M lib/pngdriver/graph_set.c
    M lib/proj/ellipse.c
    M lib/raster/align_window.c
    M lib/raster/alloc_cell.c
    M lib/raster/auto_mask.c
    M lib/raster/cats.c
    M lib/raster/cell_title.c
    M lib/raster/color_rand.c
    M lib/raster/color_xform.c
    M lib/raster/histogram.c
    M lib/raster/init.c
    M lib/raster/open.c
    M lib/raster/set_window.c
    M lib/raster/window.c
    M lib/raster3d/alloc.c
    M lib/raster3d/cats.c
    M lib/raster3d/changeprecision.c
    M lib/raster3d/changetype.c
    M lib/raster3d/defaults.c
    M lib/raster3d/error.c
    M lib/raster3d/filecompare.c
    M lib/raster3d/getblock.c
    M lib/raster3d/getvalue.c
    M lib/raster3d/header.c
    M lib/raster3d/headerinfo.c
    M lib/raster3d/history.c
    M lib/raster3d/mask.c
    M lib/raster3d/null.c
    M lib/raster3d/open.c
    M lib/raster3d/open2.c
    M lib/raster3d/param.c
    M lib/raster3d/putvalue.c
    M lib/raster3d/range.c
    M lib/raster3d/region.c
    M lib/raster3d/resample.c
    M lib/raster3d/retile.c
    M lib/raster3d/tilealloc.c
    M lib/raster3d/tileio.c
    M lib/raster3d/tilemath.c
    M lib/raster3d/tilenull.c
    M lib/raster3d/tileread.c
    M lib/raster3d/tilewrite.c
    M lib/raster3d/window.c
    M lib/raster3d/windowio.c
    M lib/raster3d/writeascii.c
    M lib/rowio/put.c
    M lib/rowio/setup.c
    M lib/rst/interp_float/func2d.c
    M lib/rst/interp_float/point2d.c
    M lib/rst/interp_float/point2d_parallel.c
    M lib/segment/address.c
    M lib/segment/close.c
    M lib/segment/flush.c
    M lib/segment/format.c
    M lib/segment/get.c
    M lib/segment/get_row.c
    M lib/segment/init.c
    M lib/segment/open.c
    M lib/segment/pagein.c
    M lib/segment/pageout.c
    M lib/segment/put.c
    M lib/segment/put_row.c
    M lib/segment/release.c
    M lib/segment/setup.c
    M lib/vector/Vlib/area.c
    M lib/vector/Vlib/array.c
    M lib/vector/Vlib/break_lines.c
    M lib/vector/Vlib/header.c
    M lib/vector/Vlib/legal_vname.c
    M lib/vector/Vlib/merge_lines.c
    M lib/vector/Vlib/net_analyze.c
    M lib/vector/Vlib/net_build.c
    M lib/vector/Vlib/remove_areas.c
    M lib/vector/diglib/allocation.c
    M lib/vector/diglib/plus_struct.c
    M lib/vector/diglib/poly.c
    M lib/vector/diglib/spindex.c
    M lib/vector/diglib/spindex_rw.c
    M lib/vector/rtree/index.c
    M lib/vector/rtree/node.c
    M ps/ps.map/catval.c
    M ps/ps.map/gprims.c
    M raster/r.buffer/find_dist.c
    M raster/r.fill.stats/cell_funcs.c
    M raster/r.flow/aspect.h
    M raster/r.flow/flow_io.h
    M raster/r.flow/mem.h
    M raster/r.flow/precomp.h
    M raster/r.li/r.li.daemon/daemon.h
    M raster/r.neighbors/bufs.c
    M raster/r.out.pov/main.c
    M raster/r.out.vrml/put_grid.c
    M raster/r.out.vrml/vrml.c
    M raster/r.patch/do_patch.c
    M raster/r.patch/support.c
    M raster/r.report/sums.c
    M raster/r.viewshed/viewshed.cpp
    M raster3d/r3.out.v5d/main.c
    M raster3d/r3.showdspf/thresh_array.c
    M vector/v.clean/prune.c
    M vector/v.in.ascii/points.c
    M vector/v.net/turntable.c
    M vector/v.perturb/zufallrs.c
    M vector/v.perturb/zufallsv.c
    M vector/v.surf.idw/read_sites.c
    M vector/v.to.db/lines.c
    M vector/v.vol.rst/user1.c
    M vector/v.voronoi/vo_extend.c

  Log Message:
  -----------
  CQ: Trim newline between Doxygen docstring and function signature (#6122)

Even if the current version of Doxygen doesn't complain much, different parsers in an IDE, like VSCode, doesn't recognize the block comment above when there are extra newlines.

Used the following regex to find possible candidates:
```
\n\s(?:\*)\/\n\n((?:\w* [\*]*)+[\w]*\()
```

And replaced with:
```
\n */\n$1
```


  Commit: 78ead368ad67b0c3f97f7e1c27cbece7369b29fa
      https://github.com/OSGeo/grass/commit/78ead368ad67b0c3f97f7e1c27cbece7369b29fa
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2025-07-27 (Sun, 27 Jul 2025)

  Changed paths:
    M .github/workflows/label.yml

  Log Message:
  -----------
  CI: Fix labeler permissions to create labels (#6123)

The `pull-requests: write` permission doesn't seem to allow creating labels anymore, the `issues: write` is also needed.


  Commit: 97d1178de32cf89c33c3364367f0cf6c050bd7f7
      https://github.com/OSGeo/grass/commit/97d1178de32cf89c33c3364367f0cf6c050bd7f7
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2025-07-28 (Mon, 28 Jul 2025)

  Changed paths:
    M flake.lock

  Log Message:
  -----------
  CI(deps): Lock file maintenance (#6131)


  Commit: d5c51924eabe647256cc0e5c1b9717d4c88ecf31
      https://github.com/OSGeo/grass/commit/d5c51924eabe647256cc0e5c1b9717d4c88ecf31
  Author: Chung-Yuan Liang <77927944+cyliang368 at users.noreply.github.com>
  Date:   2025-07-28 (Mon, 28 Jul 2025)

  Changed paths:
    M raster/r.mapcalc/CMakeLists.txt
    M raster/r.mapcalc/Makefile
    A raster/r.mapcalc/benchmark/benchmark_rmapcalc.py
    M raster/r.mapcalc/evaluate.c
    M raster/r.mapcalc/expression.h
    M raster/r.mapcalc/globals.h
    M raster/r.mapcalc/main.c
    M raster/r.mapcalc/map.c
    M raster/r.mapcalc/map3.c
    M raster/r.mapcalc/mapcalc.h
    M raster/r.mapcalc/r.mapcalc.md
    A raster/r.mapcalc/r_mapcalc_benchmark_time.png
    M raster/r.mapcalc/testsuite/test_nmedian_bug_3296.py
    A raster/r.mapcalc/testsuite/test_r_mapcalc_parallel.py
    M raster/r.mapcalc/xarea.c
    M raster/r.mapcalc/xcoor.c
    M raster/r.mapcalc/xcoor3.c
    M raster/r.mapcalc/xrowcol.c

  Log Message:
  -----------
  r.mapcalc: Support parallel computing by OpenMP (#5742)

Parallelize r.mapcalc (2D) using OpenMP by making every thread calculate a corresponding row across rasters. Parallelization is deactivated with mask and for random seed.


  Commit: 24018771f090eac78cd7a4383454a516b4880b57
      https://github.com/OSGeo/grass/commit/24018771f090eac78cd7a4383454a516b4880b57
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2025-07-28 (Mon, 28 Jul 2025)

  Changed paths:
    M include/Make/Doxyfile_arch_html.in
    M include/Make/Doxyfile_arch_latex.in

  Log Message:
  -----------
  man: Ignore UNUSED attribute macros on parameters for doxygen docs (#6128)


  Commit: 00d4456b37c6090dc1e9a0e567ea55a2c170342a
      https://github.com/OSGeo/grass/commit/00d4456b37c6090dc1e9a0e567ea55a2c170342a
  Author: Nishant Bansal <nishant.bansal.282003 at gmail.com>
  Date:   2025-07-28 (Mon, 28 Jul 2025)

  Changed paths:
    M vector/v.what.rast/local_proto.h
    M vector/v.what.rast/main.c
    M vector/v.what.rast/search.c
    A vector/v.what.rast/testsuite/test_v_what_rast.py

  Log Message:
  -----------
  v.what.rast: Add test file (#6109)

* v.what.rast: add test file
* fix qsort ordering by row and then col


  Commit: 27e76f788c421dcbb7bf9dfddfd1bc58a25d6bd7
      https://github.com/OSGeo/grass/commit/27e76f788c421dcbb7bf9dfddfd1bc58a25d6bd7
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2025-07-28 (Mon, 28 Jul 2025)

  Changed paths:
    M python/grass/gunittest/case.py

  Log Message:
  -----------
  grass.gunittest: Fix typo in function `TestCase.assertVectorsNoAreaDifference()` for `_compute_vector_xor` (#6125)


  Commit: bc5cb70979190fea7dda705dd9e27b9c11eefb95
      https://github.com/OSGeo/grass/commit/bc5cb70979190fea7dda705dd9e27b9c11eefb95
  Author: Anna Petrasova <kratochanna at gmail.com>
  Date:   2025-07-28 (Mon, 28 Jul 2025)

  Changed paths:
    M raster3d/r3.info/testsuite/test_r3_info.py

  Log Message:
  -----------
  r3.info: fix test after r.mapcalc parallelization changes (#6137)


  Commit: 8efcc3670171b2114be8c3684e99b78bae0954e2
      https://github.com/OSGeo/grass/commit/8efcc3670171b2114be8c3684e99b78bae0954e2
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2025-07-28 (Mon, 28 Jul 2025)

  Changed paths:
    M lib/gis/parser_local_proto.h
    M lib/gis/parser_md.c
    M lib/gis/parser_md_python.c

  Log Message:
  -----------
  grass.tools: Add Tools API to generated tools doc (#6015)

This adds grass.tools.Tools from #2923 to the generated documentation of individual tools as a new tab similar to the grass.script tab. The documentation and treatment of parameters is the same at this points in grass.tools as in grass.script except for _io.StringIO_.

The _io.StringIO_ type is added based on the gisprompt on a best-guess basis. The current parser metadata don't contain explicit machine-readable information about stdin being allowed. Parser then does not know whether or not a specific tool supports stdin for one of its parameters. The stdin is resolved while opening the file by a library function call at the level of individual tools, but during command line parsing, the parser merely allows for dash being provided instead of a filename. The resulting documentation now contains `"'-' for standard input"` or the like based on what is in each tool. This is slightly misleading for the Tools API because `"-"` won't do anything useful because the only way to supply stdin at this point is _io.StringIO_. However, without extending the parser metadata, I don't see any way how to make it better.

The first first parameter spacing and comma in short doc now needs a special handling because before, we always had a first parameter, namely the name of the tool.  

A care was given to the wording of the experimental part to be clear what part of our API is the experimental one.

This also fixes and clarifies the comment about parse_command versus read_command and run_command.


  Commit: 4b0d87564b8c62b5ee321b3f07cd61c20301d2d9
      https://github.com/OSGeo/grass/commit/4b0d87564b8c62b5ee321b3f07cd61c20301d2d9
  Author: Ondrej Pesek <pesej.ondrek at gmail.com>
  Date:   2025-07-29 (Tue, 29 Jul 2025)

  Changed paths:
    M python/grass/docs/src/pygrass_modules.rst

  Log Message:
  -----------
  docs: add missing comma in pygrass_modules.rst (#6139)


  Commit: e675830f14e57c8b9275175e8815b85f61cdaa75
      https://github.com/OSGeo/grass/commit/e675830f14e57c8b9275175e8815b85f61cdaa75
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2025-07-29 (Tue, 29 Jul 2025)

  Changed paths:
    M db/drivers/ogr/describe.c
    M lib/db/dbmi_client/select.c
    M lib/gis/make_loc.c
    M lib/gis/open_misc.c
    M lib/gmath/la.c
    M lib/gpde/n_gwflow.c
    M lib/gpde/n_les_assemble.c
    M lib/imagery/group.c
    M lib/imagery/iscatt_core.c
    M lib/imagery/iscatt_structs.c
    M lib/imagery/manage_signatures.c
    M lib/imagery/sig.c
    M lib/imagery/sigset.c
    M lib/nviz/map_obj.c
    M lib/nviz/render.c
    M lib/ogsf/gk.c
    M lib/ogsf/gk2.c
    M lib/ogsf/gp2.c
    M lib/ogsf/gs.c
    M lib/ogsf/gs2.c
    M lib/ogsf/gs_bm.c
    M lib/ogsf/gs_util.c
    M lib/ogsf/gsd_cplane.c
    M lib/ogsf/gsd_objs.c
    M lib/ogsf/gsx.c
    M lib/ogsf/gv2.c
    M lib/ogsf/gv3.c
    M lib/ogsf/gvl.c
    M lib/ogsf/gvl2.c
    M lib/ogsf/gvl_calc.c
    M lib/ogsf/gvl_file.c
    M lib/proj/get_proj.c
    M lib/raster/histogram.c
    M lib/raster/quant.c
    M lib/raster/quant_rw.c
    M lib/raster3d/history.c
    M lib/raster3d/mask.c
    M lib/raster3d/open2.c
    M lib/rst/interp_float/func2d.c
    M lib/vector/Vlib/geos_to_wktb.c
    M lib/vector/Vlib/open.c
    M lib/vector/Vlib/read_nat.c
    M lib/vector/Vlib/simple_features.c
    M lib/vector/Vlib/write_nat.c
    M lib/vector/diglib/plus_line.c
    M lib/vector/diglib/struct_alloc.c
    M lib/vector/neta/spanningtree.c
    M lib/vector/neta/timetables.c
    M lib/vector/vedit/move.c

  Log Message:
  -----------
  docs: Fix Doxygen warnings due to invalid docstring syntax or missing tags (part 2) (#6129)


  Commit: 42a236627613c8d716eeda8cd15aa8cfce7a6b01
      https://github.com/OSGeo/grass/commit/42a236627613c8d716eeda8cd15aa8cfce7a6b01
  Author: Nishant Bansal <nishant.bansal.282003 at gmail.com>
  Date:   2025-07-29 (Tue, 29 Jul 2025)

  Changed paths:
    M raster/r.volume/main.c
    M raster/r.volume/testsuite/test_r_volume.py

  Log Message:
  -----------
  r.volume: add csv column headers (#6134)


  Commit: 7469244060e1d081a235e32de40d7b5b6b3fb4d6
      https://github.com/OSGeo/grass/commit/7469244060e1d081a235e32de40d7b5b6b3fb4d6
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2025-07-29 (Tue, 29 Jul 2025)

  Changed paths:
    M include/grass/ogsf.h
    M lib/gis/distance.c
    M lib/gis/geodist.c
    M lib/ogsf/gs.c
    M lib/ogsf/gs3.c
    M lib/ogsf/gs_util.c
    M lib/ogsf/gsd_objs.c
    M lib/ogsf/gsdrape.c
    M lib/ogsf/gsget.c

  Log Message:
  -----------
  docs: Refactor, enhance and uniformize ogsf docstrings (#6130)


  Commit: ebe6f0621de0132db932be981c486248d2c2b5dd
      https://github.com/OSGeo/grass/commit/ebe6f0621de0132db932be981c486248d2c2b5dd
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2025-07-29 (Tue, 29 Jul 2025)

  Changed paths:
    M python/grass/tools/session_tools.py

  Log Message:
  -----------
  grass.tools: Rename tool name parameter (#6143)

This avoids conflict with name parameter passed in kwargs. Alternative name would be arg, but going with a more descriptive name instead.


  Commit: 03ce8c16d18d7c54f6a659ab1fd8bd4c24dd69c8
      https://github.com/OSGeo/grass/commit/03ce8c16d18d7c54f6a659ab1fd8bd4c24dd69c8
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2025-07-30 (Wed, 30 Jul 2025)

  Changed paths:
    M python/grass/tools/session_tools.py

  Log Message:
  -----------
  grass.tools: Improve the Tools object doc (#6144)

* grass.tools: Improve the Tools object doc

This improves different parts of the grass.tools documentation focusing on the objects, at this point especially the Tools.

These are pieces I identified when working on other PRs and I will keep the PR open as a draft for some time.

* Provide intro for run and call functions. Document env overwrite.


  Commit: 018040d3c3b8f3aebddf4686481a1c5179d0025c
      https://github.com/OSGeo/grass/commit/018040d3c3b8f3aebddf4686481a1c5179d0025c
  Author: Jayneel Shah <80264736+jayneel-shah18 at users.noreply.github.com>
  Date:   2025-07-30 (Wed, 30 Jul 2025)

  Changed paths:
    A raster3d/r3.gwflow/testsuite/test_r3_gwflow.py

  Log Message:
  -----------
  r3.gwflow: add test file (#6141)

This PR introduces a regression test suite for the `r3.gwflow` module in GRASS, designed to validate numerical consistency, solver equivalence, and sensitivity to boundary and conductivity conditions.


  Commit: 44a096121e9053a1afac686c225c3a212974ec70
      https://github.com/OSGeo/grass/commit/44a096121e9053a1afac686c225c3a212974ec70
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2025-07-30 (Wed, 30 Jul 2025)

  Changed paths:
    M .github/workflows/documentation.yml

  Log Message:
  -----------
  CI(docs): Enable bzlib, openmp, pthread, and readline support in build for doxygen docs (#6127)


  Commit: 1fe99184d2e7622ec67429c95962c9122adb05b4
      https://github.com/OSGeo/grass/commit/1fe99184d2e7622ec67429c95962c9122adb05b4
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2025-07-31 (Thu, 31 Jul 2025)

  Changed paths:
    M doc/interfaces_overview.md
    M doc/jupyter_intro.md
    M doc/python_intro.md
    M python/grass/docs/conf.py
    M python/grass/docs/src/index.rst

  Log Message:
  -----------
  doc: Replace grass.script by grass.tools in intros (#6111)

Replaces grass.script run_command calls by grass.tools in the main documentation (Markdown intro and overview) and adds it to Python doc (Sphinx rst).

Change the structure (headings) to focus on the use case, not the style of API. Splits and renames the part about grass.pygrass.

Replaces run_command by grass.tools in Jupyter examples, but with limited testing because that tutorial needs overall updates and polish.


  Commit: 9243fb5b04422e797c14c7122c4b0a4c4504dc05
      https://github.com/OSGeo/grass/commit/9243fb5b04422e797c14c7122c4b0a4c4504dc05
  Author: OSGeo Weblate <97247866+osgeoweblate at users.noreply.github.com>
  Date:   2025-08-01 (Fri, 01 Aug 2025)

  Changed paths:
    M locale/po/grasslibs_ar.po
    M locale/po/grasslibs_bn.po
    M locale/po/grasslibs_cs.po
    M locale/po/grasslibs_de.po
    M locale/po/grasslibs_el.po
    M locale/po/grasslibs_es.po
    M locale/po/grasslibs_fi.po
    M locale/po/grasslibs_fr.po
    M locale/po/grasslibs_hu.po
    M locale/po/grasslibs_id_ID.po
    M locale/po/grasslibs_it.po
    M locale/po/grasslibs_ja.po
    M locale/po/grasslibs_ko.po
    M locale/po/grasslibs_lv.po
    M locale/po/grasslibs_ml.po
    M locale/po/grasslibs_pl.po
    M locale/po/grasslibs_pt.po
    M locale/po/grasslibs_pt_BR.po
    M locale/po/grasslibs_ro.po
    M locale/po/grasslibs_ru.po
    M locale/po/grasslibs_si.po
    M locale/po/grasslibs_sl.po
    M locale/po/grasslibs_sv.po
    M locale/po/grasslibs_ta.po
    M locale/po/grasslibs_th.po
    M locale/po/grasslibs_tr.po
    M locale/po/grasslibs_uk.po
    M locale/po/grasslibs_vi.po
    M locale/po/grasslibs_zh.po
    M locale/po/grassmods_ar.po
    M locale/po/grassmods_bn.po
    M locale/po/grassmods_cs.po
    M locale/po/grassmods_de.po
    M locale/po/grassmods_el.po
    M locale/po/grassmods_es.po
    M locale/po/grassmods_fi.po
    M locale/po/grassmods_fr.po
    M locale/po/grassmods_hu.po
    M locale/po/grassmods_id_ID.po
    M locale/po/grassmods_it.po
    M locale/po/grassmods_ja.po
    M locale/po/grassmods_ko.po
    M locale/po/grassmods_lv.po
    M locale/po/grassmods_ml.po
    M locale/po/grassmods_pl.po
    M locale/po/grassmods_pt.po
    M locale/po/grassmods_pt_BR.po
    M locale/po/grassmods_ro.po
    M locale/po/grassmods_ru.po
    M locale/po/grassmods_si.po
    M locale/po/grassmods_sl.po
    M locale/po/grassmods_sv.po
    M locale/po/grassmods_ta.po
    M locale/po/grassmods_th.po
    M locale/po/grassmods_tr.po
    M locale/po/grassmods_uk.po
    M locale/po/grassmods_vi.po
    M locale/po/grassmods_zh.po
    M locale/po/grasswxpy_ar.po
    M locale/po/grasswxpy_bn.po
    M locale/po/grasswxpy_cs.po
    M locale/po/grasswxpy_de.po
    M locale/po/grasswxpy_el.po
    M locale/po/grasswxpy_es.po
    M locale/po/grasswxpy_fi.po
    M locale/po/grasswxpy_fr.po
    M locale/po/grasswxpy_hu.po
    M locale/po/grasswxpy_id_ID.po
    M locale/po/grasswxpy_it.po
    M locale/po/grasswxpy_ja.po
    M locale/po/grasswxpy_ko.po
    M locale/po/grasswxpy_lv.po
    M locale/po/grasswxpy_ml.po
    M locale/po/grasswxpy_pl.po
    M locale/po/grasswxpy_pt.po
    M locale/po/grasswxpy_pt_BR.po
    M locale/po/grasswxpy_ro.po
    M locale/po/grasswxpy_ru.po
    M locale/po/grasswxpy_si.po
    M locale/po/grasswxpy_sl.po
    M locale/po/grasswxpy_sv.po
    M locale/po/grasswxpy_ta.po
    M locale/po/grasswxpy_th.po
    M locale/po/grasswxpy_tr.po
    M locale/po/grasswxpy_uk.po
    M locale/po/grasswxpy_vi.po
    M locale/po/grasswxpy_zh.po

  Log Message:
  -----------
  Translations update from OSGeo Weblate (#6151)

Translated using Weblate (Swedish)

Currently translated at 100.0% (10048 of 10048 strings)

Translated using Weblate (French)

Currently translated at 90.0% (2954 of 3281 strings)

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.




Translate-URL: https://weblate.osgeo.org/projects/grass-gis/grasslibs/
Translate-URL: https://weblate.osgeo.org/projects/grass-gis/grassmods/
Translate-URL: https://weblate.osgeo.org/projects/grass-gis/grassmods/sv/
Translate-URL: https://weblate.osgeo.org/projects/grass-gis/grasswxpy/
Translate-URL: https://weblate.osgeo.org/projects/grass-gis/grasswxpy/fr/
Translation: GRASS GIS/grasslibs
Translation: GRASS GIS/grassmods
Translation: GRASS GIS/grasswxpy

Co-authored-by: Weblate <noreply at weblate.org>
Co-authored-by: Daniel Nylander <daniel at danielnylander.se>
Co-authored-by: Edouard Choiniere <echoix at users.noreply.weblate.osgeo.org>


  Commit: b7dd4c9d03740a98ea0e5534c1328791488ebd02
      https://github.com/OSGeo/grass/commit/b7dd4c9d03740a98ea0e5534c1328791488ebd02
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2025-08-02 (Sat, 02 Aug 2025)

  Changed paths:
    M .github/workflows/python-code-quality.yml
    M .pre-commit-config.yaml

  Log Message:
  -----------
  CI(deps): Update ruff to v0.12.7 (#6156)


  Commit: 2c231004122bdfe833ce5785428697ca23fb7144
      https://github.com/OSGeo/grass/commit/2c231004122bdfe833ce5785428697ca23fb7144
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2025-08-02 (Sat, 02 Aug 2025)

  Changed paths:
    M .github/workflows/codeql-analysis.yml
    M .github/workflows/python-code-quality.yml

  Log Message:
  -----------
  CI(deps): Update github/codeql-action action to v3.29.5 (#6155)


Compare: https://github.com/OSGeo/grass/compare/f79603fd21aa...2c231004122b

To unsubscribe from these emails, change your notification settings at https://github.com/OSGeo/grass/settings/notifications


More information about the grass-commit mailing list