raise NotImplementedError()
@staticmethod
- @abstractmethod
- def completion(args: List[str], parser: argparse.ArgumentParser) -> CompWords:
- raise NotImplementedError()
+ def completion(parser: argparse.ArgumentParser) -> CompWords:
+ return get_subparsers_words(parser._actions) # pylint: disable=W0212
import argparse
import sys
from enum import Enum
-from typing import Any, Dict, List, Optional, Tuple, Type
+from typing import Any, Dict, Optional, Tuple, Type
-from knot_resolver.client.command import Command, CommandArgs, CompWords, get_subparsers_words, register_command
+from knot_resolver.client.command import Command, CommandArgs, register_command
from knot_resolver.datamodel.cache_schema import CacheClearRPCSchema
from knot_resolver.utils.modeling.exceptions import AggregateDataValidationError, DataValidationError
from knot_resolver.utils.modeling.parsing import DataFormat, parse_json
return cache_parser, CacheCommand
- @staticmethod
- def completion(args: List[str], parser: argparse.ArgumentParser) -> CompWords:
- return get_subparsers_words(parser._actions)
-
def run(self, args: CommandArgs) -> None:
if not self.operation:
args.subparser.print_help()
get_subparsers_words,
register_command,
)
+from knot_resolver.client.commands.config import ConfigCommand
class Shells(Enum):
return completion, CompletionCommand
- @staticmethod
- def completion(args: List[str], parser: argparse.ArgumentParser) -> CompWords:
- return get_subparsers_words(parser._actions)
-
def run(self, args: CommandArgs) -> None:
subparsers = args.parser._subparsers
words: CompWords = {}
cmd: Command = get_subparser_command(subparser)
subparser_args = self.comp_args[self.comp_args.index(uarg) + 1 :]
if subparser_args or self.space:
- words = cmd.completion(subparser_args, subparser)
+ if isinstance(cmd, ConfigCommand):
+ words = cmd.completion(subparser, subparser_args)
+ else:
+ words = cmd.completion(subparser)
break
elif uarg in ["-s", "--socket", "-c", "--config"]:
# if arg is socket config, skip next arg
# uarg is valid (complete) arg, continue
continue
-
# print completion words
# based on required bash/fish shell format
if self.shell == Shells.BASH:
return config, ConfigCommand
@staticmethod
- def completion(args: List[str], parser: argparse.ArgumentParser) -> CompWords:
- # words = parser_words(parser._actions) # pylint: disable=W0212
+ def completion(parser: argparse.ArgumentParser, args: Optional[List[str]] = None) -> CompWords:
+ if args is None:
+ return Command.completion(parser)
# for arg in args:
# if arg in words:
import argparse
import sys
from pathlib import Path
-from typing import List, Optional, Tuple, Type
+from typing import Optional, Tuple, Type
-from knot_resolver.client.command import Command, CommandArgs, CompWords, register_command
+from knot_resolver.client.command import Command, CommandArgs, register_command
from knot_resolver.datamodel import KresConfig
from knot_resolver.datamodel.globals import Context, reset_global_validation_context, set_global_validation_context
from knot_resolver.utils.modeling import try_to_parse
return convert, ConvertCommand
- @staticmethod
- def completion(args: List[str], parser: argparse.ArgumentParser) -> CompWords:
- return {}
-
def run(self, args: CommandArgs) -> None:
with open(self.input_file, "r") as f:
data = f.read()
import argparse
-from typing import List, Tuple, Type
+from typing import Tuple, Type
-from knot_resolver.client.command import Command, CommandArgs, CompWords, register_command
+from knot_resolver.client.command import Command, CommandArgs, register_command
@register_command
def run(self, args: CommandArgs) -> None:
args.parser.print_help()
- @staticmethod
- def completion(args: List[str], parser: argparse.ArgumentParser) -> CompWords:
- return {}
-
@staticmethod
def register_args_subparser(
subparser: "argparse._SubParsersAction[argparse.ArgumentParser]",
import argparse
import sys
-from typing import List, Optional, Tuple, Type
+from typing import Optional, Tuple, Type
-from knot_resolver.client.command import Command, CommandArgs, CompWords, register_command
+from knot_resolver.client.command import Command, CommandArgs, register_command
from knot_resolver.utils.modeling.parsing import DataFormat, parse_json
from knot_resolver.utils.requests import request
)
return metrics, MetricsCommand
- @staticmethod
- def completion(args: List[str], parser: argparse.ArgumentParser) -> CompWords:
- return {}
-
def run(self, args: CommandArgs) -> None:
response = request(args.socket, "GET", "metrics/prometheus" if self.prometheus else "metrics/json")
import argparse
import sys
-from typing import List, Tuple, Type
+from typing import Tuple, Type
-from knot_resolver.client.command import Command, CommandArgs, CompWords, register_command
+from knot_resolver.client.command import Command, CommandArgs, register_command
from knot_resolver.utils.requests import request
return reload, ReloadCommand
- @staticmethod
- def completion(args: List[str], parser: argparse.ArgumentParser) -> CompWords:
- return {}
-
def run(self, args: CommandArgs) -> None:
response = request(args.socket, "POST", "reload")
import argparse
import json
import sys
-from typing import List, Optional, Tuple, Type
+from typing import Optional, Tuple, Type
-from knot_resolver.client.command import Command, CommandArgs, CompWords, register_command
+from knot_resolver.client.command import Command, CommandArgs, register_command
from knot_resolver.datamodel import kres_config_json_schema
from knot_resolver.utils.requests import request
return schema, SchemaCommand
- @staticmethod
- def completion(args: List[str], parser: argparse.ArgumentParser) -> CompWords:
- return {}
- # return parser_words(parser._actions) # pylint: disable=W0212
-
def run(self, args: CommandArgs) -> None:
if self.live:
response = request(args.socket, "GET", "schema")
import argparse
import sys
-from typing import List, Tuple, Type
+from typing import Tuple, Type
-from knot_resolver.client.command import Command, CommandArgs, CompWords, register_command
+from knot_resolver.client.command import Command, CommandArgs, register_command
from knot_resolver.utils.requests import request
if response.status != 200:
print(response, file=sys.stderr)
sys.exit(1)
-
- @staticmethod
- def completion(args: List[str], parser: argparse.ArgumentParser) -> CompWords:
- return {}
import argparse
import sys
from pathlib import Path
-from typing import List, Tuple, Type
+from typing import Tuple, Type
-from knot_resolver.client.command import Command, CommandArgs, CompWords, register_command
+from knot_resolver.client.command import Command, CommandArgs, register_command
from knot_resolver.datamodel import KresConfig
from knot_resolver.datamodel.globals import Context, reset_global_validation_context, set_global_validation_context
from knot_resolver.utils.modeling import try_to_parse
return validate, ValidateCommand
- @staticmethod
- def completion(args: List[str], parser: argparse.ArgumentParser) -> CompWords:
- return {}
-
def run(self, args: CommandArgs) -> None:
if self.input_file:
with open(self.input_file, "r") as f: