@@ -256,22 +256,6 @@ def _settings_build_values(
256
256
257
257
# Configure built-in sources
258
258
init_settings = InitSettingsSource (self .__class__ , init_kwargs = init_kwargs )
259
- cli_settings = (
260
- CliSettingsSource (
261
- self .__class__ ,
262
- cli_prog_name = cli_prog_name ,
263
- cli_parse_args = cli_parse_args ,
264
- cli_parse_none_str = cli_parse_none_str ,
265
- cli_hide_none_type = cli_hide_none_type ,
266
- cli_avoid_json = cli_avoid_json ,
267
- cli_enforce_required = cli_enforce_required ,
268
- cli_use_class_docs_for_groups = cli_use_class_docs_for_groups ,
269
- cli_prefix = cli_prefix ,
270
- case_sensitive = case_sensitive ,
271
- )
272
- if cli_settings_source is None
273
- else cli_settings_source
274
- )
275
259
env_settings = EnvSettingsSource (
276
260
self .__class__ ,
277
261
case_sensitive = case_sensitive ,
@@ -305,7 +289,23 @@ def _settings_build_values(
305
289
file_secret_settings = file_secret_settings ,
306
290
)
307
291
if not any ([source for source in sources if isinstance (source , CliSettingsSource )]):
308
- if cli_parse_args or cli_settings_source :
292
+ if cli_parse_args is not None or cli_settings_source is not None :
293
+ cli_settings = (
294
+ CliSettingsSource (
295
+ self .__class__ ,
296
+ cli_prog_name = cli_prog_name ,
297
+ cli_parse_args = cli_parse_args ,
298
+ cli_parse_none_str = cli_parse_none_str ,
299
+ cli_hide_none_type = cli_hide_none_type ,
300
+ cli_avoid_json = cli_avoid_json ,
301
+ cli_enforce_required = cli_enforce_required ,
302
+ cli_use_class_docs_for_groups = cli_use_class_docs_for_groups ,
303
+ cli_prefix = cli_prefix ,
304
+ case_sensitive = case_sensitive ,
305
+ )
306
+ if cli_settings_source is None
307
+ else cli_settings_source
308
+ )
309
309
sources = (cli_settings ,) + sources
310
310
if sources :
311
311
return deep_update (* reversed ([source () for source in sources ]))
0 commit comments