1313
1414 RICH_PRESENT = False
1515
16- from robotidy import app , decorators , exceptions , files , skip , utils , version
16+ from robotidy import app , decorators , files , skip , utils , version
1717from robotidy .config import Config , FormattingConfig
1818from robotidy .rich_console import console
19- from robotidy .transformers import TransformType , load_transformers
19+ from robotidy .transformers import TransformConfig , TransformConfigMap , TransformConfigParameter , load_transformers
2020
2121CLI_OPTIONS_LIST = [
2222 {
@@ -170,7 +170,7 @@ def print_transformer_docs(transformer):
170170@decorators .optional_rich
171171def print_description (name : str , target_version : int ):
172172 # TODO: --desc works only for default transformers, it should also print custom transformer desc
173- transformers = load_transformers ([], [], {} , allow_disabled = True , target_version = target_version )
173+ transformers = load_transformers (TransformConfigMap ( [], [], []) , allow_disabled = True , target_version = target_version )
174174 transformer_by_names = {transformer .name : transformer for transformer in transformers }
175175 if name == "all" :
176176 for transformer in transformers :
@@ -185,19 +185,10 @@ def print_description(name: str, target_version: int):
185185 return 0
186186
187187
188- def _load_external_transformers (
189- transformers : List ,
190- custom_transformers : List [Tuple [str , List ]],
191- transformers_from_config : List [Tuple [str , List ]],
192- transformer_config : List [Tuple [str , List ]],
193- target_version : int ,
194- ):
188+ def _load_external_transformers (transformers : List , transformers_config : TransformConfigMap , target_version : int ):
195189 external = []
196190 transformers_names = {transformer .name for transformer in transformers }
197- transformer_config_converted = Config .convert_configure (transformer_config )
198- transformers_from_conf = load_transformers (
199- transformers_from_config , custom_transformers , transformer_config_converted , target_version = target_version
200- )
191+ transformers_from_conf = load_transformers (transformers_config , target_version = target_version )
201192 for transformer in transformers_from_conf :
202193 if transformer .name not in transformers_names :
203194 external .append (transformer )
@@ -206,24 +197,15 @@ def _load_external_transformers(
206197
207198@decorators .optional_rich
208199def print_transformers_list (
209- transformers_from_config : List [Tuple [str , List ]],
210- custom_transformers : List [Tuple [str , List ]],
211- transformer_config : List [Tuple [str , List ]],
212- config : Config ,
213- target_version : int ,
214- list_transformers : str ,
200+ transformers_config : TransformConfigMap , config : Config , target_version : int , list_transformers : str
215201):
216202 from rich .table import Table
217203
218204 table = Table (title = "Transformers" , header_style = "bold red" )
219205 table .add_column ("Name" , justify = "left" , no_wrap = True )
220206 table .add_column ("Enabled" )
221- transformers = load_transformers ([], [], {}, allow_disabled = True , target_version = target_version )
222- transformers .extend (
223- _load_external_transformers (
224- transformers , custom_transformers , transformers_from_config , transformer_config , target_version
225- )
226- )
207+ transformers = load_transformers (TransformConfigMap ([], [], []), allow_disabled = True , target_version = target_version )
208+ transformers .extend (_load_external_transformers (transformers , transformers_config , target_version ))
227209
228210 for transformer in transformers :
229211 enabled = transformer .name in config .transformers_lookup
@@ -254,23 +236,23 @@ def print_transformers_list(
254236@click .option (
255237 "--transform" ,
256238 "-t" ,
257- type = TransformType (),
239+ type = TransformConfigParameter (),
258240 multiple = True ,
259241 metavar = "TRANSFORMER_NAME" ,
260242 help = "Transform files from [PATH(S)] with given transformer" ,
261243)
262244@click .option (
263245 "--load-transformers" ,
264246 "custom_transformers" ,
265- type = TransformType (),
247+ type = TransformConfigParameter (),
266248 multiple = True ,
267249 metavar = "TRANSFORMER_NAME" ,
268250 help = "Load custom transformer from the path and run them after default ones." ,
269251)
270252@click .option (
271253 "--configure" ,
272254 "-c" ,
273- type = TransformType (),
255+ type = TransformConfigParameter (),
274256 multiple = True ,
275257 metavar = "TRANSFORMER_NAME:PARAM=VALUE" ,
276258 help = "Configure transformers" ,
@@ -490,9 +472,9 @@ def print_transformers_list(
490472@decorators .catch_exceptions
491473def cli (
492474 ctx : click .Context ,
493- transform : List [Tuple [ str , List ] ],
494- custom_transformers : List [Tuple [ str , List ] ],
495- configure : List [Tuple [ str , List ] ],
475+ transform : List [TransformConfig ],
476+ custom_transformers : List [TransformConfig ],
477+ configure : List [TransformConfig ],
496478 src : Tuple [str , ...],
497479 exclude : Optional [Pattern ],
498480 extend_exclude : Optional [Pattern ],
@@ -584,14 +566,12 @@ def cli(
584566 end_line = endline ,
585567 line_length = line_length ,
586568 )
587- # array of some class, that holds info if it's forced, configure or custom
588- # or just name:args TODO
569+
570+ transformers_config = TransformConfigMap ( transform , custom_transformers , configure )
589571 config = Config (
590572 formatting = formatting ,
591573 skip = skip_config ,
592- transformers = transform ,
593- custom_transformers = custom_transformers ,
594- transformers_config = configure ,
574+ transformers_config = transformers_config ,
595575 src = src ,
596576 exclude = exclude ,
597577 extend_exclude = extend_exclude ,
@@ -609,7 +589,7 @@ def cli(
609589 )
610590
611591 if list_transformers :
612- print_transformers_list (transform , custom_transformers , configure , config , target_version , list_transformers )
592+ print_transformers_list (transformers_config , config , target_version , list_transformers )
613593 sys .exit (0 )
614594 if desc is not None :
615595 return_code = print_description (desc , target_version )
0 commit comments