From 0e34318e0ab5796d1aa35bc4023a316a72a6bbad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Laurent?= <francois.laurent@posteo.net>
Date: Mon, 6 Mar 2023 13:41:16 +0100
Subject: [PATCH] --help argument to tagging-backend

---
 src/taggingbackends/data/labels.py | 4 +++-
 src/taggingbackends/main.py        | 5 +++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/taggingbackends/data/labels.py b/src/taggingbackends/data/labels.py
index e2b93ad..fc9bf9b 100644
--- a/src/taggingbackends/data/labels.py
+++ b/src/taggingbackends/data/labels.py
@@ -177,8 +177,10 @@ class Labels:
             elif len(key) == 3:
                 run, larva, timestamp = key
                 self.set_timestep(run, larva, timestamp, value)
+            elif len(key) < 1:
+                raise IndexError("too few dimensions")
             else:
-                raise IndexError("too few of many dimensions")
+                raise IndexError("too many dimensions")
         else:
             run = key
             self.set_run(run, value)
diff --git a/src/taggingbackends/main.py b/src/taggingbackends/main.py
index dde5335..f530b14 100644
--- a/src/taggingbackends/main.py
+++ b/src/taggingbackends/main.py
@@ -14,6 +14,7 @@ Usage:  tagging-backend [train|predict] --model-instance <name>
         tagging-backend train ... --skip-make-dataset --skip-build-features
         tagging-backend predict ... --make-dataset --build-features
         tagging-backend predict ... --sandbox <token>
+        tagging-backend --help
 
 `tagging-backend` typically is run using `poetry run`.
 A name must be provided to identify the trained model and its location within
@@ -83,9 +84,9 @@ def main(fun=None):
             format="%(levelname)s:%(name)s: %(message)s")
     if fun is None:
         # called by scripts/tagging-backend
-        if not sys.argv[1:]:
+        if not sys.argv[1:] or any(arg == '--help' for arg in sys.argv):
             help(True)
-            sys.exit("too few input arguments; subcommand expected: 'train' or 'predict'")
+            #sys.exit("too few input arguments; subcommand expected: 'train' or 'predict'")
             return
         train_or_predict = sys.argv[1]
         project_dir = model_instance = None
-- 
GitLab