@@ -38,6 +38,7 @@ class SettingsConfigDict(ConfigDict, total=False):
38
38
env_file_encoding : str | None
39
39
env_ignore_empty : bool
40
40
env_nested_delimiter : str | None
41
+ env_nested_max_split : int | None
41
42
env_parse_none_str : str | None
42
43
env_parse_enums : bool | None
43
44
cli_prog_name : str | None
@@ -112,6 +113,7 @@ class BaseSettings(BaseModel):
112
113
_env_file_encoding: The env file encoding, e.g. `'latin-1'`. Defaults to `None`.
113
114
_env_ignore_empty: Ignore environment variables where the value is an empty string. Default to `False`.
114
115
_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.
115
117
_env_parse_none_str: The env string value that should be parsed (e.g. "null", "void", "None", etc.)
116
118
into `None` type(None). Defaults to `None` type(None), which means no parsing should occur.
117
119
_env_parse_enums: Parse enum field names to values. Defaults to `None.`, which means no parsing should occur.
@@ -148,6 +150,7 @@ def __init__(
148
150
_env_file_encoding : str | None = None ,
149
151
_env_ignore_empty : bool | None = None ,
150
152
_env_nested_delimiter : str | None = None ,
153
+ _env_nested_max_split : int | None = None ,
151
154
_env_parse_none_str : str | None = None ,
152
155
_env_parse_enums : bool | None = None ,
153
156
_cli_prog_name : str | None = None ,
@@ -178,6 +181,7 @@ def __init__(
178
181
_env_file_encoding = _env_file_encoding ,
179
182
_env_ignore_empty = _env_ignore_empty ,
180
183
_env_nested_delimiter = _env_nested_delimiter ,
184
+ _env_nested_max_split = _env_nested_max_split ,
181
185
_env_parse_none_str = _env_parse_none_str ,
182
186
_env_parse_enums = _env_parse_enums ,
183
187
_cli_prog_name = _cli_prog_name ,
@@ -232,6 +236,7 @@ def _settings_build_values(
232
236
_env_file_encoding : str | None = None ,
233
237
_env_ignore_empty : bool | None = None ,
234
238
_env_nested_delimiter : str | None = None ,
239
+ _env_nested_max_split : int | None = None ,
235
240
_env_parse_none_str : str | None = None ,
236
241
_env_parse_enums : bool | None = None ,
237
242
_cli_prog_name : str | None = None ,
@@ -270,6 +275,11 @@ def _settings_build_values(
270
275
if _env_nested_delimiter is not None
271
276
else self .model_config .get ('env_nested_delimiter' )
272
277
)
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
+ )
273
283
env_parse_none_str = (
274
284
_env_parse_none_str if _env_parse_none_str is not None else self .model_config .get ('env_parse_none_str' )
275
285
)
@@ -333,6 +343,7 @@ def _settings_build_values(
333
343
case_sensitive = case_sensitive ,
334
344
env_prefix = env_prefix ,
335
345
env_nested_delimiter = env_nested_delimiter ,
346
+ env_nested_max_split = env_nested_max_split ,
336
347
env_ignore_empty = env_ignore_empty ,
337
348
env_parse_none_str = env_parse_none_str ,
338
349
env_parse_enums = env_parse_enums ,
@@ -344,6 +355,7 @@ def _settings_build_values(
344
355
case_sensitive = case_sensitive ,
345
356
env_prefix = env_prefix ,
346
357
env_nested_delimiter = env_nested_delimiter ,
358
+ env_nested_max_split = env_nested_max_split ,
347
359
env_ignore_empty = env_ignore_empty ,
348
360
env_parse_none_str = env_parse_none_str ,
349
361
env_parse_enums = env_parse_enums ,
@@ -412,6 +424,7 @@ def _settings_build_values(
412
424
env_file_encoding = None ,
413
425
env_ignore_empty = False ,
414
426
env_nested_delimiter = None ,
427
+ env_nested_max_split = None ,
415
428
env_parse_none_str = None ,
416
429
env_parse_enums = None ,
417
430
cli_prog_name = None ,
0 commit comments