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

1"""CLII options.""" 

2from __future__ import annotations 

3 

4import json 

5from typing import TYPE_CHECKING, Any 

6 

7# noinspection PyPackageRequirements 

8import urllib3 

9from elastic_transport import SecurityWarning 

10 

11if TYPE_CHECKING: 

12 from typing_extensions import Self 

13 

14urllib3.disable_warnings() 

15urllib3.disable_warnings(SecurityWarning) 

16 

17 

18class CliOptions(object): 

19 """CLI options.""" 

20 

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" 

43 

44 def __str__(self: Self) -> str: 

45 """Print the class.""" 

46 return json.dumps(self.__dict__, indent=4, default=str)