Coverage for src/click_opt/cli_options.py: 97%
31 statements
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-22 17:59 +0530
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-22 17:59 +0530
1"""CLII options."""
2from __future__ import annotations
4import json
5from typing import TYPE_CHECKING, Any
7# noinspection PyPackageRequirements
8import urllib3
9from elastic_transport import SecurityWarning
11if TYPE_CHECKING:
12 from typing_extensions import Self
14urllib3.disable_warnings()
15urllib3.disable_warnings(SecurityWarning)
18class CliOptions(object):
19 """CLI options."""
21 def __init__(
22 self: Self,
23 myclass_kwargs: dict[str, Any],
24 ) -> None:
25 self.query: dict[str, Any] = myclass_kwargs["query"]
26 self.output_file = myclass_kwargs["output_file"]
27 self.url = myclass_kwargs["url"]
28 self.user = myclass_kwargs["user"]
29 self.password = myclass_kwargs["password"]
30 self.index_prefixes = myclass_kwargs["index_prefixes"]
31 self.fields: list[str] = list(myclass_kwargs["fields"])
32 self.sort: list[dict[str, str]] = myclass_kwargs["sort"]
33 self.delimiter = myclass_kwargs["delimiter"]
34 self.max_results = int(myclass_kwargs["max_results"])
35 self.scroll_size = int(myclass_kwargs["scroll_size"])
36 self.meta_fields: list[str] = list(myclass_kwargs["meta_fields"])
37 self.verify_certs: bool = myclass_kwargs["verify_certs"]
38 self.ca_certs = myclass_kwargs["ca_certs"]
39 self.client_cert = myclass_kwargs["ca_certs"]
40 self.client_key = myclass_kwargs["ca_certs"]
41 self.debug: bool = myclass_kwargs["debug"]
42 self.format: str = "csv"
44 def __str__(self: Self) -> str:
45 """Print the class."""
46 return json.dumps(self.__dict__, indent=4, default=str)