]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
manager: kresctl: completion options in dict instead of in list
authorAleš Mrázek <ales.mrazek@nic.cz>
Fri, 30 Sep 2022 13:23:38 +0000 (15:23 +0200)
committerAleš Mrázek <ales.mrazek@nic.cz>
Tue, 10 Jan 2023 18:57:14 +0000 (19:57 +0100)
manager/knot_resolver_manager/cli/cmd/completion.py
manager/knot_resolver_manager/cli/cmd/config.py
manager/knot_resolver_manager/cli/cmd/convert.py
manager/knot_resolver_manager/cli/cmd/exit.py
manager/knot_resolver_manager/cli/cmd/metrics.py
manager/knot_resolver_manager/cli/cmd/schema.py
manager/knot_resolver_manager/cli/cmd/stop.py
manager/knot_resolver_manager/cli/command.py

index 3dc563112ccf3c7ac783e24cb532177b402e0f37..88de042fdaf85172344dd0ea985f373de9be292e 100644 (file)
@@ -31,12 +31,12 @@ class CompletionCommand(Command):
         return completion, CompletionCommand
 
     @staticmethod
-    def completion(args: List[str], parser: argparse.ArgumentParser) -> List[str]:
-        return []
+    def completion(args: List[str], parser: argparse.ArgumentParser) -> Dict[str, Optional[str]]:
+        return {}
 
     def run(self, args: CommandArgs) -> None:
         parser = args.parser
-        comp: List[str] = []
+        comp: Dict[str, Optional[str]] = {}
 
         top_comp: Dict[str, Optional[str]] = {}
 
@@ -57,7 +57,7 @@ class CompletionCommand(Command):
                         subparser: argparse.ArgumentParser = action.choices[arg]
                         command: Command = subparser._defaults["command"]
 
-                        comp += command.completion(self.unknown_args, subparser)
+                        comp.update(command.completion(self.unknown_args, subparser))
                     else:
                         pass
 
index e09a4b8cd37fa2b24b62fa36c73311df1e038cc4..c5febc3bd964ee05ae5e15965d050d9550b7b12c 100644 (file)
@@ -1,7 +1,7 @@
 import argparse
 import json
 from enum import Enum
-from typing import List, Optional, Tuple, Type
+from typing import Dict, List, Optional, Tuple, Type
 
 import yaml
 from typing_extensions import Literal
@@ -109,8 +109,9 @@ class ConfigCommand(Command):
         return config, ConfigCommand
 
     @staticmethod
-    def completion(args: List[str], parser: argparse.ArgumentParser) -> List[str]:
-        return []
+    def completion(args: List[str], parser: argparse.ArgumentParser) -> Dict[str, Optional[str]]:
+        comp: Dict[str, Optional[str]] = {}
+        return comp
 
     def run(self, args: CommandArgs) -> None:
         if not self.path.startswith("/"):
index ae8603612f9e34ae5946b4a6a0030de7c83ce695..a820a5aaa9b6dabcc740c99b3a2c13627e705353 100644 (file)
@@ -1,5 +1,5 @@
 import argparse
-from typing import List, Optional, Tuple, Type
+from typing import Dict, List, Optional, Tuple, Type
 
 from knot_resolver_manager.cli.command import Command, CommandArgs, register_command
 from knot_resolver_manager.datamodel import KresConfig
@@ -37,8 +37,8 @@ class ConvertCommand(Command):
         return convert, ConvertCommand
 
     @staticmethod
-    def completion(args: List[str], parser: argparse.ArgumentParser) -> List[str]:
-        return []
+    def completion(args: List[str], parser: argparse.ArgumentParser) -> Dict[str, Optional[str]]:
+        return {}
 
     def run(self, args: CommandArgs) -> None:
 
index f3a0e40507f5dd499aca1bc54e7d58120f726b5f..9d351f89c45c7080851956598c32e562a8db15f0 100644 (file)
@@ -1,6 +1,6 @@
 import argparse
 import sys
