@@ -38,6 +38,7 @@ class SettingsConfigDict(ConfigDict, total=False):
3838 env_file_encoding : str | None
3939 env_ignore_empty : bool
4040 env_nested_delimiter : str | None
41+ env_nested_max_split : int | None
4142 env_parse_none_str : str | None
4243 env_parse_enums : bool | None
4344 cli_prog_name : str | None
@@ -112,6 +113,7 @@ class BaseSettings(BaseModel):
112113 _env_file_encoding: The env file encoding, e.g. `'latin-1'`. Defaults to `None`.
113114 _env_ignore_empty: Ignore environment variables where the value is an empty string. Default to `False`.
114115 _env_nested_delimiter: The nested env values delimiter. Defaults to `None`.
116+ _env_nested_max_split: The nested env values maximum nesting. Defaults to `None`, which means no limit.
115117 _env_parse_none_str: The env string value that should be parsed (e.g. "null", "void", "None", etc.)
116118 into `None` type(None). Defaults to `None` type(None), which means no parsing should occur.
117119 _env_parse_enums: Parse enum field names to values. Defaults to `None.`, which means no parsing should occur.
@@ -148,6 +150,7 @@ def __init__(
148150 _env_file_encoding : str | None = None ,
149151 _env_ignore_empty : bool | None = None ,
150152 _env_nested_delimiter : str | None = None ,
153+ _env_nested_max_split : int | None = None ,
151154 _env_parse_none_str : str | None = None ,
152155 _env_parse_enums : bool | None = None ,
153156 _cli_prog_name : str | None = None ,
@@ -178,6 +181,7 @@ def __init__(
178181 _env_file_encoding = _env_file_encoding ,
179182 _env_ignore_empty = _env_ignore_empty ,
180183 _env_nested_delimiter = _env_nested_delimiter ,
184+ _env_nested_max_split = _env_nested_max_split ,
181185 _env_parse_none_str = _env_parse_none_str ,
182186 _env_parse_enums = _env_parse_enums ,
183187 _cli_prog_name = _cli_prog_name ,
@@ -232,6 +236,7 @@ def _settings_build_values(
232236 _env_file_encoding : str | None = None ,
233237 _env_ignore_empty : bool | None = None ,
234238 _env_nested_delimiter : str | None = None ,
239+ _env_nested_max_split : int | None = None ,
235240 _env_parse_none_str : str | None = None ,
236241 _env_parse_enums : bool | None = None ,
237242 _cli_prog_name : str | None = None ,
@@ -270,6 +275,11 @@ def _settings_build_values(
270275 if _env_nested_delimiter is not None
271276 else self .model_config .get ('env_nested_delimiter' )
272277 )
278+ env_nested_max_split = (
279+ _env_nested_max_split
280+ if _env_nested_max_split is not None
281+ else self .model_config .get ('env_nested_max_split' )
282+ )
273283 env_parse_none_str = (
274284 _env_parse_none_str if _env_parse_none_str is not None else self .model_config .get ('env_parse_none_str' )
275285 )
@@ -333,6 +343,7 @@ def _settings_build_values(
333343 case_sensitive = case_sensitive ,
334344 env_prefix = env_prefix ,
335345 env_nested_delimiter = env_nested_delimiter ,
346+ env_nested_max_split = env_nested_max_split ,
336347 env_ignore_empty = env_ignore_empty ,
337348 env_parse_none_str = env_parse_none_str ,
338349 env_parse_enums = env_parse_enums ,
@@ -344,6 +355,7 @@ def _settings_build_values(
344355 case_sensitive = case_sensitive ,
345356 env_prefix = env_prefix ,
346357 env_nested_delimiter = env_nested_delimiter ,
358+ env_nested_max_split = env_nested_max_split ,
347359 env_ignore_empty = env_ignore_empty ,
348360 env_parse_none_str = env_parse_none_str ,
349361 env_parse_enums = env_parse_enums ,
@@ -412,6 +424,7 @@ def _settings_build_values(
412424 env_file_encoding = None ,
413425 env_ignore_empty = False ,
414426 env_nested_delimiter = None ,
427+ env_nested_max_split = None ,
415428 env_parse_none_str = None ,
416429 env_parse_enums = None ,
417430 cli_prog_name = None ,
0 commit comments