Skip to content

Commit e4f6360

Browse files
committed
display result improvements
1 parent 4bb1543 commit e4f6360

File tree

3 files changed

+26
-26
lines changed

3 files changed

+26
-26
lines changed

interfacy_cli/click_parser.py

+13-17
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
FlagStrategyProtocol,
1616
InterfacyParserCore,
1717
inverted_bool_flag_name,
18+
show_result,
1819
)
1920
from interfacy_cli.exceptions import InvalidCommandError
20-
from interfacy_cli.logger import logger as _logger
2121
from interfacy_cli.themes import InterfacyTheme
2222
from interfacy_cli.util import (
2323
AbbrevationGeneratorProtocol,
@@ -98,12 +98,9 @@ class ClickGroup(click.Group):
9898
def __init__(self, init_callback, name=None, commands=None, *args, **kwargs):
9999
super().__init__(name, commands, *args, **kwargs)
100100
self.init_callback = init_callback
101-
self.logger = _logger.bind(title=self.__class__.__name__)
102101

103102
def invoke(self, ctx):
104-
self.logger.debug(f"initializing with params: {ctx.params}")
105103
instance = self.init_callback(**ctx.params)
106-
self.logger.debug(f"generated instance: {instance}")
107104
ctx.obj = instance
108105
super().invoke(ctx)
109106

@@ -152,7 +149,7 @@ def __init__(
152149
pipe_target: dict[str, str] | None = None,
153150
allow_args_from_file: bool = True,
154151
print_result: bool = True,
155-
print_result_func: T.Callable = click.echo,
152+
print_result_func: T.Callable = show_result,
156153
flag_strategy: FlagStrategyProtocol = DefaultFlagStrategy(),
157154
abbrev_gen: AbbrevationGeneratorProtocol = DefaultAbbrevationGenerator(),
158155
tab_completion: bool = False,
@@ -197,20 +194,23 @@ def _handle_bool_args(self, kwargs: dict):
197194
updated_kwargs[k] = v
198195
return updated_kwargs
199196

197+
def revese_arg_translations(self, args: dict) -> dict[str, T.Any]:
198+
reversed = {}
199+
for k, v in args.items():
200+
k = self.flag_strategy.arg_translator.reverse(k)
201+
reversed[k] = v
202+
return reversed
203+
200204
def _generate_instance_callback(self, cls: Class) -> T.Callable:
201205
"""
202206
Generates a function that instantiates the class with the given args.
203207
"""
204208

205209
def init_callback(*args, **kwargs):
206-
logger = _logger.bind(title="init_callback")
207-
logger.debug("Calling init_callback", args=args, kwargs=kwargs)
208210
if cls.is_initialized:
209211
ret = cls.instance
210-
logger.debug(f"Class is initialized already, returning {ret}")
211212
return ret
212213
ret = cls.cls(*args, **kwargs)
213-
logger.debug(f"Returning {ret}")
214214
return ret
215215

216216
return init_callback
@@ -220,24 +220,21 @@ def _generate_callback(
220220
fn: Function,
221221
result_fn: T.Callable | None = None,
222222
) -> T.Callable:
223-
logger = _logger.bind(title="_generate_callback")
224-
logger.debug(f"Generating callback for {fn}")
225223

226224
def callback(*args, **kwargs):
227225
func = fn.func
228-
logger.debug(f"Calling callback for {fn}", args=args, kwargs=kwargs)
229226
self.args = args
230227
self.kwargs = kwargs
231228

232229
if result_fn:
233230
result = result_fn()
234231
else:
235232
updated_kwargs = self._handle_bool_args(kwargs)
236-
result = func(*args, **updated_kwargs)
233+
kwargs = self.revese_arg_translations(updated_kwargs)
234+
result = func(*args, **kwargs)
237235
if self.print_result:
238236
self.print_result_func(result)
239237

240-
logger.debug(f"Result: {result}")
241238
return result
242239

243240
return callback
@@ -377,12 +374,11 @@ def add_command(self, command: T.Callable, name: str | None = None):
377374
)
378375

379376
def run(self, *commands: T.Callable, args: list[str] | None = None):
380-
# commands_dict = self._collect_commands(*commands)
381377
if commands:
382378
if len(commands) == 1:
383379
command = commands[0]
384-
parser = self._parser_from_object(command)
385-
self.main_parser = parser # ?
380+
parser = self._parser_from_object(inspect(command))
381+
self.main_parser = parser
386382
else:
387383
for i in commands:
388384
self.add_command(i)

interfacy_cli/core.py

+13-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,18 @@ def inverted_bool_flag_name(name: str) -> str:
2020
return "no-" + name
2121

2222

23+
def show_result(result: T.Any, handler=print):
24+
if isinstance(result, list):
25+
for i in result:
26+
handler(i)
27+
elif isinstance(result, dict):
28+
from pprint import pprint
29+
30+
pprint(result)
31+
else:
32+
handler(result)
33+
34+
2335
class ExitCode:
2436
SUCCESS = 0
2537
INVALID_ARGS_ERR = 1
@@ -117,7 +129,7 @@ def __init__(
117129
pipe_target: dict[str, str] | None = None,
118130
tab_completion: bool = False,
119131
print_result: bool = False,
120-
print_result_func: T.Callable = print,
132+
print_result_func: T.Callable = show_result,
121133
) -> None:
122134
self.type_parser = type_parser or get_parser(from_file=allow_args_from_file)
123135
self.autorun = run

interfacy_cli/logger.py

-8
This file was deleted.

0 commit comments

Comments
 (0)