-from typing import List, Tuple, Type
+from typing import Dict, List, Optional, Tuple, Type
 
 from knot_resolver_manager.cli.command import Command, CommandArgs, register_command
 
@@ -14,8 +14,8 @@ class ExitCommand(Command):
         sys.exit()
 
     @staticmethod
-    def completion(args: List[str], parser: argparse.ArgumentParser) -> List[str]:
-        return []
+    def completion(args: List[str], parser: argparse.ArgumentParser) -> Dict[str, Optional[str]]:
+        return {}
 
     @staticmethod
     def register_args_subparser(
index 6e74b45221d4a589f11a2e52aa08e17ced91428d..328440246d43a971ab04f2e72df193523df8673a 100644 (file)
@@ -1,5 +1,5 @@
 import argparse
-from typing import List, Optional, Tuple, Type
+from typing import Dict, List, Optional, Tuple, Type
 
 from knot_resolver_manager.cli.command import Command, CommandArgs, register_command
 from knot_resolver_manager.utils.requests import request
@@ -21,8 +21,8 @@ class MetricsCommand(Command):
         return metrics, MetricsCommand
 
     @staticmethod
-    def completion(args: List[str], parser: argparse.ArgumentParser) -> List[str]:
-        return []
+    def completion(args: List[str], parser: argparse.ArgumentParser) -> Dict[str, Optional[str]]:
+        return {}
 
     def run(self, args: CommandArgs) -> None:
         url = f"{args.socket}/metrics"
index 7f4f63fae531f3b6c599e35c05f7eecc6c44b3ad..eace243e2f12d37d07cc1eb1f5aee5b5266184e3 100644 (file)
@@ -1,6 +1,6 @@
 import argparse
 import json
-from typing import List, Optional, Tuple, Type
+from typing import Dict, List, Optional, Tuple, Type
 
 from knot_resolver_manager.cli.command import Command, CommandArgs, register_command
 from knot_resolver_manager.datamodel.config_schema import KresConfig
@@ -22,8 +22,8 @@ class SchemaCommand(Command):
         return schema, SchemaCommand
 
     @staticmethod
-    def completion(args: List[str], parser: argparse.ArgumentParser) -> List[str]:
-        return []
+    def completion(args: List[str], parser: argparse.ArgumentParser) -> Dict[str, Optional[str]]:
+        return {}
 
     def run(self, args: CommandArgs) -> None:
         schema = json.dumps(KresConfig.json_schema(), indent=4)
index 9d46d9781a789c376e806750956bfc5eb22b0a30..01e9f43a6999f88fc55b0eb31264fc15ee85e20b 100644 (file)
@@ -1,5 +1,5 @@
 import argparse
-from typing import List, Tuple, Type
+from typing import Dict, List, Optional, Tuple, Type
 
 from knot_resolver_manager.cli.command import Command, CommandArgs, register_command
 from knot_resolver_manager.utils.requests import request
@@ -16,8 +16,8 @@ class StopCommand(Command):
         print(response)
 
     @staticmethod
-    def completion(args: List[str], parser: argparse.ArgumentParser) -> List[str]:
-        return []
+    def completion(args: List[str], parser: argparse.ArgumentParser) -> Dict[str, Optional[str]]:
+        return {}
 
     @staticmethod
     def register_args_subparser(
index c3189485ce4690aa35c58918148b5d30b562a77f..f3228690e516dd98e24c98de2fab1a41789cb574 100644 (file)
@@ -1,7 +1,7 @@
 import argparse
 from abc import ABC, abstractmethod
 from pathlib import Path
-from typing import List, Tuple, Type, TypeVar
+from typing import Dict, List, Optional, Tuple, Type, TypeVar
 from urllib.parse import quote
 
 T = TypeVar("T", bound=Type["Command"])
@@ -52,5 +52,5 @@ class Command(ABC):
 
     @staticmethod
     @abstractmethod
-    def completion(args: List[str], parser: argparse.ArgumentParser) -> List[str]:
+    def completion(args: List[str], parser: argparse.ArgumentParser) -> Dict[str, Optional[str]]:
         raise NotImplementedError()