@@ -140,17 +140,16 @@ def set_parsing_settings(
140140 with ``omegaconf+`` parser mode, absolute interpolation paths are
141141 converted to relative. This is only intended for backward
142142 compatibility with ``omegaconf`` parser mode.
143- subclasses_disabled: List of types or functions, to configure that
144- when parsing only the exact type hints (not their subclasses) are
145- accepted. Descendants of the configured types are also disabled.
146- Functions should return True for types to disable.
147- subclasses_enabled: List of types or disable function names, to
148- configure that subclasses are accepted. Types given here have
149- precedence over those in ``subclasses_disabled``. Giving a function
150- name removes the corresponding function from
151- ``subclasses_disabled``. By default, the following disable functions
152- are registered: ``is_pure_dataclass``, ``is_pydantic_model``,
153- ``is_attrs_class`` and ``is_final_class``.
143+ subclasses_disabled: List of types or functions, so that when parsing
144+ only the exact type hints (not their subclasses) are accepted.
145+ Descendants of the configured types are also disabled. Functions
146+ should return ``True`` for types to disable.
147+ subclasses_enabled: List of types or disable function names, so that
148+ subclasses are accepted. Types given here have precedence over those
149+ in ``subclasses_disabled``. Giving a function name removes the
150+ corresponding function from ``subclasses_disabled``. By default, the
151+ following disable functions are registered: ``is_pure_dataclass``,
152+ ``is_pydantic_model``, ``is_attrs_class`` and ``is_final_class``.
154153 """
155154 # validate_defaults
156155 if isinstance (validate_defaults , bool ):
@@ -187,8 +186,8 @@ def set_parsing_settings(
187186 # subclass behavior
188187 if subclasses_disabled or subclasses_enabled :
189188 subclass_type_behavior (
190- subclasses_disabled = subclasses_disabled or [] ,
191- subclasses_enabled = subclasses_enabled or [] ,
189+ subclasses_disabled = subclasses_disabled ,
190+ subclasses_enabled = subclasses_enabled ,
192191 )
193192
194193
@@ -326,11 +325,11 @@ def is_subclasses_disabled(cls) -> bool:
326325
327326
328327def subclass_type_behavior (
329- subclasses_disabled : list [Union [type , Callable [[type ], bool ]]] = [] ,
330- subclasses_enabled : list [Union [type , str ]] = [] ,
328+ subclasses_disabled : Optional [ list [Union [type , Callable [[type ], bool ]]]] = None ,
329+ subclasses_enabled : Optional [ list [Union [type , str ]]] = None ,
331330) -> None :
332331 """Configures whether class types accept or not subclasses."""
333- for enable_item in subclasses_enabled :
332+ for enable_item in subclasses_enabled or [] :
334333 if isinstance (enable_item , str ):
335334 if enable_item not in subclasses_disabled_selectors :
336335 raise ValueError (f"There is no function '{ enable_item } ' registered in subclasses_disabled" )
@@ -342,7 +341,7 @@ def subclass_type_behavior(
342341 f"Expected 'subclasses_enabled' list items to be types or strings, but got { enable_item !r} "
343342 )
344343
345- for disable_item in subclasses_disabled :
344+ for disable_item in subclasses_disabled or [] :
346345 if inspect .isclass (disable_item ):
347346 subclasses_disabled_types .add (disable_item )
348347 elif inspect .isfunction (disable_item ):
0 commit comments