15
15
FlagStrategyProtocol ,
16
16
InterfacyParserCore ,
17
17
inverted_bool_flag_name ,
18
+ show_result ,
18
19
)
19
20
from interfacy_cli .exceptions import InvalidCommandError
20
- from interfacy_cli .logger import logger as _logger
21
21
from interfacy_cli .themes import InterfacyTheme
22
22
from interfacy_cli .util import (
23
23
AbbrevationGeneratorProtocol ,
@@ -98,12 +98,9 @@ class ClickGroup(click.Group):
98
98
def __init__ (self , init_callback , name = None , commands = None , * args , ** kwargs ):
99
99
super ().__init__ (name , commands , * args , ** kwargs )
100
100
self .init_callback = init_callback
101
- self .logger = _logger .bind (title = self .__class__ .__name__ )
102
101
103
102
def invoke (self , ctx ):
104
- self .logger .debug (f"initializing with params: { ctx .params } " )
105
103
instance = self .init_callback (** ctx .params )
106
- self .logger .debug (f"generated instance: { instance } " )
107
104
ctx .obj = instance
108
105
super ().invoke (ctx )
109
106
@@ -152,7 +149,7 @@ def __init__(
152
149
pipe_target : dict [str , str ] | None = None ,
153
150
allow_args_from_file : bool = True ,
154
151
print_result : bool = True ,
155
- print_result_func : T .Callable = click . echo ,
152
+ print_result_func : T .Callable = show_result ,
156
153
flag_strategy : FlagStrategyProtocol = DefaultFlagStrategy (),
157
154
abbrev_gen : AbbrevationGeneratorProtocol = DefaultAbbrevationGenerator (),
158
155
tab_completion : bool = False ,
@@ -197,20 +194,23 @@ def _handle_bool_args(self, kwargs: dict):
197
194
updated_kwargs [k ] = v
198
195
return updated_kwargs
199
196
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
+
200
204
def _generate_instance_callback (self , cls : Class ) -> T .Callable :
201
205
"""
202
206
Generates a function that instantiates the class with the given args.
203
207
"""
204
208
205
209
def init_callback (* args , ** kwargs ):
206
- logger = _logger .bind (title = "init_callback" )
207
- logger .debug ("Calling init_callback" , args = args , kwargs = kwargs )
208
210
if cls .is_initialized :
209
211
ret = cls .instance
210
- logger .debug (f"Class is initialized already, returning { ret } " )
211
212
return ret
212
213
ret = cls .cls (* args , ** kwargs )
213
- logger .debug (f"Returning { ret } " )
214
214
return ret
215
215
216
216
return init_callback
@@ -220,24 +220,21 @@ def _generate_callback(
220
220
fn : Function ,
221
221
result_fn : T .Callable | None = None ,
222
222
) -> T .Callable :
223
- logger = _logger .bind (title = "_generate_callback" )
224
- logger .debug (f"Generating callback for { fn } " )
225
223
226
224
def callback (* args , ** kwargs ):
227
225
func = fn .func
228
- logger .debug (f"Calling callback for { fn } " , args = args , kwargs = kwargs )
229
226
self .args = args
230
227
self .kwargs = kwargs
231
228
232
229
if result_fn :
233
230
result = result_fn ()
234
231
else :
235
232
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 )
237
235
if self .print_result :
238
236
self .print_result_func (result )
239
237
240
- logger .debug (f"Result: { result } " )
241
238
return result
242
239
243
240
return callback
@@ -377,12 +374,11 @@ def add_command(self, command: T.Callable, name: str | None = None):
377
374
)
378
375
379
376
def run (self , * commands : T .Callable , args : list [str ] | None = None ):
380
- # commands_dict = self._collect_commands(*commands)
381
377
if commands :
382
378
if len (commands ) == 1 :
383
379
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
386
382
else :
387
383
for i in commands :
388
384
self .add_command (i )
0 commit comments