diff --git a/omegaconf/_utils.py b/omegaconf/_utils.py
index bec1fe1..1a5b762 100644
--- a/omegaconf/_utils.py
+++ b/omegaconf/_utils.py
@@ -1,3 +1,4 @@
+import os
 import re
 import string
 import sys
@@ -476,13 +477,21 @@ def format_and_raise(
         KEY_TYPE=f"{type(key).__name__}",
     )
 
-    s = string.Template(
-        """$MSG
+    full_backtrace = "OC_CAUSE" in os.environ and os.environ["OC_CAUSE"] == "1"
+    template = """$MSG
 \tfull_key: $FULL_KEY
 \treference_type=$REF_TYPE
 \tobject_type=$OBJECT_TYPE
 """
-    )
+
+    if not full_backtrace:
+        template += """
+
+Set env OC_CAUSE=1 to include causing exception
+    """
+
+    s = string.Template(template=template)
+
     message = s.substitute(
         REF_TYPE=ref_type_str, OBJECT_TYPE=object_type_str, MSG=msg, FULL_KEY=full_key,
     )
@@ -492,7 +501,7 @@ def format_and_raise(
     elif exception_type == IndexError:
         exception_type = ConfigIndexError
 
-    ex = exception_type(f"{message}").with_traceback(sys.exc_info()[2])
+    ex = exception_type(f"{message}")
     if issubclass(exception_type, OmegaConfBaseException):
         ex._initialized = True
         ex.parent_node = node
@@ -501,13 +510,16 @@ def format_and_raise(
         ex.full_key = full_key
         ex.value = value
         ex.msg = msg
-        ex.cause = cause
         ex.object_type = object_type
         ex.object_type_str = object_type_str
         ex.ref_type = ref_type
         ex.ref_type_str = ref_type_str
 
-    raise ex from cause
+    if full_backtrace:
+        ex.__cause__ = cause
+    else:
+        ex.__cause__ = None
+    raise ex
 
 
 def type_str(t: Any) -> str:
diff --git a/omegaconf/errors.py b/omegaconf/errors.py
index c43da1c..6efe646 100644
--- a/omegaconf/errors.py
+++ b/omegaconf/errors.py
@@ -24,7 +24,6 @@ class OmegaConfBaseException(Exception):
         self.full_key = None
         self.value = None
         self.msg = None
-        self.cause = None
         self.object_type = None
         self.ref_type = None
 
diff --git a/omegaconf/listconfig.py b/omegaconf/listconfig.py
index 34a59ec..cb21c94 100644
--- a/omegaconf/listconfig.py
+++ b/omegaconf/listconfig.py
@@ -24,6 +24,8 @@ from ._utils import (
 from .base import Container, ContainerMetadata, Node
 from .basecontainer import BaseContainer
 from .errors import (
+    ConfigAttributeError,
+    ConfigTypeError,
     ConfigValueError,
     KeyValidationError,
     MissingMandatoryValue,
@@ -58,14 +60,16 @@ class ListConfig(BaseContainer, MutableSequence[Any]):
                     key_type=int,
                 ),
             )
-            self._content = None
+            self.__dict__["_content"] = None
             self._set_value(value=content)
         except Exception as ex:
             format_and_raise(node=None, key=None, value=None, cause=ex, msg=str(ex))
 
     def _validate_get(self, key: Any, value: Any = None) -> None:
         if not isinstance(key, (int, slice)):
-            raise KeyValidationError("Invalid key type '$KEY_TYPE'")
+            raise KeyValidationError(
+                "ListConfig indices must be integers or slices, not $KEY_TYPE"
+            )
 
     def _validate_set(self, key: Any, value: Any) -> None:
 
@@ -98,8 +102,24 @@ class ListConfig(BaseContainer, MutableSequence[Any]):
             return 0
         if self._is_missing():
             return 0
-        assert isinstance(self._content, list)
-        return len(self._content)
+        assert isinstance(self.__dict__["_content"], list)
+        return len(self.__dict__["_content"])
+
+    def __setattr__(self, key: str, value: Any) -> None:
+        self._format_and_raise(
+            key=key,
+            value=value,
+            cause=ConfigAttributeError("ListConfig does not support attribute access"),
+        )
+        assert False
+
+    def __getattr__(self, key: str) -> None:
+        self._format_and_raise(
+            key=key,
+            value=None,
+            cause=ConfigAttributeError("ListConfig does not support attribute access"),
+        )
+        assert False
 
     def __getitem__(self, index: Union[int, slice]) -> Any:
         try:
@@ -111,19 +131,21 @@ class ListConfig(BaseContainer, MutableSequence[Any]):
                     "ListConfig object representing None is not subscriptable"
                 )
 
-            assert isinstance(self._content, list)
+            assert isinstance(self.__dict__["_content"], list)
             if isinstance(index, slice):
                 result = []
                 for slice_idx in itertools.islice(
                     range(0, len(self)), index.start, index.stop, index.step
                 ):
                     val = self._resolve_with_default(
-                        key=slice_idx, value=self._content[slice_idx]
+                        key=slice_idx, value=self.__dict__["_content"][slice_idx]
                     )
                     result.append(val)
                 return result
             else:
-                return self._resolve_with_default(key=index, value=self._content[index])
+                return self._resolve_with_default(
+                    key=index, value=self.__dict__["_content"][index]
+                )
         except Exception as e:
             self._format_and_raise(key=index, value=None, cause=e)
 
@@ -144,7 +166,7 @@ class ListConfig(BaseContainer, MutableSequence[Any]):
             self._validate_set(key=index, value=item)
 
             node = _maybe_wrap(
-                ref_type=self._metadata.element_type,
+                ref_type=self.__dict__["_metadata"].element_type,
                 key=index,
                 value=item,
                 is_optional=OmegaConf.is_optional(item),
@@ -175,11 +197,11 @@ class ListConfig(BaseContainer, MutableSequence[Any]):
                 raise MissingMandatoryValue("Cannot insert into missing ListConfig")
 
             try:
-                assert isinstance(self._content, list)
+                assert isinstance(self.__dict__["_content"], list)
                 # insert place holder
-                self._content.insert(index, None)
+                self.__dict__["_content"].insert(index, None)
                 node = _maybe_wrap(
-                    ref_type=self._metadata.element_type,
+                    ref_type=self.__dict__["_metadata"].element_type,
                     key=index,
                     value=item,
                     is_optional=OmegaConf.is_optional(item),
@@ -267,9 +289,11 @@ class ListConfig(BaseContainer, MutableSequence[Any]):
                 )
             if self._is_missing():
                 raise MissingMandatoryValue("Cannot get_node from a missing ListConfig")
-            assert isinstance(self._content, list)
-            return self._content[key]  # type: ignore
-        except (IndexError, TypeError, MissingMandatoryValue) as e:
+            assert isinstance(self.__dict__["_content"], list)
+            if validate_access:
+                self._validate_get(key)
+            return self.__dict__["_content"][key]  # type: ignore
+        except (IndexError, TypeError, MissingMandatoryValue, KeyValidationError) as e:
             if validate_access:
                 self._format_and_raise(key=key, value=None, cause=e)
                 assert False
@@ -283,9 +307,11 @@ class ListConfig(BaseContainer, MutableSequence[Any]):
             if self._is_missing():
                 raise MissingMandatoryValue("Cannot get from a missing ListConfig")
             self._validate_get(index, None)
-            assert isinstance(self._content, list)
+            assert isinstance(self.__dict__["_content"], list)
             return self._resolve_with_default(
-                key=index, value=self._content[index], default_value=default_value
+                key=index,
+                value=self.__dict__["_content"][index],
+                default_value=default_value,
             )
         except Exception as e:
             self._format_and_raise(key=index, value=None, cause=e)
@@ -300,13 +326,18 @@ class ListConfig(BaseContainer, MutableSequence[Any]):
             if self._is_missing():
                 raise MissingMandatoryValue("Cannot pop from a missing ListConfig")
 
-            assert isinstance(self._content, list)
+            assert isinstance(self.__dict__["_content"], list)
             ret = self._resolve_with_default(
                 key=index, value=self._get_node(index), default_value=None
             )
-            del self._content[index]
+            del self.__dict__["_content"][index]
             self._update_keys()
             return ret
+        except KeyValidationError as e:
+            self._format_and_raise(
+                key=index, value=None, cause=e, type_override=ConfigTypeError
+            )
+            assert False
         except Exception as e:
             self._format_and_raise(key=index, value=None, cause=e)
             assert False
@@ -332,8 +363,8 @@ class ListConfig(BaseContainer, MutableSequence[Any]):
                 def key1(x: Any) -> Any:
                     return key(x._value())  # type: ignore
 
-            assert isinstance(self._content, list)
-            self._content.sort(key=key1, reverse=reverse)
+            assert isinstance(self.__dict__["_content"], list)
+            self.__dict__["_content"].sort(key=key1, reverse=reverse)
 
         except Exception as e:
             self._format_and_raise(key=None, value=None, cause=e)
@@ -377,8 +408,8 @@ class ListConfig(BaseContainer, MutableSequence[Any]):
                         v = v._value()
                     return v
 
-            assert isinstance(self._content, list)
-            return MyItems(self._content)
+            assert isinstance(self.__dict__["_content"], list)
+            return MyItems(self.__dict__["_content"])
         except (ReadonlyConfigError, TypeError, MissingMandatoryValue) as e:
             self._format_and_raise(key=None, value=None, cause=e)
             assert False
@@ -420,13 +451,13 @@ class ListConfig(BaseContainer, MutableSequence[Any]):
             assert is_primitive_list(value) or isinstance(value, ListConfig)
             self.__dict__["_content"] = []
             if isinstance(value, ListConfig):
-                self._metadata = copy.deepcopy(value._metadata)
-                self._metadata.flags = {}
+                self.__dict__["_metadata"] = copy.deepcopy(value._metadata)
+                self.__dict__["_metadata"].flags = {}
             for item in value:
                 self.append(item)
 
             if isinstance(value, ListConfig):
-                self._metadata.flags = value._metadata.flags
+                self.__dict__["_metadata"].flags = value._metadata.flags
 
     @staticmethod
     def _list_eq(l1: Optional["ListConfig"], l2: Optional["ListConfig"]) -> bool:

More helpful stack trace
It would be a good feature to have a bit more helpful stack trace. When using the Structured configurations, and you try to access a non-existent configuration key you basically get a stack trace like this:

```
~/miniconda3/lib/python3.7/site-packages/omegaconf/base.py in _format_and_raise(self, key, value, cause, type_override)
     94             msg=str(cause),
     95             cause=cause,
---> 96             type_override=type_override,
     97         )
     98         assert False

~/miniconda3/lib/python3.7/site-packages/omegaconf/_utils.py in format_and_raise(node, key, value, msg, cause, type_override)
    494         ex.ref_type_str = ref_type_str
    495
--> 496     raise ex from cause
    497
    498

ConfigAttributeError: Key 'BLA' not in 'DefaultConfig'
        full_key: BLA
        reference_type=Optional[DefaultConfig]
        object_type=DefaultConfig

        full_key: BLA
        reference_type=Optional[DefaultConfig]
        object_type=DefaultConfig

```
which does not say which line we tried to access this key.
diff --git a/tests/test_basic_ops_list.py b/tests/test_basic_ops_list.py
index f5a8a29..1566ce3 100644
--- a/tests/test_basic_ops_list.py
+++ b/tests/test_basic_ops_list.py
@@ -6,6 +6,7 @@ import pytest
 
 from omegaconf import AnyNode, ListConfig, OmegaConf
 from omegaconf.errors import (
+    ConfigTypeError,
     KeyValidationError,
     MissingMandatoryValue,
     UnsupportedValueType,
@@ -104,19 +105,12 @@ def test_list_pop() -> None:
     validate_list_keys(c)
 
 
-def test_list_pop_on_unexpected_exception_not_modifying(mocker: Any) -> None:
+def test_list_pop_on_unexpected_exception_not_modifying() -> None:
     src = [1, 2, 3, 4]
     c = OmegaConf.create(src)
 
-    def resolve_with_default_throws(
-        key: Any, value: Any, default_value: Any = None,
-    ) -> None:
-        raise Exception("mocked_exception")
-
-    mocker.patch.object(c, "_resolve_with_default", resolve_with_default_throws)
-
-    with pytest.raises(Exception, match="mocked_exception"):
-        c.pop(0)
+    with pytest.raises(ConfigTypeError):
+        c.pop("foo")  # type: ignore
     assert c == src
 
 
diff --git a/tests/test_errors.py b/tests/test_errors.py
index 2fca652..e51f15f 100644
--- a/tests/test_errors.py
+++ b/tests/test_errors.py
@@ -461,15 +461,39 @@ params = [
     ##############
     # ListConfig #
     ##############
+    # getattr
+    pytest.param(
+        Expected(
+            create=lambda: OmegaConf.create([1, 2, 3]),
+            op=lambda cfg: setattr(cfg, "foo", 10),
+            exception_type=ConfigAttributeError,
+            key="foo",
+            full_key="[foo]",
+            msg="ListConfig does not support attribute access",
+        ),
+        id="list:setattr",
+    ),
+    # # setattr
+    pytest.param(
+        Expected(
+            create=lambda: OmegaConf.create([1, 2, 3]),
+            op=lambda cfg: getattr(cfg, "foo"),
+            exception_type=ConfigAttributeError,
+            key="foo",
+            full_key="[foo]",
+            msg="ListConfig does not support attribute access",
+        ),
+        id="list:setattr",
+    ),
     # get node
     pytest.param(
         Expected(
             create=lambda: OmegaConf.create([1, 2, 3]),
             op=lambda cfg: cfg._get_node("foo"),
-            exception_type=TypeError,
+            exception_type=KeyValidationError,
             key="foo",
             full_key="[foo]",
-            msg="list indices must be integers or slices, not str",
+            msg="ListConfig indices must be integers or slices, not str",
         ),
         id="list:get_nox_ex:invalid_index_type",
     ),
@@ -542,18 +566,18 @@ params = [
             full_key="[0]",
             child_node=lambda cfg: cfg[0],
         ),
-        id="dict:readonly:pop",
+        id="list:readonly:pop",
     ),
     pytest.param(
         Expected(
-            create=lambda: create_readonly([1, 2, 3]),
+            create=lambda: OmegaConf.create([1, 2, 3]),
             op=lambda cfg: cfg.pop("Invalid_key_type"),
-            exception_type=ReadonlyConfigError,
-            msg="Cannot pop from read-only ListConfig",
+            exception_type=ConfigTypeError,
+            msg="ListConfig indices must be integers or slices, not str",
             key="Invalid_key_type",
             full_key="[Invalid_key_type]",
         ),
-        id="dict:readonly:pop",
+        id="list:pop_invalid_key",
     ),
     pytest.param(
         Expected(
@@ -618,7 +642,7 @@ params = [
             create=lambda: OmegaConf.create([1, 2, 3]),
             op=lambda cfg: cfg.__getitem__("foo"),
             exception_type=KeyValidationError,
-            msg="Invalid key type 'str'",
+            msg="ListConfig indices must be integers or slices, not str",
             key="foo",
             full_key="[foo]",
         ),
@@ -652,7 +676,7 @@ params = [
             create=lambda: OmegaConf.create([1, 2, 3]),
             op=lambda cfg: cfg.__setitem__("foo", 4),
             exception_type=KeyValidationError,
-            msg="Invalid key type 'str'",
+            msg="ListConfig indices must be integers or slices, not str",
             key="foo",
             full_key="[foo]",
         ),
@@ -873,7 +897,7 @@ def create_readonly(cfg: Any) -> Any:
 @pytest.mark.parametrize(  # type:ignore
     "expected", params,
 )
-def test_errors(expected: Expected) -> None:
+def test_errors(expected: Expected, monkeypatch: Any) -> None:
     cfg = expected.create()
     expected.finalize(cfg)
     msg = expected.msg
@@ -894,3 +918,17 @@ def test_errors(expected: Expected) -> None:
         assert isinstance(expected.full_key, str)
         assert ex.object_type_str == expected.object_type_str
         assert ex.ref_type_str == expected.ref_type_str
+
+        with monkeypatch.context() as m:
+            m.setenv("OC_CAUSE", "1")
+            try:
+                expected.op(cfg)
+            except Exception as e:
+                assert e.__cause__ is not None
+
+        with monkeypatch.context() as m:
+            m.delenv("OC_CAUSE", raising=False)
+            try:
+                expected.op(cfg)
+            except Exception as e:
+                assert e.__cause__ is None

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest
3.7
requirements/base.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi @ file:///croot/certifi_1671487769961/work/certifi
exceptiongroup==1.2.2
importlib-metadata==6.7.0
iniconfig==2.0.0
-e git+https://github.com/omry/omegaconf.git@9b5f3579b9dbc83cc28b36bc33bf94f341409fde#egg=omegaconf
packaging==24.0
pluggy==1.2.0
pytest==7.4.4
PyYAML==6.0.1
tomli==2.0.1
typing_extensions==4.7.1
zipp==3.15.0

name: omegaconf
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - exceptiongroup==1.2.2
      - importlib-metadata==6.7.0
      - iniconfig==2.0.0
      - omegaconf==2.0.0rc23
      - packaging==24.0
      - pluggy==1.2.0
      - pytest==7.4.4
      - pyyaml==6.0.1
      - tomli==2.0.1
      - typing-extensions==4.7.1
      - zipp==3.15.0
prefix: /opt/conda/envs/omegaconf

tests/test_errors.py::test_errors[structured:update_with_invalid_value] tests/test_errors.py::test_errors[structured:update:none_to_non_optional] tests/test_errors.py::test_errors[dict:update:object_of_illegal_type] tests/test_errors.py::test_errors[dict,readonly:pop] tests/test_errors.py::test_errors[dict:pop_invalid] tests/test_errors.py::test_errors[dict:pop_invalid_nested] tests/test_errors.py::test_errors[structured:access_invalid_attribute] tests/test_errors.py::test_errors[dict,struct:access_invalid_attribute] tests/test_errors.py::test_errors[dict,accessing_missing_interpolation] tests/test_errors.py::test_errors[dict,accessing_missing_str_interpolation] tests/test_errors.py::test_errors[dict,struct:set_invalid_attribute] tests/test_errors.py::test_errors[structured:setattr,invalid_type_assigned_to_structured] tests/test_errors.py::test_errors[dict,readonly:set_attribute] tests/test_errors.py::test_errors[dict,none_optional:set_none] tests/test_errors.py::test_errors[structured:setattr,invalid_type_assigned_to_field] tests/test_errors.py::test_errors[dict,struct:setitem_on_none_existing_key] tests/test_errors.py::test_errors[dict,struct:getitem_key_not_in_struct] tests/test_errors.py::test_errors[dict,reftype=Dict[Color,str]:,getitem_str_key] tests/test_errors.py::test_errors[dict,reftype=Dict[str,str]:,getitem_color_key] tests/test_errors.py::test_errors[dict,readonly:merge_with] tests/test_errors.py::test_errors[structured:merge,invalid_field_type] tests/test_errors.py::test_errors[structured:merge,adding_an_invalid_key] tests/test_errors.py::test_errors[structured:merge_invalid_dataclass] tests/test_errors.py::test_errors[dict:get_illegal_type] tests/test_errors.py::test_errors[dict:get_object_of_illegal_type] tests/test_errors.py::test_errors[dict_create_none_optional_with_none] tests/test_errors.py::test_errors[dict_create_from_illegal_type] tests/test_errors.py::test_errors[structured:create_from_unsupported_object] tests/test_errors.py::test_errors[structured:create_with_union_error] tests/test_errors.py::test_errors[dict,int_element_type:assigned_str_value] tests/test_errors.py::test_errors[dict,readonly:del] tests/test_errors.py::test_errors[list:setattr0] tests/test_errors.py::test_errors[list:setattr1] tests/test_errors.py::test_errors[list:get_nox_ex:invalid_index_type] tests/test_errors.py::test_errors[list:get_node_ex:index_out_of_range] tests/test_errors.py::test_errors[list:get_node_none] tests/test_errors.py::test_errors[list:get_node_missing] tests/test_errors.py::test_errors[list:create_not_optional_with_none] tests/test_errors.py::test_errors[list:append_value_of_illegal_type] tests/test_errors.py::test_errors[list:readonly:pop] tests/test_errors.py::test_errors[list:pop_invalid_key] tests/test_errors.py::test_errors[list:pop_from_none] tests/test_errors.py::test_errors[list:pop_from_missing] tests/test_errors.py::test_errors[list:subscript_slice_with_missing] tests/test_errors.py::test_errors[list:subscript_index_with_missing] tests/test_errors.py::test_errors[list:subscript:index_out_of_range] tests/test_errors.py::test_errors[list:getitem,illegal_key_type0] tests/test_errors.py::test_errors[list:getitem,illegal_key_type1] tests/test_errors.py::test_errors[list:setitem,illegal_value_type] tests/test_errors.py::test_errors[list:setitem,illegal_key_type] tests/test_errors.py::test_errors[list,readonly:setitem] tests/test_errors.py::test_errors[list,int_elements:assigned_str_element0] tests/test_errors.py::test_errors[list,int_elements:assigned_str_element1] tests/test_errors.py::test_errors[list,not_optional:null_assignment] tests/test_errors.py::test_errors[list,readonly:index_not_found] tests/test_errors.py::test_errors[list,readonly:insert] tests/test_errors.py::test_errors[list:insert_into_none] tests/test_errors.py::test_errors[list:insert_into_missing] tests/test_errors.py::test_errors[list:get_from_none] tests/test_errors.py::test_errors[list:get_from_missing] tests/test_errors.py::test_errors[list:readonly:sort0] tests/test_errors.py::test_errors[list:sort_from_none] tests/test_errors.py::test_errors[list:sort_from_missing] tests/test_errors.py::test_errors[list:readonly:sort1] tests/test_errors.py::test_errors[list:iter_none] tests/test_errors.py::test_errors[list:iter_missing] tests/test_errors.py::test_errors[list,readonly:del]
tests/test_basic_ops_list.py::test_list_value tests/test_basic_ops_list.py::test_list_of_dicts tests/test_basic_ops_list.py::test_pretty_list tests/test_basic_ops_list.py::test_pretty_list_unicode tests/test_basic_ops_list.py::test_list_get_with_default tests/test_basic_ops_list.py::test_iterate_list[input_0-None] tests/test_basic_ops_list.py::test_iterate_list[input_1-None] tests/test_basic_ops_list.py::test_iterate_list[input_2-defaults] tests/test_basic_ops_list.py::test_iterate_list[input_3-None] tests/test_basic_ops_list.py::test_iterate_interpolated_list tests/test_basic_ops_list.py::test_items_with_interpolation tests/test_basic_ops_list.py::test_list_pop tests/test_basic_ops_list.py::test_list_pop_on_unexpected_exception_not_modifying tests/test_basic_ops_list.py::test_in_list tests/test_basic_ops_list.py::test_list_config_with_list tests/test_basic_ops_list.py::test_list_config_with_tuple tests/test_basic_ops_list.py::test_items_on_list tests/test_basic_ops_list.py::test_list_enumerate tests/test_basic_ops_list.py::test_list_delitem tests/test_basic_ops_list.py::test_list_len[lst0-2] tests/test_basic_ops_list.py::test_list_len[lst1-0] tests/test_basic_ops_list.py::test_list_len[lst2-0] tests/test_basic_ops_list.py::test_nested_list_assign_illegal_value tests/test_basic_ops_list.py::test_list_append tests/test_basic_ops_list.py::test_pretty_without_resolve tests/test_basic_ops_list.py::test_pretty_with_resolve tests/test_basic_ops_list.py::test_list_index[index0-expected0] tests/test_basic_ops_list.py::test_list_index[index1-expected1] tests/test_basic_ops_list.py::test_list_index[-1-13] tests/test_basic_ops_list.py::test_list_dir tests/test_basic_ops_list.py::test_insert[input_0-1-100-expected0-AnyNode-None] tests/test_basic_ops_list.py::test_insert[input_1-1-value1-expected1-IntegerNode-None] tests/test_basic_ops_list.py::test_insert[input_2-1-foo-expected2-AnyNode-None] tests/test_basic_ops_list.py::test_insert[input_3-1-value3-expected3-StringNode-None] tests/test_basic_ops_list.py::test_insert[input_4-0-foo-None-None-ValidationError] tests/test_basic_ops_list.py::test_insert_special_list[lst0-0-10-expectation0] tests/test_basic_ops_list.py::test_insert_special_list[lst1-0-10-expectation1] tests/test_basic_ops_list.py::test_extend[src0-append0-result0] tests/test_basic_ops_list.py::test_extend[src1-append1-result1] tests/test_basic_ops_list.py::test_extend[src2-append2-result2] tests/test_basic_ops_list.py::test_remove[src0-10-result0-expectation0] tests/test_basic_ops_list.py::test_remove[src1-oops-None-expectation1] tests/test_basic_ops_list.py::test_remove[src2-remove2-result2-expectation2] tests/test_basic_ops_list.py::test_remove[src3-2-result3-expectation3] tests/test_basic_ops_list.py::test_clear[1-src0] tests/test_basic_ops_list.py::test_clear[1-src1] tests/test_basic_ops_list.py::test_clear[1-src2] tests/test_basic_ops_list.py::test_clear[2-src0] tests/test_basic_ops_list.py::test_clear[2-src1] tests/test_basic_ops_list.py::test_clear[2-src2] tests/test_basic_ops_list.py::test_index[src0-20--1-expectation0] tests/test_basic_ops_list.py::test_index[src1-10-0-expectation1] tests/test_basic_ops_list.py::test_index[src2-20-1-expectation2] tests/test_basic_ops_list.py::test_index_with_range tests/test_basic_ops_list.py::test_count[src0-10-0] tests/test_basic_ops_list.py::test_count[src1-10-1] tests/test_basic_ops_list.py::test_count[src2-10-2] tests/test_basic_ops_list.py::test_count[src3-None-0] tests/test_basic_ops_list.py::test_sort tests/test_basic_ops_list.py::test_insert_throws_not_changing_list tests/test_basic_ops_list.py::test_append_throws_not_changing_list tests/test_basic_ops_list.py::test_hash tests/test_basic_ops_list.py::TestListAdd::test_list_plus[in_list10-in_list20-in_expected0] tests/test_basic_ops_list.py::TestListAdd::test_list_plus[in_list11-in_list21-in_expected1] tests/test_basic_ops_list.py::TestListAdd::test_list_plus[in_list12-in_list22-in_expected2] tests/test_basic_ops_list.py::TestListAdd::test_list_plus_eq[in_list10-in_list20-in_expected0] tests/test_basic_ops_list.py::TestListAdd::test_list_plus_eq[in_list11-in_list21-in_expected1] tests/test_basic_ops_list.py::TestListAdd::test_list_plus_eq[in_list12-in_list22-in_expected2] tests/test_basic_ops_list.py::test_deep_add tests/test_basic_ops_list.py::test_set_with_invalid_key tests/test_basic_ops_list.py::test_getitem[lst0-0-1] tests/test_basic_ops_list.py::test_getitem[lst1-0-TypeError] tests/test_basic_ops_list.py::test_getitem[lst2-0-MissingMandatoryValue] tests/test_basic_ops_list.py::test_get[lst0-0-1] tests/test_basic_ops_list.py::test_get[lst1-foo-KeyValidationError] tests/test_basic_ops_list.py::test_get[lst2-0-TypeError] tests/test_basic_ops_list.py::test_get[lst3-0-MissingMandatoryValue] tests/test_errors.py::test_errors[dict:set_value:reftype_mismatch]
omegaconf/listconfig.py omegaconf/errors.py omegaconf/_utils.py
omegaconf/listconfig.py omegaconf/errors.py omegaconf/_utils.py