class_docstr: Enforce that new arguments added to the signature of a widget function are taken
  into account when computing widget IDs unless explicitly excluded.
class_docstr_tok: ["Enforce","that","new","arguments","added","to","the","signature","of","a","widget","function","are","taken","into","account","when","computing","widget","IDs","unless","explicitly","excluded","."]
code: def test_widget_id_computation_data_editor(self):
      with patch(
          f"streamlit.elements.widgets.data_editor.compute_widget_id",
          wraps=compute_widget_id,
      ) as patched_compute_widget_id:
          st.data_editor(data=[])
  
      sig = inspect.signature(st.data_editor)
      expected_sig = self.signature_to_expected_kwargs(sig)
  
      # Make some changes to expected_sig unique to st.data_editor.
      expected_sig["column_config_mapping"] = ANY
      del expected_sig["hide_index"]
      del expected_sig["column_config"]
  
      patched_compute_widget_id.assert_called_with(ANY, **expected_sig)
  
      # Double check that we get a DuplicateWidgetID error since the `disabled`
      # argument shouldn't affect a widget's ID.
      with self.assertRaises(errors.DuplicateWidgetID):
          st.data_editor(data=[], disabled=True)
  
imports: import inspect
  import unittest
  from unittest.mock import ANY, MagicMock, call, patch
  from parameterized import parameterized
  import streamlit
  from streamlit import errors
  from streamlit.proto.Common_pb2 import StringTriggerValue
  from streamlit.proto.WidgetStates_pb2 import WidgetStates
  from streamlit.runtime.scriptrunner.script_run_context import get_script_run_ctx
  from streamlit.runtime.state import coalesce_widget_states
  from streamlit.runtime.state.common import GENERATED_WIDGET_ID_PREFIX, compute_widget_id
  from streamlit.runtime.state.session_state import SessionState, WidgetMetadata
  from streamlit.runtime.state.widgets import user_key_from_widget_id
  from tests.delta_generator_test_case import DeltaGeneratorTestCase
label_desc: Use image node_id 5 for calling the ComputeWidgetIdTests obj's underlying member method code with example usage: obj.test_widget_id_computation_data_editor() without return types