diff --git a/lib/init/grass.py b/lib/init/grass.py index 14069199040..7b123ffcc1a 100755 --- a/lib/init/grass.py +++ b/lib/init/grass.py @@ -2109,10 +2109,14 @@ def done_message(): def clean_temp(): - message(_("Cleaning up temporary files...")) - nul = open(os.devnull, "w") - call([gpath("etc", "clean_temp")], stdout=nul) - nul.close() + """Clean mapset temporary directory + + Simple wrapper around the library function avoiding the need to solve imports at + the top level. This can hopefully be avoided in the future. + """ + from grass.script import setup as gsetup + + gsetup.clean_temp() def clean_all(): diff --git a/python/grass/script/setup.py b/python/grass/script/setup.py index 1cfc36f56b3..b0cad2893e8 100644 --- a/python/grass/script/setup.py +++ b/python/grass/script/setup.py @@ -446,13 +446,14 @@ def call(cmd, **kwargs): def clean_temp(): - from grass.script import core as gcore + """Clean mapset temporary directory""" + # Lazy-importing to reduce dependencies (this can be eventually removed). + # pylint: disable=import-outside-toplevel + import grass.script as gs - gcore.message(_("Cleaning up temporary files...")) - nul = open(os.devnull, "w") + gs.verbose(_("Cleaning up temporary files...")) gisbase = os.environ["GISBASE"] - call([os.path.join(gisbase, "etc", "clean_temp")], stdout=nul) - nul.close() + call([os.path.join(gisbase, "etc", "clean_temp")], stdout=subprocess.DEVNULL) def finish():