19
19
20
20
21
21
def _default_callback (
22
- default , use_global_config = False , resolve_path = False ,
22
+ default , use_global_config = False , resolve_path = False , extra_global_config_vars = [],
23
23
):
24
24
25
25
def callback (ctx , param , value ):
@@ -33,6 +33,7 @@ def callback(ctx, param, value):
33
33
planemo_ctx ,
34
34
param ,
35
35
use_global_config = use_global_config ,
36
+ extra_global_config_vars = extra_global_config_vars ,
36
37
)
37
38
38
39
if result is VALUE_UNSET :
@@ -51,13 +52,14 @@ def callback(ctx, param, value):
51
52
return callback
52
53
53
54
54
- def _find_default (ctx , param , use_global_config ):
55
+ def _find_default (ctx , param , use_global_config , extra_global_config_vars ):
55
56
if use_global_config :
56
57
global_config = ctx .global_config
57
- global_config_key = "default_%s" % param .name
58
- if global_config_key in global_config :
59
- default_value = global_config [global_config_key ]
60
- return default_value , OptionSource .global_config
58
+ global_config_keys = ["default_%s" % param .name ] + extra_global_config_vars
59
+ for global_config_key in global_config_keys :
60
+ if global_config_key in global_config :
61
+ default_value = global_config [global_config_key ]
62
+ return default_value , OptionSource .global_config
61
63
62
64
return VALUE_UNSET , None
63
65
@@ -73,6 +75,7 @@ def planemo_option(*args, **kwargs):
73
75
option_type = kwargs .get ("type" , None )
74
76
use_global_config = kwargs .pop ("use_global_config" , False )
75
77
use_env_var = kwargs .pop ("use_env_var" , False )
78
+ extra_global_config_vars = kwargs .pop ("extra_global_config_vars" , [])
76
79
77
80
default_specified = "default" in kwargs
78
81
default = None
@@ -87,6 +90,7 @@ def callback(ctx, param, value):
87
90
result = _default_callback (
88
91
default ,
89
92
use_global_config = use_global_config ,
93
+ extra_global_config_vars = extra_global_config_vars ,
90
94
resolve_path = resolve_path ,
91
95
)(ctx , param , value )
92
96
0 commit comments