Skip to content

Commit 813ac94

Browse files
authored
Initialize CLI source on demand. (#305)
1 parent 39d5e81 commit 813ac94

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

pydantic_settings/main.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -256,22 +256,6 @@ def _settings_build_values(
256256

257257
# Configure built-in sources
258258
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-
)
275259
env_settings = EnvSettingsSource(
276260
self.__class__,
277261
case_sensitive=case_sensitive,
@@ -305,7 +289,23 @@ def _settings_build_values(
305289
file_secret_settings=file_secret_settings,
306290
)
307291
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+
)
309309
sources = (cli_settings,) + sources
310310
if sources:
311311
return deep_update(*reversed([source() for source in sources]))

0 commit comments

Comments
 (0)