Przeglądaj źródła

Move grass package content to directory named grass (#1356)

Before this change, the code of the Python package called grass which comes
with GRASS GIS is hidden among C libraries in lib/python.
This may look like it is a C library to use or to communicate with Python,
not a Python package.

For Python packages, the standard naming is a directory which matches the name of the package.
This allows, for example, to import files directly from the source code.

This PR moves content of lib/python to python/grass so that the name of the directory
matches the name of the resulting package (currently placed in etc/python).

This does not change Sphinx which continues to ignore the top-level grass package
(this is future work).

Fixes #1100.
Vaclav Petras 4 lat temu
rodzic
commit
0c83c976b2
100 zmienionych plików z 39 dodań i 28 usunięć
  1. 1 1
      .github/workflows/flake8.yml
  2. 2 2
      .gitignore
  3. 2 1
      Makefile
  4. 1 1
      doc/howto_release.md
  5. 3 3
      doc/infrastructure.md
  6. 1 1
      include/Make/Doxyfile_arch_html.in
  7. 1 1
      include/Make/Doxyfile_arch_latex.in
  8. 12 11
      include/Make/Sphinx.make
  9. 0 1
      lib/Makefile
  10. 3 3
      lib/init/grass.py
  11. 10 0
      python/Makefile
  12. 0 0
      python/grass/.flake8
  13. 0 0
      python/grass/Makefile
  14. 0 0
      python/grass/__init__.py
  15. 0 0
      python/grass/app/Makefile
  16. 0 0
      python/grass/app/__init__.py
  17. 0 0
      python/grass/app/data.py
  18. 0 0
      python/grass/bandref/Makefile
  19. 0 0
      python/grass/bandref/__init__.py
  20. 0 0
      python/grass/bandref/reader.py
  21. 0 0
      python/grass/ctypes/Makefile
  22. 0 0
      python/grass/ctypes/__init__.py
  23. 0 0
      python/grass/ctypes/ctypesgen.py
  24. 0 0
      python/grass/ctypes/ctypesgencore/LICENSE
  25. 0 0
      python/grass/ctypes/ctypesgencore/__init__.py
  26. 0 0
      python/grass/ctypes/ctypesgencore/ctypedescs.py
  27. 0 0
      python/grass/ctypes/ctypesgencore/descriptions.py
  28. 0 0
      python/grass/ctypes/ctypesgencore/expressions.py
  29. 0 0
      python/grass/ctypes/ctypesgencore/libraryloader.py
  30. 0 0
      python/grass/ctypes/ctypesgencore/messages.py
  31. 0 0
      python/grass/ctypes/ctypesgencore/options.py
  32. 0 0
      python/grass/ctypes/ctypesgencore/parser/__init__.py
  33. 0 0
      python/grass/ctypes/ctypesgencore/parser/cdeclarations.py
  34. 0 0
      python/grass/ctypes/ctypesgencore/parser/cgrammar.py
  35. 0 0
      python/grass/ctypes/ctypesgencore/parser/cparser.py
  36. 0 0
      python/grass/ctypes/ctypesgencore/parser/ctypesparser.py
  37. 0 0
      python/grass/ctypes/ctypesgencore/parser/datacollectingparser.py
  38. 0 0
      python/grass/ctypes/ctypesgencore/parser/lex.py
  39. 0 0
      python/grass/ctypes/ctypesgencore/parser/parsetab.py
  40. 0 0
      python/grass/ctypes/ctypesgencore/parser/pplexer.py
  41. 0 0
      python/grass/ctypes/ctypesgencore/parser/preprocessor.py
  42. 0 0
      python/grass/ctypes/ctypesgencore/parser/yacc.py
  43. 0 0
      python/grass/ctypes/ctypesgencore/printer/__init__.py
  44. 0 0
      python/grass/ctypes/ctypesgencore/printer/defaultheader.py
  45. 0 0
      python/grass/ctypes/ctypesgencore/printer/preamble.py
  46. 0 0
      python/grass/ctypes/ctypesgencore/printer/printer.py
  47. 0 0
      python/grass/ctypes/ctypesgencore/printer/test.py
  48. 0 0
      python/grass/ctypes/ctypesgencore/processor/__init__.py
  49. 0 0
      python/grass/ctypes/ctypesgencore/processor/dependencies.py
  50. 0 0
      python/grass/ctypes/ctypesgencore/processor/operations.py
  51. 0 0
      python/grass/ctypes/ctypesgencore/processor/pipeline.py
  52. 0 0
      python/grass/ctypes/fix.sed
  53. 0 0
      python/grass/ctypes/loader.py
  54. 0 0
      python/grass/ctypes/preamble.py
  55. 0 0
      python/grass/docs/Makefile
  56. 0 0
      python/grass/docs/_static/pygrass.css
  57. 0 0
      python/grass/docs/_templates/layout.html.template
  58. 0 0
      python/grass/docs/_templates/oholosidebar.html
  59. 0 0
      python/grass/docs/conf.py
  60. 0 0
      python/grass/docs/make.bat
  61. 0 0
      python/grass/docs/src/Temporal-Framework-API-Description.pdf
  62. 2 2
      lib/python/docs/src/gunittest_running_tests.rst
  63. 0 0
      python/grass/docs/src/gunittest_testing.rst
  64. 0 0
      python/grass/docs/src/index.rst
  65. 0 0
      python/grass/docs/src/pygrass_gis.rst
  66. 0 0
      python/grass/docs/src/pygrass_index.rst
  67. 0 0
      python/grass/docs/src/pygrass_messages.rst
  68. 0 0
      python/grass/docs/src/pygrass_modules.rst
  69. 0 0
      python/grass/docs/src/pygrass_raster.rst
  70. 0 0
      python/grass/docs/src/pygrass_vector.rst
  71. 0 0
      python/grass/docs/src/script_intro.rst
  72. 0 0
      python/grass/docs/src/temporal_framework.rst
  73. 0 0
      python/grass/exceptions/Makefile
  74. 0 0
      python/grass/exceptions/__init__.py
  75. 0 0
      python/grass/exceptions/testsuite/test_ScriptError.py
  76. 0 0
      python/grass/grassdb/Makefile
  77. 0 0
      python/grass/grassdb/__init__.py
  78. 0 0
      python/grass/grassdb/checks.py
  79. 0 0
      python/grass/grassdb/create.py
  80. 0 0
      python/grass/grassdb/data.py
  81. 0 0
      python/grass/grassdb/manage.py
  82. 0 0
      python/grass/gunittest/Makefile
  83. 0 0
      python/grass/gunittest/README.md
  84. 0 0
      python/grass/gunittest/__init__.py
  85. 0 0
      python/grass/gunittest/case.py
  86. 0 0
      python/grass/gunittest/checkers.py
  87. 0 0
      python/grass/gunittest/gmodules.py
  88. 0 0
      python/grass/gunittest/gutils.py
  89. 0 0
      python/grass/gunittest/invoker.py
  90. 0 0
      python/grass/gunittest/loader.py
  91. 0 0
      python/grass/gunittest/main.py
  92. 0 0
      python/grass/gunittest/multireport.py
  93. 1 1
      lib/python/gunittest/multirunner.py
  94. 0 0
      python/grass/gunittest/reporters.py
  95. 0 0
      python/grass/gunittest/runner.py
  96. 0 0
      python/grass/gunittest/testsuite/data/samplecode/fake_code.py
  97. 0 0
      python/grass/gunittest/testsuite/data/samplecode/submodule_errors/fake_code.py
  98. 0 0
      python/grass/gunittest/testsuite/data/samplecode/submodule_errors/subsubmodule_errors/fake_code.py
  99. 0 0
      python/grass/gunittest/testsuite/data/samplecode/submodule_errors/subsubmodule_errors/testsuite/test_error.py
  100. 0 0
      lib/python/gunittest/testsuite/data/samplecode/submodule_errors/subsubmodule_errors/testsuite/test_import_error.py

+ 1 - 1
.github/workflows/flake8.yml

@@ -13,7 +13,7 @@ jobs:
       matrix:
         directory:
         - gui/wxpython
-        - lib/python
+        - python/grass
         - lib/init
         - scripts
         - temporal

+ 2 - 2
.gitignore

@@ -24,8 +24,8 @@ lib/db/sqlp/sqlp.output
 lib/db/sqlp/sqlp.tab.c
 lib/db/sqlp/sqlp.tab.h
 lib/db/sqlp/sqlp.yy.c
-lib/python/ctypes/ctypesgencore/parser/lextab.py
-lib/python/script/setup.py.tmp
+python/grass/ctypes/ctypesgencore/parser/lextab.py
+python/grass/script/setup.py.tmp
 raster/r.mapcalc/mapcalc.output
 raster/r.mapcalc/mapcalc.tab.c
 raster/r.mapcalc/mapcalc.tab.h

+ 2 - 1
Makefile

@@ -29,6 +29,7 @@ DIRS = \
 	utils \
 	include \
 	lib \
+	python \
 	db \
 	display \
 	general \
@@ -97,7 +98,7 @@ LIBDIRS = \
 	lib/db \
 	lib/vector \
 	db/drivers \
-	lib/python
+	python
 
 # Compile libraries only
 libs:

+ 1 - 1
doc/howto_release.md

@@ -84,7 +84,7 @@ find . -name '*.o'    | xargs rm
 find . -name '*.pyc'  | xargs rm
 find . -name 'OBJ.*'  | xargs rm -r
 find . -name '__pycache__' | xargs rm -r
-rm -f lib/python/ctypes/ctypesgencore/parser/lextab.py
+rm -f python/grass/ctypes/ctypesgencore/parser/lextab.py
 rm -f gui/wxpython/menustrings.py gui/wxpython/build_ext.pyc \
   gui/wxpython/xml/menudata.xml gui/wxpython/xml/module_tree_menudata.xml
 chmod -R a+r *

+ 3 - 3
doc/infrastructure.md

@@ -284,9 +284,9 @@ Maintainer: Vaclav Petras
 * CI workflow with:
     * A build job which is not parallelized and is meant for clear & relatively fast check of compilation and building in general. (Duplicating what is running on Travis)
     * A test job which of course needs to build, but the main focus is to run tests, so the compilation is parallelized (depending on nproc) and thus potentially less readable. This runs the whole test suite. (You need to run it locally to see the actual error, but you can see which tests are failing.)
-* Static code analysis/Code quality check using Flake8 with separate tests for lib/python, gui/wxpython, scripts and temporal directories.
-    * lib/python uses configuration which ignores code in testsuite directories and ignores a lot of errors.
-    * The other directories use the default settings and the failure is ignored. (Neither is an ideal solution, but we can see and change it based on whatever is more advantageous for getting it fixed.)
+* Static code analysis/Code quality check using Flake8 with separate checks for python/grass, gui/wxpython, scripts and temporal directories.
+    * Configurations ignore different lists of Flake8 errors. The idea is to reduce that to minimum.
+    * Code in testsuite directories is also ignored for now, but should not be in the future.
 
 Helper files placed to .github/workflows
 

+ 1 - 1
include/Make/Doxyfile_arch_html.in

@@ -692,9 +692,9 @@ EXCLUDE                = bin.@ARCH@ \
                          lib/gpde/test \
                          lib/linkm/test \
                          lib/raster3d/test \
-                         lib/python \
                          lib/vector/dglib/examples \
                          lib/vector/rtree/docs \
+                         python \
                          locale \
                          macosx \
                          man \

+ 1 - 1
include/Make/Doxyfile_arch_latex.in

@@ -692,9 +692,9 @@ EXCLUDE                = bin.@ARCH@ \
                          lib/gpde/test \
                          lib/linkm/test \
                          lib/raster3d/test \
-                         lib/python \
                          lib/vector/dglib/examples \
                          lib/vector/rtree/docs \
+                         python \
                          locale \
                          macosx \
                          man \

+ 12 - 11
include/Make/Sphinx.make

@@ -24,30 +24,31 @@ checksphinx:
 	@(type $(SPHINXBUILD) > /dev/null || (echo "ERROR: Install 'sphinx-build' software first (get from http://sphinx-doc.org)" && exit 1))
 	@(type $(SPHINXAPIDOC) > /dev/null || (echo "ERROR: Install 'sphinx-apidoc' software first (get from http://sphinx-doc.org)" && exit 1))
 
+DOCSDIR = $(MODULE_TOPDIR)/python/grass/docs/
+
 cleansphinx:
 	$(MAKE) -C $(MODULE_TOPDIR)/gui/wxpython/docs/wxgui_sphinx/ wxguiclean
-	$(MAKE) -C $(MODULE_TOPDIR)/lib/python/docs libpythonclean
+	$(MAKE) -C $(DOCSDIR) libpythonclean
 
 sphinxdoc: checksphinx cleansphinx
 	$(MAKE) -C $(MODULE_TOPDIR)/gui/wxpython/docs/wxgui_sphinx/ wxguiapidoc
 	$(MAKE) -C $(MODULE_TOPDIR)/gui/wxpython/docs/wxgui_sphinx/ wxguihtml
-	$(MAKE) -C $(MODULE_TOPDIR)/lib/python/docs/ libpythonapidoc
-	$(MAKE) -C $(MODULE_TOPDIR)/lib/python/docs/ libpythonhtml
+	$(MAKE) -C $(DOCSDIR) libpythonapidoc
+	$(MAKE) -C $(DOCSDIR) libpythonhtml
 
 sphinxman:checksphinx cleansphinx
 	$(MAKE) -C $(MODULE_TOPDIR)/gui/wxpython/docs/wxgui_sphinx/ wxguiapidoc
 	$(MAKE) -C $(MODULE_TOPDIR)/gui/wxpython/docs/wxgui_sphinx/ wxguiman
-	$(MAKE) -C $(MODULE_TOPDIR)/lib/python/docs/ libpythonapidoc
-	$(MAKE) -C $(MODULE_TOPDIR)/lib/python/docs/ libpythonman
+	$(MAKE) -C $(DOCSDIR) libpythonapidoc
+	$(MAKE) -C $(DOCSDIR) libpythonman
 
 cleansphinxlib:
-	$(MAKE) -C $(MODULE_TOPDIR)/lib/python/docs libpythonclean
+	$(MAKE) -C $(DOCSDIR) libpythonclean
 
 sphinxdoclib: checksphinx cleansphinxlib
-	$(MAKE) -C $(MODULE_TOPDIR)/lib/python/docs/ libpythonapidoc
-	$(MAKE) -C $(MODULE_TOPDIR)/lib/python/docs/ libpythonhtml
+	$(MAKE) -C $(DOCSDIR) libpythonapidoc
+	$(MAKE) -C $(DOCSDIR) libpythonhtml
 
 sphinxmanlib:checksphinx cleansphinxlib
-	$(MAKE) -C $(MODULE_TOPDIR)/lib/python/docs/ libpythonapidoc
-	$(MAKE) -C $(MODULE_TOPDIR)/lib/python/docs/ libpythonman
-
+	$(MAKE) -C $(DOCSDIR) libpythonapidoc
+	$(MAKE) -C $(DOCSDIR) libpythonman

+ 0 - 1
lib/Makefile

@@ -41,7 +41,6 @@ SUBDIRS = \
 	ogsf \
 	nviz \
 	temporal \
-	python \
 	iostream \
 	manage \
 	calc

+ 3 - 3
lib/init/grass.py

@@ -102,7 +102,7 @@ MACOSX = "darwin" in sys.platform
 
 def decode(bytes_, encoding=ENCODING):
     """Decode bytes with default locale and return (unicode) string
-    Adapted from lib/python/core/utils.py
+    Adapted from grass.script.core.utils.
 
     No-op if parameter is not bytes (assumed unicode string).
 
@@ -123,7 +123,7 @@ def decode(bytes_, encoding=ENCODING):
 
 def encode(string, encoding=ENCODING):
     """Encode string with default locale and return bytes with that encoding
-    Adapted from lib/python/core/utils.py
+    Adapted from grass.script.core.utils.
 
     No-op if parameter is bytes (assumed already encoded).
     This ensures garbage in, garbage out.
@@ -695,7 +695,7 @@ def set_paths(grass_config_dir):
         # the env var PYTHONPATH is only evaluated when python is started,
         # thus:
         sys.path.append(pythonpath)
-        # now we can import stuff from GRASS lib/python
+        # now we can import stuff from grass package
 
     # set path for the GRASS man pages
     grass_man_path = gpath("docs", "man")

+ 10 - 0
python/Makefile

@@ -0,0 +1,10 @@
+MODULE_TOPDIR = ..
+
+include $(MODULE_TOPDIR)/include/Make/Vars.make
+
+SUBDIRS = \
+	grass
+
+include $(MODULE_TOPDIR)/include/Make/Dir.make
+
+default: subdirs

lib/python/.flake8 → python/grass/.flake8


lib/python/Makefile → python/grass/Makefile


lib/python/__init__.py → python/grass/__init__.py


lib/python/app/Makefile → python/grass/app/Makefile


lib/python/app/__init__.py → python/grass/app/__init__.py


lib/python/app/data.py → python/grass/app/data.py


lib/python/bandref/Makefile → python/grass/bandref/Makefile


lib/python/bandref/__init__.py → python/grass/bandref/__init__.py


lib/python/bandref/reader.py → python/grass/bandref/reader.py


lib/python/ctypes/Makefile → python/grass/ctypes/Makefile


lib/python/ctypes/__init__.py → python/grass/ctypes/__init__.py


lib/python/ctypes/ctypesgen.py → python/grass/ctypes/ctypesgen.py


lib/python/ctypes/ctypesgencore/LICENSE → python/grass/ctypes/ctypesgencore/LICENSE


lib/python/ctypes/ctypesgencore/__init__.py → python/grass/ctypes/ctypesgencore/__init__.py


lib/python/ctypes/ctypesgencore/ctypedescs.py → python/grass/ctypes/ctypesgencore/ctypedescs.py


lib/python/ctypes/ctypesgencore/descriptions.py → python/grass/ctypes/ctypesgencore/descriptions.py


lib/python/ctypes/ctypesgencore/expressions.py → python/grass/ctypes/ctypesgencore/expressions.py


lib/python/ctypes/ctypesgencore/libraryloader.py → python/grass/ctypes/ctypesgencore/libraryloader.py


lib/python/ctypes/ctypesgencore/messages.py → python/grass/ctypes/ctypesgencore/messages.py


lib/python/ctypes/ctypesgencore/options.py → python/grass/ctypes/ctypesgencore/options.py


lib/python/ctypes/ctypesgencore/parser/__init__.py → python/grass/ctypes/ctypesgencore/parser/__init__.py


lib/python/ctypes/ctypesgencore/parser/cdeclarations.py → python/grass/ctypes/ctypesgencore/parser/cdeclarations.py


lib/python/ctypes/ctypesgencore/parser/cgrammar.py → python/grass/ctypes/ctypesgencore/parser/cgrammar.py


lib/python/ctypes/ctypesgencore/parser/cparser.py → python/grass/ctypes/ctypesgencore/parser/cparser.py


lib/python/ctypes/ctypesgencore/parser/ctypesparser.py → python/grass/ctypes/ctypesgencore/parser/ctypesparser.py


lib/python/ctypes/ctypesgencore/parser/datacollectingparser.py → python/grass/ctypes/ctypesgencore/parser/datacollectingparser.py


lib/python/ctypes/ctypesgencore/parser/lex.py → python/grass/ctypes/ctypesgencore/parser/lex.py


lib/python/ctypes/ctypesgencore/parser/parsetab.py → python/grass/ctypes/ctypesgencore/parser/parsetab.py


lib/python/ctypes/ctypesgencore/parser/pplexer.py → python/grass/ctypes/ctypesgencore/parser/pplexer.py


lib/python/ctypes/ctypesgencore/parser/preprocessor.py → python/grass/ctypes/ctypesgencore/parser/preprocessor.py


lib/python/ctypes/ctypesgencore/parser/yacc.py → python/grass/ctypes/ctypesgencore/parser/yacc.py


lib/python/ctypes/ctypesgencore/printer/__init__.py → python/grass/ctypes/ctypesgencore/printer/__init__.py


lib/python/ctypes/ctypesgencore/printer/defaultheader.py → python/grass/ctypes/ctypesgencore/printer/defaultheader.py


lib/python/ctypes/ctypesgencore/printer/preamble.py → python/grass/ctypes/ctypesgencore/printer/preamble.py


lib/python/ctypes/ctypesgencore/printer/printer.py → python/grass/ctypes/ctypesgencore/printer/printer.py


lib/python/ctypes/ctypesgencore/printer/test.py → python/grass/ctypes/ctypesgencore/printer/test.py


lib/python/ctypes/ctypesgencore/processor/__init__.py → python/grass/ctypes/ctypesgencore/processor/__init__.py


lib/python/ctypes/ctypesgencore/processor/dependencies.py → python/grass/ctypes/ctypesgencore/processor/dependencies.py


lib/python/ctypes/ctypesgencore/processor/operations.py → python/grass/ctypes/ctypesgencore/processor/operations.py


lib/python/ctypes/ctypesgencore/processor/pipeline.py → python/grass/ctypes/ctypesgencore/processor/pipeline.py


lib/python/ctypes/fix.sed → python/grass/ctypes/fix.sed


lib/python/ctypes/loader.py → python/grass/ctypes/loader.py


lib/python/ctypes/preamble.py → python/grass/ctypes/preamble.py


lib/python/docs/Makefile → python/grass/docs/Makefile


lib/python/docs/_static/pygrass.css → python/grass/docs/_static/pygrass.css


lib/python/docs/_templates/layout.html.template → python/grass/docs/_templates/layout.html.template


lib/python/docs/_templates/oholosidebar.html → python/grass/docs/_templates/oholosidebar.html


lib/python/docs/conf.py → python/grass/docs/conf.py


lib/python/docs/make.bat → python/grass/docs/make.bat


lib/python/docs/src/Temporal-Framework-API-Description.pdf → python/grass/docs/src/Temporal-Framework-API-Description.pdf


+ 2 - 2
lib/python/docs/src/gunittest_running_tests.rst

@@ -110,8 +110,8 @@ Example Bash script to run be used as a cron job
     
     # necessary hardcoded GRASS paths
     GRASSDIST_PYTHON="$GRASSDIST/etc/python"
-    GRASS_MULTI_RUNNER="$GRASSSRC/lib/python/gunittest/multirunner.py"
-    GRASS_MULTI_REPORTER="$GRASSSRC/lib/python/gunittest/multireport.py"
+    GRASS_MULTI_RUNNER="$GRASSSRC/python/grass/gunittest/multirunner.py"
+    GRASS_MULTI_REPORTER="$GRASSSRC/python/grass/gunittest/multireport.py"
 
     DATE_FLAGS="--utc +%Y-%m-%d-%H-%M"
     NOW=$(date $DATE_FLAGS)

lib/python/docs/src/gunittest_testing.rst → python/grass/docs/src/gunittest_testing.rst


lib/python/docs/src/index.rst → python/grass/docs/src/index.rst


lib/python/docs/src/pygrass_gis.rst → python/grass/docs/src/pygrass_gis.rst


lib/python/docs/src/pygrass_index.rst → python/grass/docs/src/pygrass_index.rst


lib/python/docs/src/pygrass_messages.rst → python/grass/docs/src/pygrass_messages.rst


lib/python/docs/src/pygrass_modules.rst → python/grass/docs/src/pygrass_modules.rst


lib/python/docs/src/pygrass_raster.rst → python/grass/docs/src/pygrass_raster.rst


lib/python/docs/src/pygrass_vector.rst → python/grass/docs/src/pygrass_vector.rst


lib/python/docs/src/script_intro.rst → python/grass/docs/src/script_intro.rst


lib/python/docs/src/temporal_framework.rst → python/grass/docs/src/temporal_framework.rst


lib/python/exceptions/Makefile → python/grass/exceptions/Makefile


lib/python/exceptions/__init__.py → python/grass/exceptions/__init__.py


lib/python/exceptions/testsuite/test_ScriptError.py → python/grass/exceptions/testsuite/test_ScriptError.py


lib/python/grassdb/Makefile → python/grass/grassdb/Makefile


lib/python/grassdb/__init__.py → python/grass/grassdb/__init__.py


lib/python/grassdb/checks.py → python/grass/grassdb/checks.py


lib/python/grassdb/create.py → python/grass/grassdb/create.py


lib/python/grassdb/data.py → python/grass/grassdb/data.py


lib/python/grassdb/manage.py → python/grass/grassdb/manage.py


lib/python/gunittest/Makefile → python/grass/gunittest/Makefile


lib/python/gunittest/README.md → python/grass/gunittest/README.md


lib/python/gunittest/__init__.py → python/grass/gunittest/__init__.py


lib/python/gunittest/case.py → python/grass/gunittest/case.py


lib/python/gunittest/checkers.py → python/grass/gunittest/checkers.py


lib/python/gunittest/gmodules.py → python/grass/gunittest/gmodules.py


lib/python/gunittest/gutils.py → python/grass/gunittest/gutils.py


lib/python/gunittest/invoker.py → python/grass/gunittest/invoker.py


lib/python/gunittest/loader.py → python/grass/gunittest/loader.py


lib/python/gunittest/main.py → python/grass/gunittest/main.py


lib/python/gunittest/multireport.py → python/grass/gunittest/multireport.py


+ 1 - 1
lib/python/gunittest/multirunner.py

@@ -153,7 +153,7 @@ def main():
 
     if main_report:
         # TODO: solve the path to source code (work now only for grass source code)
-        arguments = [sys.executable, grasssrc + '/lib/python/guittest/' + 'multireport.py', '--timestapms']
+        arguments = [sys.executable, grasssrc + '/python/grass/gunittest/' + 'multireport.py', '--timestapms']
         arguments.extend(reports)
         p = subprocess.Popen(arguments)
         returncode = p.wait()

lib/python/gunittest/reporters.py → python/grass/gunittest/reporters.py


lib/python/gunittest/runner.py → python/grass/gunittest/runner.py


lib/python/gunittest/testsuite/data/samplecode/fake_code.py → python/grass/gunittest/testsuite/data/samplecode/fake_code.py


lib/python/gunittest/testsuite/data/samplecode/submodule_errors/fake_code.py → python/grass/gunittest/testsuite/data/samplecode/submodule_errors/fake_code.py


lib/python/gunittest/testsuite/data/samplecode/submodule_errors/subsubmodule_errors/fake_code.py → python/grass/gunittest/testsuite/data/samplecode/submodule_errors/subsubmodule_errors/fake_code.py


lib/python/gunittest/testsuite/data/samplecode/submodule_errors/subsubmodule_errors/testsuite/test_error.py → python/grass/gunittest/testsuite/data/samplecode/submodule_errors/subsubmodule_errors/testsuite/test_error.py


+ 0 - 0
lib/python/gunittest/testsuite/data/samplecode/submodule_errors/subsubmodule_errors/testsuite/test_import_error.py


Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików