13
13
from diffpy .utils .parsers .loaddata import loadData
14
14
15
15
16
- def define_arguments ():
16
+ def _define_arguments ():
17
17
args = [
18
- {
19
- "name" : ["mud" ],
20
- "help" : "Value of mu*D for your sample. Required." ,
21
- "type" : float ,
22
- },
23
18
{
24
19
"name" : ["input" ],
25
20
"help" : (
@@ -150,20 +145,37 @@ def define_arguments():
150
145
),
151
146
"default" : None ,
152
147
},
153
- {
154
- "name" : ["-z" , "--z-scan-file" ],
155
- "help" : "Path to the z-scan file to be loaded "
156
- "to determine the mu*D value." ,
157
- "default" : None ,
158
- "widget" : "FileChooser" ,
159
- },
160
148
]
161
149
return args
162
150
163
151
152
+ def _add_mud_selection_group (p , is_gui = False ):
153
+ """Current Options:
154
+ 1. Manually enter muD (`--mud`).
155
+ 2. Estimate muD from a z-scan file (`-z` or `--z-scan-file`).
156
+ """
157
+ g = p .add_argument_group ("Options for setting mu*D value (Required)" )
158
+ g = g .add_mutually_exclusive_group (required = True )
159
+ g .add_argument (
160
+ "--mud" ,
161
+ type = float ,
162
+ help = "Enter the mu*D value manually." ,
163
+ ** ({"widget" : "DecimalField" } if is_gui else {}),
164
+ )
165
+ g .add_argument (
166
+ "-z" ,
167
+ "--z-scan-file" ,
168
+ help = "Provide the path to the z-scan file to be loaded "
169
+ "to determine the mu*D value." ,
170
+ ** ({"widget" : "FileChooser" } if is_gui else {}),
171
+ )
172
+ return p
173
+
174
+
164
175
def get_args (override_cli_inputs = None ):
165
176
p = ArgumentParser ()
166
- for arg in define_arguments ():
177
+ p = _add_mud_selection_group (p , is_gui = False )
178
+ for arg in _define_arguments ():
167
179
kwargs = {
168
180
key : value
169
181
for key , value in arg .items ()
@@ -177,7 +189,8 @@ def get_args(override_cli_inputs=None):
177
189
@Gooey (required_cols = 1 , optional_cols = 1 , program_name = "Labpdfproc GUI" )
178
190
def gooey_parser ():
179
191
p = GooeyParser ()
180
- for arg in define_arguments ():
192
+ p = _add_mud_selection_group (p , is_gui = True )
193
+ for arg in _define_arguments ():
181
194
kwargs = {key : value for key , value in arg .items () if key != "name" }
182
195
p .add_argument (* arg ["name" ], ** kwargs )
183
196
args = p .parse_args ()
0 commit comments