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]] = {}
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
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
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("/"):
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
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:
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
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(
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
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"
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
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)
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
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(
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"])
@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()